Puppetのインストールからpuppetrunの実行まで

| 2件の返信

システム管理ツールのPuppetのインストール手順と、puppetrunというコマンドの実行について書きます。

下図のように、一台の親サーバーから複数の子サーバーに処理命令を出す構成を想定しています。

環境

今回は、以下の親サーバーと子サーバーにインストールを行います。
Puppetのバージョンは2012年3月7日時点で、2.7.9です

親サーバー

  • OS: CentOS 5.3
  • ホスト名: puppet-server.mydomain.com

子サーバー

  • OS: CentOS 5.3
  • ホスト名: puppet-client.mydomain.com

*1. /etc/hosts に相手となるサーバーのホスト名を追加しておきます。
*2. 子サーバーのiptablesで、親サーバーに対して 8139 と 8140 ポートを開放し、ping を許可します。

インストール

リポジトリの追加

リポジトリを追加します。

親サーバー・子サーバー両方で行います。

# vi /etc/yum.repos.d/dag.repo

dag.repoを作成して、下記を記述します。

[dag]
name=DAG RPM Repository
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://ftp.riken.go.jp/pub/Linux/dag/RPM-GPG-KEY.dag.txt

インストール

親サーバー

# yum install puppet-server

子サーバー

# yum install puppet

子サーバーの認証

親サーバー

# puppetmasterd --verbose --no-daemonize

子サーバー

# /usr/sbin/puppetd --server puppet-server.mydomain.com --verbose --no-daemonize

Ctrl + Cで起動中のpuppetdを終了。

親サーバー

Ctrl + Cで起動中のpuppetmasterdを終了。

# puppetca --list

puppet-server.mydomain.com と表示されるはず。

# puppetca --sign puppet-server.mydomain.com

テスト

親サーバー

# vi /etc/puppet/manifest/site.pp

site.pp に、下記のようにマニフェスト(実行する処理)を記述します。

exec { 'test':
  command => '/bin/touch /root/test'
}
# puppetmasterd --verbose --no-daemonize

子サーバー

# /usr/sbin/puppetd --server puppet-server.mydomain.com --verbose

root 直下に空の test ファイルが作成されます。

puppetrunの設定

Puppetのインストールが終わりました。現状では、子サーバーが親サーバーに問い合わせて、処理命令を取得してから実行する、という流れです。
このままだと子サーバーが複数ある場合に手間がかかります。そこで、親サーバー側から子サーバーに対して処理命令を送ることができる puppetrun というコマンドの設定をします。

親サーバーからのアクセスを許可する

子サーバー

# vi /etc/puppet/auth.conf

auth.conf を開いて、下から2行目の “path /” の上に以下を追加します。

path /run
method save
allow puppet-server.mydomain.com

テスト

子サーバー

puppet を起動して待機状態にします。

# /usr/sbin/puppetd --server puppet-server.mydomain.com --listen --no-client --verbose --no-daemonize

親サーバー

puppetmaster を起動します。

# /etc/init.d/puppetmaster start

puppetrun を実行します。

# /usr/bin/puppetrun --host puppet-client.mydomain.com

*複数の子サーバーを指定する場合は、 –host client1 –host client2 ・・・ というようにコマンドのオプションを追加します。

子サーバー

test ファイルの最終更新時刻が更新されていることが確認できます。

まとめ

Puppetのインストール方法とpuppetrunを実行するための設定について書きました。
site.ppにマニフェストを記述することで、様々な処理命令を子サーバーに送ることができます。

Puppetのインストールからpuppetrunの実行まで」への2件のフィードバック

  1. ピンバック: Puppetのマニフェストで日付けを扱う方法 « infoScoop Developer's Blog

  2. ピンバック: Puppetのインストール後に自動で認証する方法 « infoScoop Developer's Blog

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>