CentOS 7
 

Puppet : インストール
2015/07/22
 
構成管理ツール Puppet をインストールします。
任意のマシン単独でも使用できますが、ここではサーバー/クライアント構成で設定します。
事前に、サーバー/クライアント間の時刻同期設定 および 名前解決ができるよう設定しておく必要があります。
[1] Puppet サーバーとするホストで puppet-server をインストールします。
[root@dlp ~]#
yum -y install https://yum.puppetlabs.com/puppetlabs-release-el-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/puppet/puppet.conf
[main]
# [main] セクション内に追記 (Puppet サーバーの DNS 名)

    dns_alt_names = dlp.srv.world,dlp
[root@dlp ~]#
puppet master --verbose --no-daemonize

Info: Creating a new SSL key for ca
Info: Creating a new SSL certificate request for ca
Info: Certificate Request fingerprint (SHA256): 
Notice: Signed certificate request for ca
Info: Creating a new certificate revocation list
Info: Creating a new SSL key for dlp.srv.world
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for dlp.srv.world
Info: Certificate Request fingerprint (SHA256): 
Notice: dlp.srv.world has a waiting certificate request
Notice: Signed certificate request for dlp.srv.world
Notice: Removing file Puppet::SSL::CertificateRequest dlp.srv.world at 
    '/var/lib/puppet/ssl/ca/requests/dlp.srv.world.pem'
Notice: Removing file Puppet::SSL::CertificateRequest dlp.srv.world at 
    '/var/lib/puppet/ssl/certificate_requests/dlp.srv.world.pem'
Notice: Starting Puppet master version 3.8.1
# Ctrl + C を押下して終了
[root@dlp ~]#
systemctl start puppetmaster

[root@dlp ~]#
systemctl enable puppetmaster

[2] Puppet クライアントとするホストで puppet をインストールします。
[root@node01 ~]#
yum -y install https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
[root@node01 ~]#
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/puppetlabs.repo

[root@node01 ~]#
yum --enablerepo=puppetlabs-products,puppetlabs-deps -y install puppet
[root@node01 ~]#
vi /etc/puppet/puppet.conf
[agent]
# [agent] セクション内に追記: Puppet サーバーのホスト名を指定

    server = dlp.srv.world
[root@node01 ~]#
puppet agent --test --ca_server=dlp.srv.world

Info: Creating a new SSL key for node01.srv.world
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for node01.srv.world
Info: Certificate Request fingerprint (SHA256): 
Info: Caching certificate for ca
Exiting; no certificate found and waitforcert is disabled

[root@node01 ~]#
systemctl start puppet

[root@node01 ~]#
systemctl enable puppet

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

[root@dlp ~]#
puppet cert list

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

[root@dlp ~]#
puppet cert --allow-dns-alt-names sign node01.srv.world

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

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

# クライアント側で直ちに確認する場合はリスタート

[root@node01 ~]#
systemctl restart puppet
# 確認

[root@node01 ~]#
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.13 seconds
Notice: /Stage[main]/Main/Group[testgroup]/ensure: created
Notice: Finished catalog run in 0.34 seconds
 
Tweet