puppetrun の使い方
目次
- puppetrun とは
- puppet サーバ側で必要な設定
- puppet クライアント側で必要な設定
- puppet クライアントの起動
- puppet サーバの起動
- サーバ側で puppetrun の実行
puppetrun とは
puppet のデフォルトの動作は、puppet クライアント (puppetd) が puppet サーバ (puppetmasterd) に定期的に問い合わせに行く pull 型ですが、puppetrun を利用することにより、puppet サーバ側から puppet クライアントをキックして、問い合わせに来させることができます。
puppet サーバ側で必要な設定
/etc/puppet/namespaceauth.conf に以下の設定が必要です。
[puppetmaster] allow *.southpark
これを設定していないと、/var/log/puppet/masterhttp.log に以下の様に出力されます。
[2007-03-25 12:15:14] ERROR XMLRPC::FaultException: Host cartman.southpark(192.168.10.3) not authorized to call puppetmaster.getconfig
また、puppet クライアントからファイルサーバへアクセスさせたり、レポート機能を利用する場合には、追加で以下の設定も必要です。
[fileserver] allow *.southpark [puppetreports] allow *.southpark
puppet クライアント側で必要な設定
/etc/puppet/namespaceauth.conf に以下の設定が必要です。
[puppetrunner] allow *.southpark
puppet クライアントの起動
サーバ側で実行される puppetrun からの命令を受け取るために、puppetd は 8139/tcp でリッスンすることになりますが、そのためには以下の様なオプションをつけて puppetd を起動します。
$ sudo puppetd --listen --no-client --server kenny.southpark
puppet サーバの起動
puppetmasterd の起動は、puppetrun を使わない場合と特に変わりありません。
サーバ側で puppetrun の実行
サーバ側で以下の様に puppetrun を実行して、クライアントをキックします。
$ sudo puppetrun --host cartman.southpark
複数のクライアントを同時にキックすることもできます。
$ sudo puppetrun --host hostA --host hostB
管理対象のクライアントすべてを同時にキックしたり、特定のクラスに属するクライアントをキックする、というできますが、LDAP でのクライアント管理が必要です。
$ sudo puppetrun --all
$ sudo puppetrun --class web
詳しくはヘルプ参照。
$ sudo puppetrun --help
