読者です 読者をやめる 読者になる 読者になる

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…