Menu

Category

Archive

logo


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

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

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

仮想サーバーの準備

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

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

作業ディレクトリの作成

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

Vagrantの起動

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

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

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

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

# Vagrantのネットワーク設定

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

Vagrantのリロード

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

Knife SoloでChef環境の準備

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

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

キッチンの作成

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

レシピの作成

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

$ 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の編集

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

Nodeオブジェクトの編集

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

# nodes/nginx-example.json
{
  "run_list": [
    "recipe[yum-epel]", # ← 追記
    "recipe[nginx]"     # ← 追記
  ],
  "automatic": {
    "ipaddress": "nginx-example"
  }
}

Chefの実行

ノードにレシピの反映

$ 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)