※ここで説明している方法でのChefのインストールはお勧めしません。
こちらを参考に入れてください。
http://qiita.com/hamichamp/items/d3ca7c365353285a564b
Vagrantで仮想環境を作る準備をしよう
VirtualBoxをインストールしよう
https://www.virtualbox.org/wiki/Downloads
今回はMacOSXで環境を作るので、Mac版をダウンロードします。
Vagrantをイントールしよう
http://downloads.vagrantup.com/
ここから最新のものをダウンロードしましょう。
この記事を書いている段階では、v1.2.7でした。
今回はMacOSXで環境を作るので、Mac版をダウンロードします。
Vagrantで仮想環境を作ってみよう
仮想環境を登録しよう
今回はCentOSをダウンロードします。
$ vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
centosという名前でvagrantにboxが追加されたか確認しましょう。
$ vagrant box list
仮想環境を初期化しよう
初期化するとVagrantfileというファイルが作成されます。
適当なフォルダを生成し、そのフォルダで作業をしましょう
$ mkdir ~/vagrant
$ cd ~/vagrant
$ vagrant init centos
これで、~/vagrant フォルダにVagrantfileというファイルが作成されます。
次にこれを編集しましょう。
どんなエディタでも良いです。
ホストのMacから接続できるIPアドレスを設定します。
次がコメントアウトされているので、コメントを外します。
config.vm.network :private_network, ip: "192.168.33.10"
仮想環境を起動しよう
$ vagrant up
しばらくすると仮想環境でCentOSが起動します。
仮想環境にアクセスしよう
$ vagrant ssh
無事にアクセスできたでしょうか?
これでベースとなる仮想環境ができました。
仮想環境での作業は後で行いますので、再びMaxOSXでの作業を続けましょう。
Chefをインストールしよう
こちらを参考に入れてください。
http://qiita.com/hamichamp/items/d3ca7c365353285a564b
※以下は、元々書いていた方法ですが、この方法でのChefのインストールはお勧めしません。
MacOSXのRuby環境を整備しよう
MaxOSXには最初からRubyが入っているんですが、少し古いです。
いろいろと面倒な事が起きるので、最新版をインストールしましょう。Xcodeのインストール
App Storeからインストールしておきましょう。
Xcode Command Line Toolsのインストール
Xcodeを起動し、Preferencesを開き、Downloadsタブ「Components」から『Xommand Line Tools』をインストールしましょう。
Homebrewのインストール
コマンドプロンプトから、以下のコマンドを入力します。
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
次に一応、以下のコマンドも入力してみます。
brew doctor brew update brew -v
私のバージョンは今のところこんな感じでした。
Homebrew 0.9.4
Ruby2.0をインストールするための準備
Homebrewを使って、Ruby2.0をインストールしますが、その前に必要なものをインストールしましょう。
説明は省きます。readline、openssl、rbenv、ruby-build をインストール
$ brew install readline openssl rbenv ruby-build $ brew link readline openssl --force $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ . ~/.bash_profile
curl-ca-bundle をインストール
$ brew install curl-ca-bundle $ brew list curl-ca-bundle
/usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt
$ cp /usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt /usr/local/etc/openssl/cert.pem
## Ruby2.0をインストールしよう さて、いよいよRuby2.0をインストールしましょう。
$ CONFIGURE_OPTS="--with-openssl-dir=
brew --prefix openssl
--with-readline-dir=brew --prefix readline
" rbenv install 2.0.0-p247
$ rbenv rehash
$ rbenv global 2.0.0-p247バージョンを確認しておきます。
$ rbenv version
$ ruby -v2.0.0-p247が使えるようになったでしょうか? ### rbenv rehash を自動化 この後、gemでいろんなものをインストールするんですが、きちんと使えるようにするために、おまじないを唱えておきましょう。
$ gem i rbenv-rehash
これで、ひとまずMacOSXのRuby環境がずいぶんと改善されたと思います。 # Chefをインストールしよう これからの作業がMaxOSXのRuby環境を整えた理由です。 まずは、gemでChefをインストールします。
$ gem i chef --no-ri --no-rdoc
Chefをインストールすると、knifeというChefの便利コマンドもインストールされます。 knifeの設定もしておきましょう。
$ knife configure
実行すると、~/.chef/knife.rbにknifeの設定ファイルが保存されます。 質問事項は全てデフォルトでOKです。 ## knife-soloをインストールしよう knife-soloはknifeのプラグインです。 ここでは0.3.0を入れるようにしておきましょう。
$ gem i knife-solo --no-ri --no-rdoc --pre
--preをつけないと0.2.0がインストールされたのですが、以下のような問題に苦しみました。 http://tk0miya.hatenablog.com/entry/2013/04/18/011339
knife-soloでリポジトリを作ってみよう。
現在のフォルダの中にリポジトリを作成してみましょう。
$ knife solo init chef-repo
chef-repoというフォルダが作成されましたか?
中にはいろんなものがありますね。
サードパーティのレシピを使ってみよう。
レシピの作り方なんてとりあえずわからないので、用意されているレシピをダウンロードしてつかってみましょう。
※BerkshelfはChef Developer Kitをインストールすることで既にインストールされています。
以下は元々の記事ですが、この方法でのインストールは不要です。
まずは、Berkshelfというツールをインストールします。
$ gem i berkshelf --no-ri --no-rdoc
先ほど作ったchef-repoフォルダの中にBerksfileを作成します。
$ cd chef-repo
$ vim Berksfile
ダウンロードしてくるレシピを指定します。
どんなレシピがあるかは下記サイトをのぞいてみてください。
https://github.com/opscode-cookbooks
site :opscode
cookbook 'yum'
cookbook 'nginx'
Berksfileを保存したら、レシピをダウンロードしてきましょう。
$ berks install --path cookbooks
berkshelf3になってから、コマンドが変わったようです。
$ berks vendor cookbooks
chef-repoフォルダ内のcookbooksフォルダにレシピがダウンロードされたはずです。
仮想環境へ設定をする前に
久しぶりに仮想環境が登場です。
仮想環境は立ち上がっていますか?
立ち上げ方を忘れちゃった人は、~/vagrantフォルダから下記のコマンドで立ち上がりますよ。
$ vagrant up
前回は下記コマンドで仮想環境にアクセスしたと思います。
$ vagrant ssh
便利になるように設定をしておきましょう。
$ vagrant ssh-config --host centos >> ~/.ssh/config
これで、どのフォルダからでも以下のコマンドで仮想環境にアクセス可能になります。
$ ssh centos
アクセスできることを確認したら、またMaxOSXから設定を行いましょう。
仮想環境へ設定する準備
仮想環境にchefをインストールします
さっき作ったchef-repoフォルダに戻って、下記コマンドを実行しましょう。
$ knife solo prepare centos
これで、仮想環境にchefがインストールされます。
最初に1回だけ実行すればOKです。
成功するとnodesフォルダの中にcentos.jsonというファイルが生成されるはずです。
作成されたcentos.jsonを編集しましょう。
{
"run_list":[
"yum::epel",
"nginx"
]
}
仮想環境へ設定を反映させる
下記コマンドで、仮想環境に設定が反映されます。
$ knife solo cook centos
Mac OS X側から仮想環境にアクセスしてみよう
192.168.33.10というIPアドレスで仮想環境にアクセスできるんですが、
このままでは、仮想環境がすべてのアクセスを拒否しています。
アクセスを受け付けるように仮想環境の設定を変更します。
#Macのコンソール
$ ssh centos
#以下は仮想環境のコンソール
$ sudo /sbin/iptables -F
$ sudo /etc/init.d/iptables save
この状態でMac OS Xのブラウザからアクセスをしてみましょう。
続く・・・。
と思ったけど、やっぱり続きません!