CentOS 6
Sponsored Link

Puppet - インストール
2014/01/26
 
構成管理ツール Puppet のインストールです。
任意のマシン単独でも使用できますが、ここではサーバー/クライアント構成で使用できるように設定します。
なお設定にあたり、事前に時刻同期の設定、および DNS または hosts で正引き/逆引きができるようにしておいてください。
[1] Puppet サーバーでのインストール
[root@dlp ~]#
yum -y install http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
[root@dlp ~]#
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/puppetlabs.repo

[root@dlp ~]#
yum --enablerepo=puppetlabs-products,puppetlabs-deps -y install puppet-server
[root@dlp ~]#
vi /etc/sysconfig/puppetmaster
# 2行目:コメント解除

PUPPETMASTER_MANIFEST=/etc/puppet/manifests/site.pp
# 6行目:コメント解除

PUPPETMASTER_LOG=syslog
# 空マニフェストを作成して起動

[root@dlp ~]#
touch /etc/puppet/manifests/site.pp

[root@dlp ~]#
/etc/rc.d/init.d/puppetmaster start

Starting puppetmaster: [ OK ]
[root@dlp ~]#
chkconfig puppetmaster on

[2] Puppet クライアントでのインストール (Puppetサーバー自身もクライアントとする場合は下記と同じように設定してください)
[root@www ~]#
yum -y install http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
[root@www ~]#
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/puppetlabs.repo

[root@www ~]#
yum --enablerepo=puppetlabs-products,puppetlabs-deps -y install puppet
[root@www ~]#
vi /etc/sysconfig/puppet
# 2行目:コメント解除して Puppet サーバー指定

PUPPET_SERVER=
dlp.srv.world
# 8行目:コメント解除

PUPPET_LOG=/var/log/puppet/puppet.log
[root@www ~]#
/etc/rc.d/init.d/puppet start

Starting puppet agent: [ OK ]
[root@www ~]#
chkconfig puppet on

[3] Puppet サーバーで Puppetクライアントからの証明書を有効にする
# 証明書確認

[root@dlp ~]#
puppet cert list

"www.srv.world" (SHA256) xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
# 署名

[root@dlp ~]#
puppet cert sign www.srv.world

Notice: Signed certificate request for www.srv.world
Notice: Removing file Puppet::SSL::CertificateRequest www.srv.world at '/var/lib/puppet/ssl/ca/requests/www.srv.world.pem'
[4] サーバー側でテストマニフェストを作成してクライアント側で動作を確認してみます。
クライアントはデフォルトで30分毎にサーバーに問い合わせをするため、 サーバー側でマニフェストを作成してもすぐには反映されません。 よってクライアント側での確認の際には、しばらく待つか、もしくはすぐに確認したい場合は puppetd をリロードすればOKです。
[root@dlp ~]#
vi /etc/puppet/manifests/site.pp
# 例として「testgroup」という名前で GID「2000」のグループを作成

group { 'testgroup':
    ensure => present,
    gid    => 2000,
}

# クライアント側ですぐに確認する場合はリロード

[root@www ~]#
/etc/rc.d/init.d/puppet reload

Restarting puppet agent: [ OK ]
# 確認

[root@www ~]#
grep testgroup /etc/group

testgroup:x:2000:
[5] なお、以下のようにローカルにあるマニフェストを手動で適用することもできます。
[root@dlp ~]#
puppet apply /etc/puppet/manifests/site.pp

Notice: Compiled catalog for dlp.srv.world in environment production in 0.14 seconds
Notice: /Stage[main]/Main/File[/etc/httpd/conf/httpd.conf]/content: content changed '
{md5}27a5c8d9e75351b08b8ca1171e8a0bbd' to '{md5}27e2ef6546dbdda4a2a659d69397d105'
Notice: /Stage[main]/Main/Service[httpd]/ensure: ensure changed 'stopped' to 'running'
Notice: Finished catalog run in 0.56 seconds
 
Tweet