- leinaddm/htpasswd · Puppet Forge
https://forge.puppetlabs.com/leinaddm/htpasswd
- leinaddm/puppet-htpasswd
https://github.com/leinaddm/puppet-htpasswd
使い方は README.md に書かれている通りで、
特にはまることもなく、使い勝手は悪くない。
- leinaddm/htpasswd · Puppet Forge
https://forge.puppetlabs.com/leinaddm/htpasswd
- leinaddm/puppet-htpasswd
https://github.com/leinaddm/puppet-htpasswd
使い方は README.md に書かれている通りで、
特にはまることもなく、使い勝手は悪くない。
メモ
Puppet 3.7 の新機能などが反映された、3.7 以上向けのものらしい。
- Announce: Puppet Language Style Guide 2.0 - Google グループ
https://groups.google.com/forum/#!msg/puppet-users/ka6vwIavmDI/us4KUCx-kfsJ
- The Puppet Language Style Guide — Documentation — Puppet Labs
https://docs.puppetlabs.com/guides/style_guide.html
Solaris is now a supported platform
Announce: Native Facter (cfacter) 0.3.0 is available! - Google グループ
ということで、cfacter 0.3.0 で Solaris に対応したようです。
Solaris でビルドするには、依存するパッケージのビルドが必要で、
- puppetlabs/cfacter-build
https://github.com/puppetlabs/cfacter-build
が、依存するパッケージのビルドを含めてやってくれるもよう。
- puppetlabs/cfacter
https://github.com/puppetlabs/cfacter
ので、さっそく、'--no-80chars-check' をわたすようにして、
flymake-puppet の設定は次のように。
(require 'flymake-puppet) (setq flymake-puppet-options '("--no-80chars-check")) (add-hook 'puppet-mode-hook 'flymake-puppet-load)
ssh_authorized_key とか 80 文字でおさまらないものがちょこちょこあるし、
それらがひっかからなくなるのは、ちょっとうれしい。
ref. https://github.com/benprew/flymake-puppet/commit/fc4cd25aeac37ed5722bc586d5350fd06ee3067c
メモ
Encrypt Your Data Using Hiera-Eyaml | Puppet Labs
http://puppetlabs.com/blog/encrypt-your-data-using-hiera-eyaml
Hiera のデータの暗号化には、hiera-gpg というものがあったらしいんだけど、
Hiera のデータファイル自体を gpg で暗号化してしまい扱いづらかったっぽい。
この Hiera-Eyaml は必要なデータだけ暗号化できるものっぽい。
- TomPoulton/hiera-eyaml
https://github.com/TomPoulton/hiera-eyaml
- crayfishx/hiera-gpg
https://github.com/crayfishx/hiera-gpg
手元の環境の Puppet を 3.4.3 から 3.6.1 に上げたところ、
User リソースタイプの shell が反映されなくなった。
ググってみると、3.5.0 から User リソースタイプの Provider が持つ feature に
:manges_shell が増え、Solaris の default の Provider である user_role_add では
:manage_shell に対応していないため、shell が設定されないもよう。
- http://docs.puppetlabs.com/references/3.4.3/type.html#user-provider-features
- http://docs.puppetlabs.com/references/3.5.0/type.html#user-provider-features
- http://docs.puppetlabs.com/references/3.6.1/type.html#user-provider-features
とりあえず、以下のような patch で shell が設定されることを確認。
この書き方が正しいかは不明。
- 『入門Puppet - Automate Your Infrastructure』という電子書籍を出版しました - delirious thoughts
http://blog.kentarok.org/entry/2013/04/30/225404
とりあえず、確保。
「ブクログのパブー」で買っていただく方が料率が断然いいので、個人的にはうれしいです。
『入門Puppet - Automate Your Infrastructure』という電子書籍を出版しました - delirious thoughts
ということなので、ブクログで購入。
- 入門Puppet - Automate Your Infrastructure - 栗林健太郎 | ブクログのパブー
http://p.booklog.jp/book/70667
すぐにざっと目をとおしたけど、
目次を見て思った通り、13 章以降をちゃんと読めばよさそう。
exec をけっこう使ってしまっている自分には耳が痛い部分もあったり。
Solaris で Puppet + serverspec + Ukigumo server + Ikachan な環境が作れたし、
そのあたりはこれから修正していく方向で。
入門Puppet - Automate Your Infrastructure [Kindle版]
Instant Puppet 3 starter [Kindle版]
タイトル通り、インスタントな Puppet を始めて使うような人向け。
ちゃんと調べずに放置していた Hiera がなんとなくわかったのが収穫。
あとは、英語のお勉強として、しっかり読みこみたいところ。
Ukigumo Server をたてて([2013-04-22-1])
Puppet の実行結果を Ukigumo Server に投げていたところ、
マニフェスト自体に問題があって puppet agent が終了すると
Ukigumo Server で FAIL になるが、
インストールするパッケージがインストールできないなどで
適用できないものがあっても
Notice: Finished catalog run in 14.06 seconds
と最後まで行くと Ukigumo Server では SUCCESS になる。
puppet agent を手で叩いて、
インストールできないパッケージがあっても、
echo $? すると 0 が返っていることを確認。
ぐぐったところ
- puppet always has an exitcode of 0 - Google グループ
https://groups.google.com/forum/?fromgroups=#!topic/puppet-users/EouO8xXnxcs
を発見。
"--detailed-exitcodes" をつければよいらしい。
puppet help agent を見ると
* --detailed-exitcodes: Provide transaction information via exit codes. If this is enabled, an exit code of '2' means there were changes, an exit code of '4' means there were failures during the transaction, and an exit code of '6' means there were both changes and failures.
とあるので、exit code は
- 0: 変更なし
- 1: マニフェストに syntax error などの問題がある
- 2: 変更あり
- 4: 適用できなかったものがある
- 6: 変更があり、かつ、適用できなかったものがある
ということのよう。
exit code が 2 の時も SUCCESS として
Ukigumo Server に投げる必要がある。
Perl の "$?" は
- perlvar - perldoc.perl.org
http://perldoc.perl.org/perlvar.html
によると、上 8 bits が exit code で
下 8 bits が core dump や signal death といった mode of failure らしいので、
8 bit シフトすれば shell での exit code と同じものがとれる。
Ukigumo Server に投げる status は以下のようになる。
$args->{status} = ($? >> 8 == 0 || $? >> 8== 2 ) ? 1 : 2;
Puppet 3.0 Beginner's Guide by @bitfield published today! bit.ly/Zxylnd
— Puppet Labsさん (@puppetlabs) 2013年4月17日
というのを見かけたので、amazon で検索。
Puppet 3 Beginner’s Guide [Kindle版]
ついでに『Puppet』で検索したら以下が見つかった。
Instant Puppet 3 starter [Kindle版]
内容紹介を読んで、買うか考える。
(追記)
結局、内容紹介を読まずにぽちった。
買った.
Puppet Types and Providers [Kindle版]
Puppet Types and Providers [ペーパーバック]
New Puppet Types and Providers book: Snag your free copy today | Puppet Labs
http://puppetlabs.com/blog/new-puppet-types-and-providers-book-snag-your-free-copy-today/
Solaris 11 から nodename の設定が面倒臭くなった([2012-10-03-2])ので,
Puppet でちょっと手を抜く方法.
svccfg setprop をしてくれる puppet module の
ppbrown-svcprop が必要なのでインストール
sudo puppet module install ppbrown-svcprop
以下のようなクラスを定義
class nodename ( $nodename = 'foo', ){ svcprop { 'nodename': fmri => 'svc:/system/identity:node', property => 'config/nodename', value => $nodename, notify => Service['nodename'], } service { 'nodename': ensure => running, name => 'svc:/system/identity:node', enable => true, } }
nodename を hoge にするには以下のようにする.
sudo puppet apply -e "class { nodename: nodename => 'hoge' }"
Puppet で使われている Hierarchical datastore の Hiera について
そろそろまとめておきたいので,URL をメモ.
- Puppet backend for Hiera | R.I.Pienaar
http://www.devco.net/archives/2011/06/06/puppet_backend_for_hiera.php
- puppetlabs/hiera · GitHub
https://github.com/puppetlabs/hiera
https://github.com/nanliu/puppet-pocco
puppet のモジュールからドキュメントを生成してくれるツール.
生成されるドキュメントは以下のような感じ.
http://nanliu.github.com/puppet-pocco/
使い方は
pocco /path/to/puppet-module
これを実行すると,/path/to/puppet-module/doc 以下に html が生成される.
http://nanliu.github.com/puppet-pocco/ に
WARNING: install pygments to process highlighting locally, otherwise the manifests are uploaded to http://pygments.appspot.com for processing.とあり,pygments がないと http://pygments.appspot.com に
あと,rocco が必要だけど,rocco 0.8.2 では
以下の問題にひっかかる.
https://github.com/rtomayko/rocco/issues/69
fl-rocco 1.0.0 なら問題ないので,
こちらをインストールしておく.
http://projects.puppetlabs.com/issues/9296
このチケットの件にはまったのでメモ.
とりあえず,gem を 1.5.3 にすればよいらしい.
gem update --system 1.5.3
はまりかたは以下
Solaris11 の gem は 1.3.5 と古かったので,
gem update --system
して 1.8.24 にアップデートしたら,
rake RAILS_ENV=production db:migrate
で rack を見つけてくれずに失敗.
ここに .p5p のパッケージが置かれている.
http://downloads.puppetlabs.com/solaris/
調べてみると
- OpenCSW
http://www.opencsw.org/
に package があるようなので,それを利用.
rubygems で入れると,defualt では
/var/ruby/1.8/gem_home/
以下に入るので,PATH に/var/ruby/1.8/gem_home/bin/ を追加.
OpenCSW のパッケージなら SMF 用のマニフェストもあり,
こちらを利用した方がよさげな気がしたので,
OpenCSW の Puppet を使ってみる.
- Installing Puppet on Solaris « Distributed Conscience
http://khartig.wordpress.com/2009/01/30/installing-puppet-on-solaris/
/etc/aliases や /etc/postfix/{canonical,transport} あたりが
更新されたら newaliases や postmap を実行したい.
と思ったら,そのままな例が
http://reductivelabs.com/trac/puppet/wiki/TypeReference#exec
にあった.
# Pull down the main aliases file file { "/etc/aliases": source => "puppet://server/module/aliases" } # Rebuild the database, but only when the file changes exec { newaliases: path => ["/usr/bin", "/usr/sbin"], subscribe => File["/etc/aliases"], refreshonly => true }
コマンドに引数をとらせたい時は,
上の「newaliases」の行に引数まで書けばいい.