概要
itamae は Ruby で作られたプロビジョニングツールです
docker イメージも作成できるということなので試してみました
環境
- macOS 10.13.4
- Ruby 2.5.1p57
- itamae 1.9.11
- docker 18.03.1-ce
itamae のインストール
今回は bundler を使っていますが、グローバルにインストールして良いと思います
- bundle init
- vim Gemfile
gem "itamae"
bundle install --path vendor
プロジェクトの作成
公式の wiki にあるようにディレクトリ構成を作成します
専用のコマンドも用意されているようなのでそれを使って構築します
もちろん今回の方法じゃなくても OK です
- bundle exec itamae init test
create
create Gemfile
create cookbooks/.keep
create roles/.keep
run bundle install from "."
test という名前のプロジェクトを作成します
今回は docker イメージを作成するので gem を追加します
- vim Gemfile
gem 'docker-api'
この配下に role と cookbook を作成します
role の作成
role はサーバの役割ごとに作成します
例えば Web サーバ、DB サーバに対してレシピを作成する場合は web
, db
などといった role を作成します
今回はテストサーバなので test_server
という role を作成します
- cd test
bundle install --path vendor
bundle exec itamae generate role test_server
create
create default.rb
create files/.keep
create templates/.keep
こんな感じで作成されます
あとで cookbook を作成するのでその cookbook を参照するように role のレシピに記載します
- vim roles/test_server/default.rb
include_recipe '../../cookbooks/vim'
相対パスで cookbook ディレクトリの場所を指定します
vim
cookbook はこの後作成します
cookbook の作成
上述の通り vim をインストールする cookbook を作成しましょう
この cookbook が実際にプロビジョニングする内容を記載するレシピになります
- bundle exec itamae generate cookbook vim
今度は cookbook を generate します
create
create default.rb
create files/.keep
create templates/.keep
作成されたらレシピを記載します
- vim cookbooks/vim/default.rb
execute 'update apt' do
command 'apt -y update'
end
package 'vim' do
options '--force-yes'
end
やっていることは簡単で apt update
した後で vim をインストールしています
ではこれを使って docker イメージを作成してみましょう
docker イメージの作成
itame は作成したレシピを使って docker イメージを作成することが可能です
他にも localhost に適用したり SSH を使ってリモートホストに実行することも可能です
bundle exec itamae docker --image=nginx --tag nginx_with_vim roles/test_server/default.rb
実行すると nginx イメージの pull が始まりその後プロビジョニングが始まります
INFO : Starting Itamae...
INFO : Recipe: /Users/hawk/Documents/work/itamae/test/roles/test_server/default.rb
INFO : Recipe: /Users/hawk/Documents/work/itamae/test/cookbooks/vim/default.rb
INFO : execute[update apt] executed will change from 'false' to 'true'
INFO : package[vim] installed will change from 'false' to 'true'
INFO : Image created: sha256:58b463f0c5730e230e5d6124c6b3112bdf5a3c0cf1347c629038f0af9d7c9c62
こんな感じでログが表示されれば成功です
細かいヘルプは bundle exec itamae help docker
で確認できます
動作確認
docker images で nginx_with_vim
というイメージが作成されていることを確認します
そして run で動作確認してみましょう
docker run --rm nginx_with_vim vim --version
これで vim のバージョン情報が表示されると思います
最後に
itame を使ってレシピを作成して、そこから docker イメージを作成してみました
今回は docker イメージを作成しましたが、作成したレシピは普通の Ubuntu サーバなどに対しても実行可能です
Ansible に比べて情報は少ないですが、簡単に使えると思います
0 件のコメント:
コメントを投稿