ページ

2016年1月10日日曜日

itamaeを使ってみる1


itamaeとは? 以前やったchefを簡単に使えるようにしたもの

   環境準備


gemをインストール
$ mkdir itamae_test
$ cd itamae_test
$ bundle init
Gemfileに追加
gem "itamae"

   ローカル環境でディレクトリ作成


単純にローカルでmkdir helloを行うだけのレシピを作成してみます。
itamae_test/hello.rbを以下の内容で作成
execute "mkhello" do
  command "mkdir hello"
end
早速実行してみる
$ bundle exec itamae local hello.rb -l debug
INFO : Starting Itamae...
DEBUG : Executing `mkdir -p /tmp/itamae_tmp`...
DEBUG :   exited with 0
DEBUG : Executing `chmod 777 /tmp/itamae_tmp`...
DEBUG :   exited with 0
INFO : Recipe: /Users/.../itamae_test/hello.rb
DEBUG :   execute[mkhello]
DEBUG :     execute[mkhello] action: run
DEBUG :       (in pre_action)
DEBUG :       (in set_current_attributes)
DEBUG :       (in show_differences)
INFO :       execute[mkhello] executed will change from 'false' to 'true'
DEBUG :       Executing `mkdir hello`...
DEBUG :         exited with 0
DEBUG :       This resource is updated.
DEBUG :       This resource is updated.
成功すればhelloディレクトリが作成されているかと思います。

   Vagrant環境でディレクトリ作成


上と同じ内容をVagrant上で実行してみます。
実行対象のVagrantを起動。
$ vagrant up
Vagrant対象に対してコマンドを実行
$ bundle exec itamae ssh --vagrant hello.rb -l debug
INFO : Starting Itamae...
DEBUG : Executing `mkdir -p /tmp/itamae_tmp`...
DEBUG :   exited with 0
DEBUG : Executing `chmod 777 /tmp/itamae_tmp`...
DEBUG :   exited with 0
INFO : Recipe: /Users/.../itamae_test/hello.rb
DEBUG :   execute[mkhello]
DEBUG :     execute[mkhello] action: run
DEBUG :       (in pre_action)
DEBUG :       (in set_current_attributes)
DEBUG :       (in show_differences)
INFO :       execute[mkhello] executed will change from 'false' to 'true'
DEBUG :       Executing `mkdir hello`...
DEBUG :         exited with 0
DEBUG :       This resource is updated.
DEBUG :       This resource is updated.
vagnrat上にhelloディレクトリが作成されていれば成功

   httpdのインストールと起動


もう少し実用的にVagrant上にhttpdをインストールしてサービスを起動する
レシピを作成してみたいと思います。
httpd.rbを作成
package 'httpd' do
  action :install
end

service "httpd" do
  action [ :enable, :start ]
  name "httpd"
end
実行
$ bundle exec itamae ssh --vagrant httpd.rb -l debug
ちゃんと実行されているか確認
$ service httpd status
httpd (pid  XXXX) is running...
   軽く使ってみて・・・
シンプルに扱えるのがいいですね。
Chef-soloしか使ってないという人はitamaeお勧めです。

0 件のコメント:

コメントを投稿