2024年8月18日
環境
Ubuntu 24.04
概要
構成管理ツール Puppet をインストールします。
任意のマシン単独でも使用できますが、ここではサーバー/クライアント構成で設定します。
サーバー/クライアント間の時刻同期設定 および 名前解決ができるよう設定しておく必要があります。
1.Puppet サーバーとするホストの設定です。
# apt -y install puppet-master
# vi /etc/puppet/puppet.conf
dns_alt_names = cft. arkgame . com ,cft
certname = cft. arkgame . com
# 最終行に追記
dns_alt_names = cft.arkgame.com,cft
# 任意の [environment] 名
environment = production
[main]
certname = cft.arkgame.com
server = cft.arkgame.com
# 最終行に追記
dns_alt_names = cft.arkgame.com,cft
# 任意の [environment] 名
environment = production
[main]
certname = cft.arkgame.com
server = cft.arkgame.com
# systemctl enable –now puppetserver
2.Puppet クライアントとするホストの設定を行います
# apt -y install puppet-agent
# vi /etc/puppet/puppet.conf
certname = node01. arkgame . com
ca_server = cft. arkgame . com
# 最終行に追記
[main]
certname = node01.arkgame.com
server = cft.arkgame.com
[agent]
server = cft.arkgame.com
ca_server = cft.arkgame.com
# カタログを適用する間隔
# [0] 指定で常に
# 明示的に設定しない場合のデフォルトは 30分
runinterval = 30m
# 最終行に追記
[main]
certname = node01.arkgame.com
server = cft.arkgame.com
[agent]
server = cft.arkgame.com
ca_server = cft.arkgame.com
# カタログを適用する間隔
# [0] 指定で常に
# 明示的に設定しない場合のデフォルトは 30分
runinterval = 30m
自動起動を設定します
# systemctl enable --now puppet
# systemctl enable --now puppet
# systemctl enable --now puppet
3.Puppet サーバーで Puppet クライアントからの証明書を有効にします。
# puppetserver ca list --all
node01. arkgame . com ( SHA256 ) 6A:4D:3C: 21 :AD: 35 :CF: 14 :CA: 48 :F2:DC:EE:0F:A5:9C:FB:E1:BA:1E: 40 :B0:CC: 35 : 50 :A4: 04 : 15 : 55 :F2:6B:EE
cft. arkgame . com ( SHA256 ) DB:4D:0A: 69 : 95 : 97 :F9:6E:9B:BC: 83 :9F: 77 :EB: 88 :2F:0F: 05 :AB:D4: 50 :8A:BA:C9:5E:D9:7D: 19 :8C: 34 : 75 : 99 alt names: [ "DNS:cft.arkgame.com" , "DNS:cft" , "DNS:cft.arkgame.com" ] authorization extensions: [ pp_cli_auth: true ]
# puppetserver ca list --all
Requested Certificates:
node01.arkgame.com (SHA256) 6A:4D:3C:21:AD:35:CF:14:CA:48:F2:DC:EE:0F:A5:9C:FB:E1:BA:1E:40:B0:CC:35:50:A4:04:15:55:F2:6B:EE
Signed Certificates:
cft.arkgame.com (SHA256) DB:4D:0A:69:95:97:F9:6E:9B:BC:83:9F:77:EB:88:2F:0F:05:AB:D4:50:8A:BA:C9:5E:D9:7D:19:8C:34:75:99 alt names: ["DNS:cft.arkgame.com", "DNS:cft", "DNS:cft.arkgame.com"] authorization extensions: [pp_cli_auth: true]
# puppetserver ca list --all
Requested Certificates:
node01.arkgame.com (SHA256) 6A:4D:3C:21:AD:35:CF:14:CA:48:F2:DC:EE:0F:A5:9C:FB:E1:BA:1E:40:B0:CC:35:50:A4:04:15:55:F2:6B:EE
Signed Certificates:
cft.arkgame.com (SHA256) DB:4D:0A:69:95:97:F9:6E:9B:BC:83:9F:77:EB:88:2F:0F:05:AB:D4:50:8A:BA:C9:5E:D9:7D:19:8C:34:75:99 alt names: ["DNS:cft.arkgame.com", "DNS:cft", "DNS:cft.arkgame.com"] authorization extensions: [pp_cli_auth: true]
# サイン
# puppetserver ca sign --certname node01.arkgame.com
Successfully signed certificate request for node01. arkgame . com
# puppetserver ca sign --certname node01.arkgame.com
Successfully signed certificate request for node01.arkgame.com
# puppetserver ca sign --certname node01.arkgame.com
Successfully signed certificate request for node01.arkgame.com
4.Puppet サーバーでテストマニフェストを作成して動作確認します。
クライアントはデフォルトで 30 分毎にサーバー上のカタログを適用するため、サーバー側でマニフェストを作成してもすぐには反映されません。
クライアント側での確認の際には、しばらく待つか、[runinterval] の値を減らすか、あるいは、すぐに確認したい場合はサービスをリロードすれば OK です。
# マニフェスト格納ディレクトリ作成
# [production] の部分は [environment = ***] に設定した名称
# mkdir -p /etc/puppet/code/environments/production/manifests
# vi /etc/puppet/code/environments/production/manifests/site.pp
# mkdir -p /etc/puppet/code/environments/production/manifests
# vi /etc/puppet/code/environments/production/manifests/site.pp
# mkdir -p /etc/puppet/code/environments/production/manifests
# vi /etc/puppet/code/environments/production/manifests/site.pp
# 例として [testgroup] という名称で GID [3000] のグループを作成
group { 'testgroup':
ensure => present,
gid => 3000,
}
group { 'testgroup':
ensure => present,
gid => 3000,
}
# クライアント側で直ちに確認する場合はリロード
# systemctl reload puppet
# grep testgroup /etc/group
# systemctl reload puppet
# grep testgroup /etc/group
testgroup:x:2000:
# systemctl reload puppet
# grep testgroup /etc/group
testgroup:x:2000:
5.ローカルホストのマニフェストを手動で適用したい場合は以下のように実行します。
# puppet apply /etc/puppet/code/environments/production/manifests/site.pp
Notice: Compiled catalog for cft. arkgame . com in environment production in 0.01 seconds
Notice: /Stage [ main ] /Main/Group [ testgroup ] /ensure: created
Notice: Applied catalog in 0.03 seconds
# grep testgroup /etc/group
# puppet apply /etc/puppet/code/environments/production/manifests/site.pp
Notice: Compiled catalog for cft.arkgame.com in environment production in 0.01 seconds
Notice: /Stage[main]/Main/Group[testgroup]/ensure: created
Notice: Applied catalog in 0.03 seconds
# grep testgroup /etc/group
testgroup:x:2000:
# puppet apply /etc/puppet/code/environments/production/manifests/site.pp
Notice: Compiled catalog for cft.arkgame.com in environment production in 0.01 seconds
Notice: /Stage[main]/Main/Group[testgroup]/ensure: created
Notice: Applied catalog in 0.03 seconds
# grep testgroup /etc/group
testgroup:x:2000: