Chef

chef-clientのdry-run

chef-client -Wもしくは chef-client --why-run

Test Kitchenで自作Ohaiプラグインを使う

前回のエントリでTest KitchenとDocker、Serverspecの設定手順を書きました。 今回は自作Ohaiプラグインを使ったレシピのテストを行う方法です。 何もせずにTest Kitchenで自作Ohaiプラグインを使おうとするとエラーになります。 具体的には自作Ohai変数をテ…

Test KitchenでDockerとServerspecを使ってChefのレシピをテストする

概要 Test Kitchenの役割 以下を自動でやってくれます。 Dockerコンテナ起動 起動したDockerコンテナにChefレシピを適用 その後Serverspec実行 Dockerコンテナ破棄 環境 OS CentOS 6.5 このホストでTest KichenやDockerを動かします。 関連ミドルウェア 事前…

chef-soloをデバッグモードで動かしたい場合

chef-soloの使い始めの頃エラーと戦っていた時のデバッグ方法メモです。 デバッグモード実行その1 以下のようにchef-solo実行時にオプションでデバッグモードを指定出来ます。 chef-solo -c solo.rb -j node.json --log_level debug デバッグモード実行その2…

Chefで物理サーバーの場合のみ適用するレシピを作る

物理サーバーと仮想サーバーを両方扱っている場合、 物理サーバーにのみインストールしたいパッケージや起動したいデーモンが出てきます。例えばmcelogというメモリにエラーがあった時にログ出力してくれるデーモンがあるのですが、 物理サーバー(ハイパーバ…

Chefのscript(bash)リソースを使ってファイルに追記するレシピ

Chefのscript(bash)リソースを使ってファイル追記するレシピを作成した場合の注意点 not_ifまたはonly_ifといったガード条件が入っていないと Chef実行の度に重複してコマンドが実行されてしまいます。例えば、 /etc/securetty に ttyS0 を追記する場合の例…

Chefのnot_ifとonly_if

Chefのレシピで /etc/httpd/conf.d/userdir.conf が存在する場合のみ、ファイル中の文字を全てコメントアウトしたい。 というレシピを作成する場合の話し。 このファイルはApache2.4系から追加されたようで、2.2系が入っているサーバーでChefを動かすと そん…

Chef Ohaiのプラグインを自作

以前Puppetを使っていた時に、 Facter変数を利用してサーバーによって個別の情報を埋め込んだりしていました。Facter変数はデフォルトで用意されているものももちろんあるのですが、 自作することも出来ました。 その時のエントリーです。 ↓ Puppetのカスタ…

PuppetのマニフェストとChefのレシピの書き方比較

Puppetのマニフェストを全部Chefのレシピに書きなおしてみました。 ので、その違いとか。 パッケージのインストール 例:httpdのインストール Puppet package { 'httpd': name => 'httpd', ensure => latest, require => File['/etc/yum.repos.d/CentOS-Base…