FreeBSD 14
Sponsored Link

Puppet : インストール2024/09/12

 

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

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

[1] Puppet サーバーとするホストの設定です。
root@dlp:~ #
pkg install -y puppetserver8
root@dlp:~ #
vi /usr/local/etc/puppet/puppet.conf
# 新規作成

dns_alt_names = dlp.srv.world,dlp
# 任意の [environment] 名
environment = production

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

root@dlp:~ #
service puppetserver enable

puppetserver enabled in /etc/rc.conf
root@dlp:~ #
service puppetserver start

Starting puppetserver.
[2] Puppet クライアントとするホストの設定です。
root@node01:~ #
pkg install -y puppet8
root@node01:~ #
vi /usr/local/etc/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:~ #
service puppet enable

puppet enabled in /etc/rc.conf
root@node01:~ #
service puppet start

Starting puppet.
[3] Puppet サーバーで Puppet クライアントからの証明書を有効にします。
root@dlp:~ #
puppetserver ca list --all

Requested Certificates:
    node01.srv.world       (SHA256)  BC:C7:45:48:3E:A1:60:1D:3E:8F:9E:10:68:E1:13:72:2B:F0:46:01:F2:47:9B:9A:F7:27:D4:61:52:75:CD:F4
Signed Certificates:
    dlp.srv.world       (SHA256)  33:FD:F6:A7:69:AE:16:21:1E:C8:F5:F4:8D:83:B5:7E:FF:E9:4C:32:29:E6:8C:EE:4E:19:4E:2D:92:57:FC:BD       alt names: ["DNS:dlp.srv.world", "DNS:dlp", "DNS:dlp.srv.world"]        authorization extensions: [pp_cli_auth: true]

# 署名

root@dlp:~ #
puppetserver ca sign --certname node01.srv.world

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

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

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

# クライアント側で直ちに確認する場合は再起動

root@node01:~ #
service puppet restart
root@node01:~ #
grep testgroup /etc/group

testgroup:*:2000:
[5] ローカルホストのマニフェストを手動で適用したい場合は以下のように実行します。
root@dlp:~ #
puppet apply /usr/local/etc/puppet/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.02 seconds
root@dlp:~ #
grep testgroup /etc/group

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