LoginSignup
11
13

More than 5 years have passed since last update.

chef実践入門 実機にて実施メモ (1) Chef Soloによるvagrant開発環境の構築

Last updated at Posted at 2015-06-09

Chef実践入門 第2章のChef Soloによるローカル開発環境の自動構築 を実機にて検証したメモ

1.Vagrantにて環境準備

0.前提
ホストOSはMacOSX10
vagrant,birtualbox,ruby,gemはインストール済

1.適当な場所にcentosフォルダ作成

mkdir centos
cd centos/

2.vagrantbox追加(centos7.1)

vagrant box add opscode-centos-7.1 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.1_chef-provisionerless.box

3.仮想サーバ起動

vagrant init opscode-centos-7.1
vagrant up

4.vagrant sshで接続確認

vagrant ssh

5.ホスト名:webdbにてssh接続できるように設定

vagrant ssh-config --host webdb >>~/.ssh/config

6.ssh接続の確認 → OK

ssh webdb

7.プライベートネットワークの設定

Vagrantile
 config.vm.network "private_network", ip: "192.168.33.10"

8.vagrant再起動

vagrant halt
vagrant up

2.Chef Soloのインストール

1.ホストOS(Mac側)にknife soloとBerkshelfのインストール

sudo gem install knife-solo
sudo gem install berkshelf

2.knife-soloでリポジトリ作成(centosディレクトリ内にchefディレクトリを作成してそこをリポジトリとする。)

mkdir chef
cd chef
knife solo init .

3.ls でディレクトリ確認
Kobito.9QJfnE.png

4.knife solo で vagrantのゲストOS webdbにChef Soloをインストール

knife solo bootstrap webdb

5.ゲストOSにChef Soloがインストールされている事を確認

ssh webdb
chef-solo -v
exit

3.dstatをインストールするcookbookの作成とNode(ゲストOS側)への適用

1.cookbookを作成

knife cookbook create dstat -o site-cookbooks

2.site-cookbooks/dstat/recipes/default.rb を編集

site-cookbooks/dstat/recipes/default.rb
package "dstat" do
    action :install
end

3.Nodeオブジェクト設定ファイル(webdb.json)の編集

nodes/webdb.json
{
  "run_list": [
  "recipe[dstat]"
  ],
}

4.knife-solo で ChefSoloを実行し、Nodeをプロビジョニング

  knife solo cook webdb

5.sshでwebdbに接続し、dtstatを実行してインストールを確認する。

  ssh webdb 
  dstat
  exit

4.Apache,MySQLインストールするcookbookの作成とNode(ゲストOS側)への適用

1.cookbookを作成

knife cookbook create yumsetup -o site-cookbooks
knife cookbook create apache -o site-cookbooks
knife cookbook create mysql -o site-cookbooks

2.Nodeオブジェクト設定ファイル(webdb.json)の編集

nodes/webdb.json
{
  "run_list": [
  "recipe[yumsetup]",
  "recipe[dstat]",
  "recipe[apache]",
  "recipe[mysql]"
  ]
}

3.cookbookの編集

site-cookbooks/yumsetup/recipes/default.rb
yum_package "yum-fastestmirror" do
  action :install
end

execute "yum-update" do
  user "root"
  command "yum -y update"
  action :run
end
site-cookbooks/apache/recipes/default.rb
#install
package "httpd" do
    action :install
end

#chkconfig,start
service "httpd" do
    action [ :enable, :start]
end
site-cookbooks/mysql/recipes/default.rb
#install
package "mysql-server" do
    action :install
end
#chkconfig,start
service "mysqld" do
    action [ :enable, :start]
end

4.knife-solo で ChefSoloを実行し、Nodeをプロビジョニング

  knife solo cook webdb

5.エラー発生。mysqlのインストールができない
→ググったところ、centos7からyumリポジトリにmysqlを含んでいないとの事
→mysqlについては後日Berksherfで既存クックブックを使って作成する方針として一旦置いておく
→webdb.jsonから"recipe[mysql]"行を外す

nodes/webdb.json
{
  "run_list": [
  "recipe[yumsetup]",
  "recipe[dstat]",
  "recipe[apache]"
  ]
}

6.プロビジョニングを再実行→OK

  knife solo cook webdb

5.vagrant destroyして環境を破棄した後、再度chefにて構築できる事を確認

1.vagrant destroy

  vagrant destroy -f

2.vagrant up

  vagrant up

*vagrant sshで接続し、初期化された状態になっている事を確認

3.再度Chef実行

knife solo bootstrap webdb

再度プロビジョニングされ、yum update, dsata install,apache installが走る事を確認

 

11
13
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
13