unoh.github.com

Puppet DashboardからExternal Nodesを利用する方法

Wed Mar 23 05:01:49 -0700 2011

入社3ヶ月目のsaekiです。
今回はPuppetのGUIツール「Puppet Dashboard」でExternal Nodes機能を使用する方法を紹介しようかと思います。
Puppet Dashboardのインストール方法は公式ドキュメントを参考にしてください。
Puppetは0.25.5、Puppet Dashboardは1.0.4を使用しています。

■できること

- マニフェストではなくdashboard上でnode設定ができます。
- node(またはgroup)毎にclassを設定やParameterの設定ができます。

■使用方法

- classを登録する
dashboardにclassを登録します。

1. マニフェストのclassを作成します(例はhosts)
 class hosts {
   file {
     "/etc/hosts":
       owner => 'root',
       group => 'root',
       mode  => 644,
   }
 }

2.dashboard上から[Add class]を選択して、作成したclassを登録します。
class_detail.png

3.nodeにclassを登録するには、node編集画面から[Classes]に作成したclassを登録します。
classにパラメータを渡したい場合は、[Parameters]にkeyとvalueを登録すると変数として扱えます(画像の青い囲い)
node_edit.png

クライアントからpuppetdを実行してみてください。
特にsite.ppなどにnodeの設定をしてなくても、hosts classのマニフェストが反映されるかと思います。


- group登録をする
chassやnodeをgroup登録できます。サーバ機能毎やプロダクト毎にまとめたい場合に利用できるかと思います。

1.左メニューから[Add group]を選択するとgroup編集画面になります。
2.groupに登録したいclassやgroup(親group)を設定できます。group毎に使用するParameterの設定も可能です。
group_edit.png

3.groupにnodeを登録するには、node編集画面から[Groups]に作成したgroupを登録します。
node_edit_group.png

■利用例

- こんなイメージで設定ができるかと思います(webサーバgroupとして設定)
base(group)
   ├─ web(group)  
   │      ├──  httpd(class)
   │      └──  php(class)
   │
   ├── hosts(class)
   ├── ntp(class)
   └── ssh(class)
External NodesをGUIで扱うtoolにはforemanというのもあるようです。
便利な機能かと思いますので、Puppet利用されている方は導入されてみてはいかがでしょうか。