vagrantにCentOS6.2のひな形を登録し、yum reposをレシピから登録するところまでの手順まとめました。
開発環境
$ vagrant -v
Vagrant version 1.2.2
$ chef-solo -v
Chef: 11.4.4
Vagrantの設定編
VagrantでCentOSが起動できるところまで、まとめてました。
box追加
作成済みのvagrant用のboxをダウンロードし、ひな形として登録。
# 以下コマンドでも行けるけど、回線貧弱なので、下記で対応
# vagrant box add http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
# ローカルにbox落としてから、追加
$ wget http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
$ vagrant box add base ~/Downloads/CentOS-6.4-x86_64-v20130427.box
VM起動
Vagrant用に作業用ディレクトリを作成し、初期化
$ mkdir Vagrant
$ cd Vagrant
$ vagrant init
ネットワークの設定
Vagrantfileを編集し、ホストオンリーで接続できるように設定
$ diff Vagrantfile Vagrantfile.org
10a11
> config.vm.network :private_network, ip: "192.168.50.12"
テスト用のVM操作簡略化のためホスト名(melody)を追記
$ cat /etc/hosts | grep melody
192.168.50.12 melody
VM起動確認
$ vagrant up
sshで疎通確認
# 認証鍵追加
$ vagrant ssh-config --host melody >> ~/.ssh/config
# 接続確認
$ ssh melody
# ip振られてるか確認
[root@melody] $ ifconfig | grep 192.168.50.12
inet addr:192.168.50.12 Bcast:192.168.50.255 Mask:255.255.255.0
$ exit
動作確認
vmを一旦止めて、起動できるか念のため確認
# VM停止コマンド
$ vagrant halt
# 起動すればOK
$ vagrant up
Chefの設定編
リモートサーバにchefをインストールし、yumのレシピをインストールするところまでをまとめました。
##リモートサーバにchefをインストール
$ knife solo prepare melody
chefリポジトリの生成
$ knife solo init chef-repo
$ cd chef-repo
$ git init .
$ git add .
$ git commit -m "first commit"
レシピを生成
$ knife cookbook create my-cookbook -o site-cookbooks
knife.rbにcookbook_pathを設定
chefの設定は.chef/knife.rbに書く見たい
$ vim .chef/knife.rb
log_level :info
log_location STDOUT
node_name 'ur_name'
client_key '/Users/ur_name/Documents/Vagrant/chef-repo/.chef/ur_name.pem'
validation_client_name 'chef-validator'
validation_key '/etc/chef/validation.pem'
chef_server_url 'http://URHOSTNAME.local:4000'
syntax_check_cache_path '/Users/ur_name/Documents/Vagrant/chef-repo/.chef/syntax_check_cache'
外部リポジトリを追加
レシピを外部から追加する場合、一旦全部コミットしないといけないみたいなので、
全部コミットしておく
###リポジトリにファイルをコミット
$ git add .
$ git commit -m "append cookbook"
yumのレシピをOpscode Communityから導入
opscodeからchefのレシピを導入するにあたり、
ユーザー登録を行い、認証キーの作成をする必要がある。
下記引用
Opscode - http://www.opscode.com/hosted-chef/
FreeTrialで登録する。 (5nodeまで使える様子)Organizationsにて Regenerate validation key, Generate knife config 等を押してダウンロード。
UserProfileで自分を選択して get private key でkey作成してダウンロード。
(今回、保存先は~/Desktop)引用元:OpscodeのSaaSを使用したChef環境の構築 | vMasturbation .:.
http://j.mp/168GqFg
認証キーは以下に設置
$ '/Users/ur_name/Documents/Vagrant/chef-repo/.chef/ur_name.pem'
認証キーを登録後は、以下コマンドでレシピを追加できる
% knife cookbook site install yum -o site-cookbooks
レシピをリモートホストに紐付け
nodesにはサーバー設定を書き込む
登録したレシピをjson形式でリモートホストに紐付ける
$ vim nodes/melody.json
{"run_list":[
"recipe[yum::epel]"
]}
レシピをコンパイルして実行
いろいろ出力されるので、監視しとくといい
$ knife solo cook melody
動作確認
リモートホストにログインし、リポジトリが追加されているか確認
vagrant ssh
# リポジトリ確認
yum repolist