LoginSignup
31
31

More than 5 years have passed since last update.

Vagrant+chefの入門 (CentOS6.4)

Last updated at Posted at 2013-07-26

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
31
31
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
31
31