Menu

Category

Archive

logo


Chef Solo で CentOS6.5 に Nginx のインストールと起動

2015-08-13 15:00:00 +0900
  • このエントリーをはてなブックマークに追加

Chefの勉強をしていて、CentOS 6.5 上にNginxのインストールと起動する手順メモ。

仮想サーバーの準備

まず、CentOSのイメージがない場合は追加

1
2
# Vagrantの用意
$ vagrant box add opscode-centos-6.5 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box

作業ディレクトリの作成

1
2
3
# ホストOSの適当なディレクトリに移動して
$ mkdir nginx-exmaple
$ cd nginx-exmaple

Vagrantの起動

1
2
3
# Vagrantの初期化
$ vagrant init opscode-centos-6.5
$ vagrant up

SSHで入れるように~/.ssh/confingに追記

1
2
# SSHの設定
$  vagrant ssh-config --host nginx-example >> ~/.ssh/config

ブラウザからアクセスできるようにVagrantfileに設定追加

1
2
3
4
5
# Vagrantのネットワーク設定

# Vagrantfile
config.vm.box = "opscode-centos-6.5"
config.vm.network :private_network, ip:"192.168.50.10" # ← 追記

Vagrantのリロード

1
2
3
# Vagrantfileを更新したのでリロード
$ vagrant halt
$ vagrant up

Knife SoloでChef環境の準備

knife-soloは、ほかのgemのインストール有無によりオプションが変化する。 クックブックの依存関係を管理するBerkshelfというツールも関係するのでインストールしておく。

1
2
3
# ホストOSだけでOK
$ gem install knife-solo
$ gem install berkshelf

キッチンの作成

1
2
# キッチン(Chefレポジトリの作成)
$ knife solo init .
1
2
# ゲストOSにChefの準備
$ knife solo prepare nginx-example

レシピの作成

nginx用のクックブックとレシピの作成

1
2
3
4
5
6
7
8
9
10
11
12
13
$ knife cookbook create nginx -o site-cookbooks

# site-cookbooks/nginx/recipes
include_recipe "yum-epel"

package "nginx" do
  action :install
end

service "nginx" do
  action [ :enable, :start ]
  supports :status => true, :restart => true, :reload => true
end

第三者のクックブックを使用するため、Berksfileの編集

1
2
# Berksfile
cookbook 'yum-epel' # ← 追記

Nodeオブジェクトの編集

レシピを反映させるためにNodeオブジェクトに上記のレシピを追記する

1
2
3
4
5
6
7
8
9
10
# nodes/nginx-example.json
{
  "run_list": [
    "recipe[yum-epel]", # ← 追記
    "recipe[nginx]"     # ← 追記
  ],
  "automatic": {
    "ipaddress": "nginx-example"
  }
}

Chefの実行

ノードにレシピの反映

1
$ knife solo cook nginx-example

ブラウザでVagrantfileで指定した 192.168.50.10 と入力して、下記のように Nginx の初期画面がでていれば成功。

参考

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)
入門Chef Solo - Infrastructure as Code
サーバ/インフラ徹底攻略 (WEB+DB PRESS plus)