参考
起動
puppetmaster
# https://hub.docker.com/r/puppet/puppetserver
mkdir -p code
docker run \
-it -d \
--restart=always \
--name puppet \
--hostname puppet \
-p 8140:8140 \
-v $(pwd)/code:/etc/puppetlabs/code/ \
puppet/puppetserver:6.12.0
- 他のバージョンを動かしたい場合は、
6.12.0
の箇所を2.7.2
にするだけでよい。
manifest格納場所の作成
mkdir -p ./code/environments/production/manifests/
code/environments/production/manifests/site.pp
node default {
file {'/tmp/example-ip':
ensure => present,
mode => '0644',
content => "Here is my Public IP Address: ${ipaddress_eth0}.\n",
}
}
実行
-
docker exec -it コンテナID /bin/bash
でコンテナに入って以下実施
# dry-run
puppet agent --test --noop
# 実行
puppet agent --test
# 念のため、signed一覧
puppetserver ca list --all
Ubuntu 20.04 に agent 追加
- deb一覧は https://apt.puppetlabs.com/
- dockerコンテナの
tcp 8140
を開けておくこと。
wget https://apt.puppetlabs.com/puppet6-release-focal.deb
dpkg -i puppet6-release-focal.deb
apt update
apt install -y puppet-agent
# /opt/puppetlabs にインストールされる。
puppetサーバーの名前解決ができるようにしておく。(docker --hostname
で指定したホスト名)
/etc/hosts
# 127.0.0.1 puppet
192.168.0.6 puppet
# puppetserverに接続
# proxy接続中は接続が失敗する。403 "Access violation"
export PATH=$PATH:/opt/puppetlabs/bin
puppet agent --server puppet -t --noop --verbose
念の為、puppetサーバーで確認
# 自動でsignされている
puppetserver ca list --all
実行
export PATH=$PATH:/opt/puppetlabs/bin
# dry-run
puppet agent --server puppet -t --noop
# 実行
puppet agent --server puppet -t