puppetrun で操作

  • 投稿日:
  • by
  • カテゴリ:

クライアント側 を puppetd で動作させていると30分に1回 サーバーにアクセス行く仕様のため
台数が多くなるとまずいらしい。

意図した操作を行いたい場合に、puppetrun で操作を行うことで、運用を楽にします。

クライアント側
/etc/puppet/namespaceauth.conf
[puppetrunner]
allow centos1.zephel.com
allow 192.168.2.200

puppetd --listen --no-clien --server centos1.zephel.com --verbose &

サーバー側
/etc/puppet/fileserver.conf #ファイルの置き場所(下記で任意に設定)
[module]
path /etc/puppet/files
allow *.zephel.com
allow 192.168.2.0/24

/etc/init.d/puppetmasterd start
puppetrun --host centos2.zephel.com --host centos4.zephel.com # 操作で反映

puppetrun --host hostA --host hostB とする。

下記の場合は LDAP での管理が必要。
puppetrun -all
puppetrun --class web

同じ設定をしているサーバー群がある場合は、LDAP で管理したほうが良いようです。

マニュフェストの設定
/etc/puppet/manifests/site.pp
import copy.pp #でインポートできる

resolv.conf を配布する設定
/etc/puppet/manifests/copy.pp
node 'centos2.zephel.com' {
file { '/etc/resolv.conf':
mode => 644,
owner => 'root',
group => 'root',
source => 'puppet://centos1.zephel.com/module/resolv.conf',
}
}
node 'centos4.zephel.com' {
file { '/etc/resolv.conf':
mode => 644,
owner => 'root',
group => root,
source => 'puppet://centos1.zephel.com/module/resolv.conf',
}
}

上と同じことを省略して書くと
node 'centos2.zephel.com' {
file { '/etc/resolv.conf':
mode => 644,
owner => 'root',
group => root,
source => 'puppet://centos1.zephel.com/module/resolv.conf',
}
}

node 'centos4.zephel.com' inherits centos2.zephel.com {}

→ 1つ目の設定を継承して利用できます。

node 'centos2.zephel.com' {
file { '/etc/resolv.conf':
mode => 644,
owner => 'root',
group => root,
source => 'puppet://centos1.zephel.com/module/resolv.conf',
}
}
node default {
file { '/etc/resolv.conf':
mode => 644,
owner => 'root',
group => 'root',
source => 'puppet://centos1.zephel.com/module/resolv.conf',
}
}

→ centos2.zephel.com 以外は、default で設定する。

node default {
file { '/etc/resolv.conf':
mode => 644,
owner => 'root',
group => 'root',
source => 'puppet://centos1.zephel.com/module/resolv.conf',
}
}

→ 全部同じ設定であれば、default のみでよい。