Cftとは?
Cft
Cftは記録された変更をPuppetマニフェスト形式で出力することができますので、
また、
Cftのインストール
Cftのソースコードやパッケージはhttp://
Cftのインストール方法としては、
- rpmパッケージのインストール
- gemパッケージのインストール
の2つのパターンがあります
ただし、
Cftをインストールするためには、
- ruby バージョン1.
8.x - puppet バージョン0.
24. x以降 - ruby-fam
- ruby-rpm バージョン1.
2.3以降
現在、
$ sudo yum install ruby puppet ruby-fam ruby-rpm
$ sudo rpm -ivh http://cft.et.redhat.com/download/cft-latest.noarch.rpm
Cftの実行
Cftを実行するには、
# cft mode [options] session
システムに対する一連の変更を、
- Cftセッションを開始
- システムに対する変更を監視して記録する
- Cftセッションを終了
なお、
$ alias cft='PATH=$PATH:/sbin:/usr/sbin sudo cft'
以降では、
セッションの開始と終了
まずは、
$ cft begin セッション名
セッションが開始された後は、
セッションを終了するには、
$ cft finish セッション名
例えば、
$ cft begin postfix
$ sudo yum install postfix
$ sudo vi /etc/postfix/main.cf
$ sudo /sbin/chkconfig postfix on
$ sudo /etc/init.d/postfix start
$ cft finish postfix
セッションをPuppetマニフェストで出力
cft manifestを実行すると、
$ cft manifest postfix
class {
group { 'postdrop':
allowdupe => 'false',
provider => 'groupadd',
gid => '90',
check => ['ensure','gid'],
loglevel => 'notice',
ensure => 'present'
}
group { 'postfix':
allowdupe => 'false',
provider => 'groupadd',
gid => '89',
check => ['ensure','gid'],
loglevel => 'notice',
ensure => 'present'
}
user { 'postfix':
allowdupe => 'false',
uid => '89',
provider => 'useradd',
gid => '89',
check => ['ensure','uid','gid','comment','home','shell','groups'],
groups => ['mail'],
loglevel => 'notice',
membership => 'minimum',
comment => '',
shell => '/sbin/nologin',
ensure => 'present',
home => '/var/spool/postfix',
managehome => 'false'
}
service { 'postfix':
pattern => 'postfix',
provider => 'redhat',
check => ['ensure','enable'],
enable => 'true',
loglevel => 'notice',
ensure => 'running',
path => ['/etc/init.d']
}
package { 'postfix.i386':
ensure => '2:2.4.5-2.fc7'
}
file { '/etc/postfix/main.cf':
group => 'root',
owner => 'root',
source => '/tmp/cft/postfix/after/etc/postfix/main.cf',
mode => '0644',
ensure => 'file'
}
... 以下省略 ...
}
セッションのレジューム
cft beginで--resumeオプションを指定すると、
$ cft begin --resume postfix
セッションをtar+gzip形式で保存
cft packでセッションをtar+gzip形式のファイルとして保存することができます。
$ cft pack --tar postfix_session.tar.gz postfix
セッションを削除
記録したセッションを削除するには、
$ cft erase postfix
Cftの解説は以上です。次回からはまたPuppet本体の話に戻り、