トップ 最新 追記

人徳ゼロ日記


2013-08-06

_ Puppet Enterprise 3.0が出た

オープンソース版のPuppet3が出てから半年以上かかりましたが、 商用版のPuppet Enterprise 3.0がでました。 出てから1ヶ月以上たってしまいましたが紹介します。

Announcing Puppet Enterprise 3.0

この紹介blog記事だとマーケティング色が強すぎて何ができるようになったか分かりづらいのですが、 中身のPuppet本体がPuppet2.7からPuppet3.0になったことが一番です。

こんなことを書きつつ、Puppet Enterpriseは一度も使っていないのでした。 1ノード$100くらいでそんなに高くないので、使う機会を探ってます。


2013-08-07

_ PuppetマニフェストIDE(Eclipse Plug-in)のGeppettoを作っているCloudsmithをPuppetlabsが買収した

Puppet Enterprise3.0の話と同じく、発表から1ヶ月近く経ってしまいましたが、紹介です。 PuppetマニフェストのIDEでGeppettoと言うツール(Eclipse Plug-in)があります。 Geppettoページhttp://cloudsmith.github.io/geppetto/

このツールを作っていたCloudsmithと言う会社を、Puppetlabsが買収しました。 Blogでのアナウンス: Cloudsmith Joins Puppet Labs プレスリリース: Puppet Labs Acquires Cloudsmith

私は普通のテキストエディタで編集しているだけで、Geppettoは使ったことがないです。 他人にPuppetマニフェストを書いてもらう場合は、こういう環境があるととっつきやすくなるのは良さそうですね。 今度試してみたい。


2013-08-08

_ PuppetlabsにModule Teamができたので、Puppet Forgeのモジュールの改善が進みそう

Puppetlabs内にModule Teamができて、Puppet Forge内のPuppetlabsが作成しているモジュールの 開発を加速するとのこと。 Pupet Userメーリングリストの記事:

メーリングリストの投稿では、以下のモジュールの名前があがっていました。

  • puppetlabs/mysql
  • puppetlabs/apt
  • puppetlabs/apache
  • puppetlabs/ntp/
  • puppetlabs/firewall

PostgreSQLのようにPuppetDBで使うからという理由で盛んに開発しているモジュールもあれば、 放置状態でPull Requestがたまっているモジュールもあるみたいなので、 ここで力を入れて取り組むようです。単に作るのではなく、 ドキュメント、テストもちゃんと入れて、コミュニティとの対話を重視するとのこと。

今までのPuppet Forgeのモジュールは正直言ってあまり使えない印象でした。 品質レベルがばらばらですし、設計方針もばらばら、 同じApacheでもいろんな人が似てことなるモジュールを作っていたり、 数だけ多いが再利用を意識していないオレオレモジュールが多かったです。 ここで、多くの人が使いそうなモジュールをPuppetlabsが主導で品質をあげて、 再利用できるようにしてモジュールの分断化を防げるのであれば、 とても素晴らしいことだと思います。 新しいモジュールを作るときもお手本になるので、全体的な底上げになると思います。


2013-08-21

_ Puppetのパラメタ名、変数名など命名規則案が参考になる

Puppetで再利用性の高いモジュールを作ろうとすると、 多数のパラメタを準備して柔軟性を確保することになります。 そうすると、多数のパラメタ名が必要になってくるのですが、 名前の決め方がバラバラだと、他人が見たときに何のパラメタなのか 分かりづらくなります。

Puppet Userメーリングリストで、命名規則の案が投稿されていました。 Modules Naming Standards

数多くのPuppet Moduleを公開していて、Puppet Userメーリングリストでも活躍している Alessandro Franceschi氏(Lab42, Example42)が作成しています。

いざPuppetのModuleを作成するとなると、 確かにパラメタ名をどうつけるか迷います。 クラス名は、対象のソフト名や設定ファイル名から決まってくるのでそれほど迷いませんが、 パラメタ名は自由度が高いので迷います。特に、他人に使ってもらうことを考えるとなおさらです。

個人的に迷ったのは、各種ディレクトリ名、ファイル名を示す パラメタ名をどうするか、でした。例えば、命名規則の中で気になるのはこれです。

  • file_template テンプレートのファイル名(ファイル名のみ?フルパス?))
  • file 設置先のファイル名(ファイル名のみ?フルパス?)

まだこの命名規則では曖昧で、 フルパスか、ファイル名だけか、ディレクトリ名フルパスか、単体のディレクトリ名か、等が 迷うことなく同じ名前で決められると、誤解がなくとてもよいです。 具体的には、/etc/apache2/httpd.conf、httpd.conf、/etc/apache2、apache2の 区別がつくパラメタ名が命名規約でみんなで共有できているとうれしい。