LoginSignup
21
19

More than 5 years have passed since last update.

chef-dkを使ってchefを一瞬で使いはじめる

Posted at

chef-dkとは

opscodeでrpmでパッケージングしてくれている
chefを利用するにあたって使うと想定されているツール群です。
ちょっと試したい or 長期で運用を想定していない(とりあえず使えれば良い)
程度であれば、chef-dkからのインストールがお手軽で簡単です。

構築環境

今回インストールする構成は以下

chefをインストールするサーバ

  • CentOS6系(vagrant VM)

chefを使って自動構築するサーバ

  • CentOS6系(vagrant VM)

Hostサーバでchefのインストール

ダウンロードサイトがあるので下記URLからダウンロードしてきます。

Chef-dkダウンロードサイト
http://www.getchef.com/downloads/chef-dk/mac/


$ wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chefdk-0.1.0-1.el6.x86_64.rpm

$ sudo rpm -ivh https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chefdk-0.1.0-1.el6.x86_64.rpm

これでchefの周辺ツールのインストールは完了しました。
リモートサーバでの自動構築をするにはもう一つ
knife-soloというパッケージが足りないのでインストールします。

$ chef gem install knife-solo

これで準備は全て整いました。
環境設定をリロードするため、knife-soloをインストールした後は
一度サーバからログアウトを行う事をお勧めします。

レシピを書く

ここでは試験的に、対象にapacheをインストールして起動するレシピを書きましょう


#レポジトリ初期化
$ knife solo init ./chef-repo

$ cd chef-repo

$ knife cookbook create apache -o site-cookbooks

対象のファイルを以下のように記述します

site-cookbooks/apache/recipes/default.rb

package "httpd" do
  action :install
end

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

これで準備は完了です。

対象ホストと利用レシピを設定する

nodeファイルを新規作成し、以下のように記述します。
ここでいう192.168.33.11はapacheをインストールした対象のホストIPになります。
名前解決出来るようならドメインでも構いません。


$ cat < END >> nodes/192.168.33.11.json
{
  "run_list":[
    "recipe[apache]"
  ]
}
END

knife-soloを実行する

knife-soloとはリモートでchef-soloを実行してくれるソフトになります。
何をいってるか分からないという人はググって下さい。
まずは対象のサーバへchefのレシピが適用出来るように初期設定を行います。


$ knife solo bootstrap 192.168.33.11 --bootstrap-version 11.12.0

オプションとしてbootstrapのバージョンを指定してやります。
rpmになってるバージョンがちょっとおかしくなっており
何もオプションを指定せずに実行すると失敗してしまいます。

注意

この時対象のサーバへの前提条件として

  • hostからノーパスワードでログインが実行出来る。
  • ノーパスワードでログイン後、ノーパスワードでsudoが行える。

上記2つの条件を満たしているとスムーズにいくので設定することを推奨します。
また上記の流れでbootstrapをすると
設定したレシピまで実行されるので実際には対象にapacheが入っているかと思います。
レシピのみ実行する場合は下記コマンドを実行します。


$ knife solo cook 192.168.33.11

対象のサーバで確認してみます

[vagrant@localhost ~]$
[vagrant@localhost ~]$ ps aux |grep http
root      3795  0.0  0.8 175708  3764 ?        Ss   11:57   0:00 /usr/sbin/httpd
apache    3797  0.0  0.5 175708  2400 ?        S    11:57   0:00 /usr/sbin/httpd
apache    3798  0.0  0.5 175708  2400 ?        S    11:57   0:00 /usr/sbin/httpd
apache    3799  0.0  0.5 175708  2400 ?        S    11:57   0:00 /usr/sbin/httpd
apache    3800  0.0  0.5 175708  2400 ?        S    11:57   0:00 /usr/sbin/httpd
apache    3801  0.0  0.5 175708  2400 ?        S    11:57   0:00 /usr/sbin/httpd
apache    3802  0.0  0.5 175708  2400 ?        S    11:57   0:00 /usr/sbin/httpd
apache    3803  0.0  0.5 175708  2400 ?        S    11:57   0:00 /usr/sbin/httpd
apache    3804  0.0  0.5 175708  2400 ?        S    11:57   0:00 /usr/sbin/httpd
vagrant   4185  0.0  0.2 107460   940 pts/0    S+   12:31   0:00 grep http

[vagrant@localhost ~]$ chkconfig --list |grep 3:on |grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[vagrant@localhost ~]$

お疲れ様でした。

21
19
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
21
19