今すぐChef-Soloを試したい

今すぐChef-Soloを試したい

サーバー構成管理の自動化をするためにChef-Soloは必須。
まずは使ってみよう!ということで社内向けにまとめていた手順を記事に書いてみました。
Chef-Soloが気になっている、とりあえずChef-Soloを使ってみたい
という人たちの参考になればと思います。

目的

Chef-Soloで仮想サーバーにapache、mysqlをインストールして起動する。

前提

  • Mac
  • bundlerがインストールされていること
  • Vagrant, VirtualBoxインストールされていること
  • VagrantでCent OSなど の Box が追加されていること

手順

仮想サーバーの準備
mkdir chef
cd chef
vagrant init centos65 // box名は適宜変更
vagrant up // 仮想サーバ起動
vagrant ssh-config --host webdb >> ~/.ssh/config // これでssh webdb で仮想サーバにログイン可

Vagrantfile修正
※コメントアウトになっているので外す
config.vm.network "private_network", ip: "192.168.33.10"

仮想サーバー再起動
vagrant reload

Gemfile作成
touch Gemfile

以下を追加

source 'https://rubygems.org'

gem 'knife-solo'

gem install
bundle install --path vendor/bundler

Chefリポジトリをローカルに作成
bundle exec knife solo init .

仮想サーバーにChef-soloをインストール
bundle exec knife solo bootstrap webdb

クックブック作成
bundle exec knife cookbook create yum_update -o site-cookbooks
bundle exec knife cookbook create apache -o site-cookbooks
bundle exec knife cookbook create mysql -o site-cookbooks

yum updateのレシピ作成

site-cookbooks/yum_update/recipes/default.rb
以下を追加

execute 'yum_update' do
  user 'root'
  command 'yum -y update'
  action :run
end

Apacheのレシピ作成

site-cookbooks/apache/recipes/default.rb
以下を追加

package 'httpd' do
  action :install
end

service "httpd" do
  action [:enable, :start]
end

MySQLのレシピ作成

site-cookbooks/mysql/recipes/default.rb
以下を追加

package 'mysql-server' do
  action :install
end

service "mysqld" do
  action [:enable, :start]
end

Nodeオブジェクトを設定 ※下の補足参照

nodes/webdb.json
以下を追加


{
  "run_list": [
    "recipe[yum_update]",
    "recipe[apache]",
    "recipe[mysql]"
  ],
  "automatic": {
    "ipaddress": "webdb"
  }
}

Chef-soloを実行
bundle exec knife solo cook webdb

yum updateにかなり時間がかかりますが、
これで仮想サーバーにapache、mysqlがインストールされます。

vagrant ssh

インストールされているか確認
which httpd
which mysql

起動しているか確認
ps auxw | grep httpd
ps auxw | grep mysql

ブラウザで http://192.168.33.10/ を確認

補足

  • Nodeについて

Chefでは管理するサーバーをノードと呼びます。
webdb.jsonはこのノードにyum_update、apache、mysqlのクックブックを適用するという設定

TAG

  • このエントリーをはてなブックマークに追加
takano
takano takano

素晴らしいアプリを開発して世の中をもっと便利にしたい!