11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

chef zeroやitamae

Last updated at Posted at 2015-04-07

先に結論です。

  • 使うならitamaeがいい。chef zeroは何か辛かった(すみません)

そもそも何故Chef zeroを見てみようかと思った?

構成管理ツールとしてchefは有名ですが、このツール、結構使いこなすのが大変です。インフラまわりを「Infrastructure as Code」というようにコードで管理するのは魅力的ですが、結構ハマってしまうこともあったので敷居が高いなという印書です。
ただそういった中Chefをより簡単に使えるようにしたものとしてChef Solo(この本が参考になりました)がありました。
これがあったお陰でローカルマシンからVMやEC2などに比較的簡単にchefを適用させることができるようになりました。

ところが、ところがです・・・。chef soloが非推奨になり代わりにchef zeroを使えということになりました。これは非常に残念・・・・。

なのでchef zeroみてみました

環境

使うもの

  • ruby2.1.5 (インストール済みとする)
  • chef zero
  • knife zero
  • virtual box
  • vagrant
  • centos65

インストール

virtual box

ここから入手

vagrant

  • ここから入手
  • インストール後vagrant init してみる。Vagrantfileが作成されればOK。

virtual boxでcentosを使えるようにする

$ vagrant box add centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box

試しにログインしてみる。

$vagrant up
$vagrant ssh

これで入れたらOK。

  • .ssh/configに追加しておく
vagrant ssh-config >> ~/.ssh/config

chef zero/knife zeroを入れる

macの場合はここのサイトからダウンロードしいれるか、Gemfileを作成する。今回はGemfileを作って入れます

source "https://rubygems.org"

gem 'chef'
gem 'knife-zero'

#リポジトリを作成する

bundle exec chef generate repo chef-repo

.chef/knife.rbを作成する

 echo "local_mode true" >> .chef/knife.rb

#レシピを作ってみる
まずはenvironmentを作成する。

# 以下を実行するとenvironmentを作成
bundle exec knife environment create development

次にknife zeroのbootstrapを実施。

bundle exec knife zero bootstrap melody -x vagrant --sudo -E development

スクリーンショット 2015-02-13 13.47.59.png

#レシピを実行してみる

bundle exec knife zero chef_client 'chef_environment:development' -a hostname -x vagrant

これで実行できれば良いのだが、うまくできない。
どうもVM上へのknife zero chef_clientができない(?)。bootstrapはできるがchef_client実施時はsessionの確率ができない。同じようなこと言っている人もいる。
これはもっと調べる必要ある。。。(Chef solo楽だったなー)

nodeの存在は確認できる

bundle exec knife node list

詳細もみれる

bundle exec knife node show [node_name]

結局上で使わなかったChefdkを使ってChefをいれて、そこに含まれているchef-provisioningを使うと、まー、VMへレシピを適用することはできました。

itamae使う

chef-provisioningは何かうーん、って感じだったので、itamaeを使ってみた。これはchef soloに似ているしライトな感じで使いやすそう。

環境

  • itamae 1.1.24
  • ruby 2.1.5

試してみる

  1. 最初にitamaeのレシピ等作るため、適当にディレクトリ作ります。
mkdir itamae_sample
cd itamae_sample
  1. Gemfileを作成しbundle install
source 'https://rubygems.org'

gem 'itamae', '1.0.13'
  1. レシピを作成する
    nginxをインストールするレシピ。
nginx_recip.rb
package 'nginx' do
  action :install
end

service 'nginx' do
  action [:enable, :start]
end
  1. レシピを実行
    レシピを実行してみる。
    bundle exec itamae ssh -h default --vagrant nginx_recip.rb

スクリーンショット 2015-04-07 10.23.40.png

成功すると上の画面のようなります。
vagrant ssh でVMに入るとインストールされていることがわかると思います。

## 感想
使ってみた感触としては、itamaeが手軽でいい気がします。recipeをあらかじめ用意しておくと、いざという時の環境構築やライブラリアップデートなどが誰でも簡単にできるようになり、良いなと思っています。

itamaeのレシピに関するナレッジとか書いていければなと思っています

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?