CentOS Stream 9
Sponsored Link

Puppet : インストール2023/10/17

 

構成管理ツール Puppet をインストールします。
任意のマシン単独でも使用できますが、ここではサーバー/クライアント構成で設定します。

事前に、サーバー/クライアント間の時刻同期設定 および 名前解決ができるよう設定しておく必要があります。

[1] Puppet サーバーとするホストの設定です。
[root@dlp ~]#
dnf -y install https://yum.puppet.com/puppet-release-el-9.noarch.rpm

[root@dlp ~]#
dnf -y install puppetserver
[root@dlp ~]#
vi /etc/puppetlabs/puppet/puppet.conf
# 最終行に追記

confdir = /etc/puppetlabs/puppet
dns_alt_names = dlp.srv.world,dlp
# 任意の [environment] 名
environment = production

[main]
certname = dlp.srv.world
server = dlp.srv.world

[root@dlp ~]#
systemctl enable --now puppetserver

[2] Puppet サーバー とするホストで Firewalld を有効にしている場合は、サービスの許可が必要です。
[root@dlp ~]#
firewall-cmd --add-service=puppetmaster

success
[root@dlp ~]#
firewall-cmd --runtime-to-permanent

success
[3] Puppet クライアントとするホストの設定です。
[root@node01 ~]#
dnf -y install https://yum.puppet.com/puppet-release-el-9.noarch.rpm

[root@node01 ~]#
dnf -y install puppet-agent
[root@node01 ~]#
vi /etc/puppetlabs/puppet/puppet.conf
# 最終行に追記

[main]
certname = node01.srv.world
server = dlp.srv.world

[agent]
server = dlp.srv.world
ca_server = dlp.srv.world
# カタログを適用する間隔
# [0] 指定で常に
# 明示的に設定しない場合のデフォルトは 30分
runinterval = 30m

[root@node01 ~]#
systemctl enable --now puppet

[4] Puppet サーバーで Puppet クライアントからの証明書を有効にします。
[root@dlp ~]#
/opt/puppetlabs/server/bin/puppetserver ca list --all

Requested Certificates:
    node01.srv.world       (SHA256)  8F:D1:43:13:FF:A9:31:1E:7F:66:DE:FE:C5:37:66:97:F5:AB:88:DD:20:2A:CB:DF:60:01:7E:7B:CE:09:EF:35
Signed Certificates:
    dlp.srv.world       (SHA256)  4F:BE:72:F4:14:2A:7B:10:89:3A:0D:6D:E3:8B:12:F0:86:AE:49:7C:4F:B2:A3:D9:AE:CB:96:1F:F0:D0:F4:95       alt names: ["DNS:dlp.srv.world", "DNS:dlp", "DNS:dlp.srv.world"]        authorization extensions: [pp_cli_auth: true]

# sign

[root@dlp ~]#
/opt/puppetlabs/server/bin/puppetserver ca sign --certname node01.srv.world

Successfully signed certificate request for node01.srv.world
[5] Puppet サーバーでテストマニフェストを作成して動作確認します。
クライアントはデフォルトで 30 分毎にサーバー上のカタログを適用するため、サーバー側でマニフェストを作成してもすぐには反映されません。
よって、クライアント側での確認の際には、しばらく待つか、[runinterval] の値を減らすか、あるいは、すぐに確認したい場合はサービスをリロードすれば OK です。
# マニフェスト格納ディレクトリ作成
# [production] の部分は [environment = ***] に設定した名称

[root@dlp ~]#
mkdir -p /etc/puppetlabs/code/environments/production/manifests
[root@dlp ~]#
vi /etc/puppetlabs/code/environments/production/manifests/site.pp
# 例として [testgroup] という名称で GID [2000] のグループを作成

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

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

[root@node01 ~]#
systemctl reload puppet
[root@node01 ~]#
grep testgroup /etc/group

testgroup:x:2000:
[6] ローカルホストのマニフェストを手動で適用したい場合は以下のように実行します。
[root@dlp ~]#
/opt/puppetlabs/bin/puppet apply /etc/puppetlabs/code/environments/production/manifests/site.pp

Notice: Compiled catalog for dlp.srv.world in environment production in 0.01 seconds
Notice: /Stage[main]/Main/Group[testgroup]/ensure: created
Notice: Applied catalog in 0.05 seconds
[root@dlp ~]#
grep testgroup /etc/group

testgroup:x:2000:
関連コンテンツ