オープンソースなシステム自動管理ツール Puppet

第2回 Puppetのインストールから起動まで

この記事を読むのに必要な時間:およそ 5 分

Puppet起動前の準備

では,インストールが済んだところで,Puppetを起動してみましょう。

起動前の準備として,パッケージからインストールした場合には,/etc/puppet 以下にファイルやディレクトリができていますが,これらをすべて削除するか,別ディレクトリへ退避してください。これはPuppetサーバ,Puppetクライアントの双方で行います。

Ppuppetは基本的に,全く設定をせずに起動させることができます。逆に自分の知らない設定がされていることによって,うまく起動しなかったり,意図した通りに動作しないことがありますので,まずは一度既存の設定ファイル等をすべて削除し,あらためて必要な設定を施していくことをお勧めします。

Puppetサーバの起動

Puppetサーバを起動させるためには,マニフェストが必須となります。

マニフェストとは,前回の記事でも触れましたが,独自の宣言型言語によって,システムのあるべき状態を記述したファイルです。

今回は起動するだけですので,以下の様に空のマニフェストを作成します。

$ sudo mkdir -p /etc/puppet/manifests
$ sudo touch /etc/puppet/manifests/site.pp

では,実際に起動してみます。Puppetサーバ側では,puppetmasterdというデーモンを起動します。初回の起動時には--mkusersオプションをつけることにより,puppetユーザ/puppetグループが作成され,puppetmasterdプロセスのオーナは,このユーザ/グループに設定されます。

$ sudo puppetmasterd --verbose --mkusers
info: Starting server for Puppet version 0.22.4
notice: /puppetconfig/puppet/Group[puppet]/ensure: created
notice: /puppetconfig/puppet/User[puppet]/ensure: created
info: Parsed manifest in 0.00 seconds
info: Creating a new certificate request for server.example.com
info: Creating a new SSL key at /etc/puppet/ssl/private_keys/server.example.com.pem
info: Autosign is enabled but /etc/puppet/autosign.conf is missing
info: Signing certificate for CA server
info: Signing certificate for server.example.com
info: Listening on port 8140
notice: Starting Puppet server version 0.22.4 

2回目以降の起動や,パッケージからのインストールで自動的にpuppetユーザ/puppetグループが作成されている場合には,--mkusersオプションは必要ありません。

$ sudo puppetmasterd --verbose
# puppetmasterd --verbose --nonode
info: Starting server for Puppet version 0.22.4
info: Parsed manifest in 0.00 seconds
info: Creating a new certificate request for server.example.com
info: Creating a new SSL key at /etc/puppet/ssl/private_keys/server.example.com.pem
info: Autosign is enabled but /etc/puppet/autosign.conf is missing
info: Signing certificate for CA server
info: Signing certificate for server.example.com
info: Listening on port 8140
notice: Starting Puppet server version 0.22.4 

--verboseオプションをつけることにより,puppetmasterdはフォアグラウンドで起動し,内部で何が行われているのかメッセージ出力してくれます。--verboseオプションがない場合には,メッセージが出力されず,バックグラウンドで起動します。

Puppetクライアントの起動

次にPuppetクライアント側で,puppetdというデーモンを起動します。--serverオプションでPuppetサーバを指定します。--verboseオプションはpuppetmasterdの場合と同様の動作となります。

$ sudo puppetd --server server.example.com --verbose
info: Creating a new certificate request for client.example.com
info: Creating a new SSL key at /etc/puppet/ssl/private_keys/client.example.com.pem
warning: peer certificate won't be verified in this SSL session
notice: Did not receive certificate  

Puppetサーバ/クライアント間は,SSLv3認証を利用しますので,初回起動時には証明書を作成し,Puppetサーバに対して署名するようリクエストします。

Puppetサーバ側では,以下の様なメッセージが表示されます。

notice: Allowing unauthenticated client client.example.com(192.168.10.18) access to
puppetca.getcert
info: Autosign is enabled but /etc/puppet/autosign.conf is missing
notice: Host client.example.com has a waiting certificate request   

/etc/puppet/autosign.confを設定することで,自動で署名することも可能ですが,今回は手動で署名します。フォアグラウンドで動いているpuppetmasterdを停止するか,別ターミナルで以下の様にコマンドを実行し,署名リクエストの確認と署名を行います。

$ sudo puppetca --list
client.example.com
$ sudo puppetca --sign client.example.com

puppetmasterdを停止させた場合には,ここでもう一度起動します。

少し待つと,Puppetクライアント側で以下の様に表示され,証明書に署名されたことが通知されます。

notice: Got signed certificate
notice: Starting Puppet client version 0.23.0
err: Could not retrieve configuration: Could not find client.example.com with names
client.example.com, client
err: Could not run Puppet::Network::Client::Master: Cannot connect to server and there is no cached configuration  

エラーはPuppetサーバ上のマニフェストに,このPuppetクライアント用の設定がないために表示されていますが,マニフェストは空ですので,出て当然のエラーということになります。

以上がPuppetのインストールから起動までの流れとなります。次回は具体的なマニフェストを作成して,実際に簡単なシステム管理を行う手順についてご説明したいと思います。

Puppet セミナーのご案内

7/20(金), 7/21(土)にPuppet Dojoと題して,Puppetを実際に操作して,基本的な使い方を学ぶセミナーが開催されます。7/20(金)の枠は既にいっぱいですが,7/21はまだ空きがあるようです。詳しくはリンク先をご参照下さい。

著者プロフィール

宮下剛輔(みやしたごうすけ)

(株)paperboy&co.技術責任者。 社内ではサーバ周りからアプリケーション開発まで幅広く関わる一方,個人的にはPerlプログラミングを趣味として,サーバ管理用ユニットテストスイート Assurer(アシュラ)をオープンソースで公開したり,CPAN AuthorPlaggerコミッタとして活動している。また,YAPC::Asia 2007 Tokyo等の技術系カンファレンスでスピーカを務めるのも最近の楽しみのひとつ。共著書に『MASHUP++』がある。

URLhttp://mizzy.org/