それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

puppetについて

Hadoopを大量に入れるのは面倒なのでPuppetを使うことにした。結果としてうまくいってる。動いてる。しかも楽だった。

インストール終ってから買ったオ・ライリーのHadoop本にもPuppetつかえと書いてあった。というわけで、HadoopやるならPuppetマジお勧めです。

puppet でサーバーを構成管理する。

Puppetとは
サーバーを構成管理するソフトウェア。

Linuxでサーバー構成管理はあまり聞いたことがない。

従来の方法との比較。

用途毎に特化している。

コマンド 用途 感想
puppet 設定ファイルとコマンド実行 設定ファイルが独自すぎる
Rsync ファイルの同期 普段使ってないとミス連発
dd ディスクコピー コピー後のIPアドレス書換などが面倒、ディスク付け替えも面倒
ssh+cron 自動実行 ただし失敗したときしんどい
LDAP+NIS ユーザ一元管理 強力すぎるし、場合によって面倒。PAMの知識がいる

今回のHadoopインストールでは、次のことを徹底的にやりたいわけだ。

  1. パッケージ管理
  2. 設定管理。
  3. ユーザ管理
  4. 20台に32bitと64bitを混ぜちゃった。

4番目の条件が強烈に問題で、なんどOSを入れ替えようかと思ったことか。5月連休で研究室に行けないので、なんとかリモートだけでやる方法を模索した。そこでPuppetと言う結論に至る。

Puppetの嬉しいところ

結論

設定管理、ユーザー管理、x86_64, x86 混在を管理できるのはPuppetだけ。

うん。全部出来るのはpuppetだけじゃないかな。

puppetのインストール方法

設定手法

パッケージを入れる。

sudo aptitude install puppet

基本的な流れ

基本的な流れが重要で。Puppetにはサーバー・クライアントがある。

サーバー(配布元)からクライアント(適用先)がファイルを受け取って、設定を適用する。

クライアントはサーバーに設定を取りに行きます。
サーバーはクライアントに設定を送ります。。
クライアントは、設定に従ってコマンドを実行します。

puppetのポイント

サーバーに設置する設定は「Puppet設定ファイル」である。SSH+Cronとは違う。とくにコマンド実行でないこと。ココが注意点。

  • ユーザーが存在する状態にしなさい。
  • Apache2のバージョンを常に最新に維持しなさい。
  • ファイルの中身をこの状態に維持しなさい。

と記述する。SSHだとこのコマンドを実行すると書くのですが。Puppetは「○○○○の状態にしなさい」と書いておく

状態維持がPuppetの基本概念とのこと。

暗号化通信。

クライアントは、マスタサーバーから設定を転送します。サーバーを間違えないように、クライアントーサーバー間で署名をします。この設定が間違っていると通信をしません。

サーバ〜クライアント間は暗号化通信を行なうので注意が必要。

設定をテーマ別にまとめるとPuppetはかなり使える。

わかりやすい例:AptLineをPuppetで管理する。
Managing sources.list with puppet