puppetrun の使い方

目次

  1. puppetrun とは
  2. puppet サーバ側で必要な設定
  3. puppet クライアント側で必要な設定
  4. puppet クライアントの起動
  5. puppet サーバの起動
  6. サーバ側で 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