今回はChefを使ってApacheをインストールしてみます。
chefはシステム構築を自動化するもので、クライアント・サーバ形式のChef serverとスタンドアロン形式のChef Soloがあり、
ある程度小規模であればChef Soloを進める情報も多かったのですが、
Chefの公式でChef Soloはオワコンなので、Chef Client Local Modeを使ってねということなので、
Chef Zeroを勉強していこうと思います。
それぞれの違いについては下記のサイトが分かりやすかったので
ここでは省略。
http://www.atmarkit.co.jp/ait/articles/1502/10/news050.html
インストールするもの
- ChefDk
- chef-zero
- knife-zero
ChefDkのインストール
curl -L https://www.opscode.com/chef/install.sh | sudo bash -s -- -P chefdk
オプションで chefdk を付けないとchefコマンドが使えません
chef-zero knife-zeroのインストール
chef gem install knife-zero chef-zero json --no-ri --no-rdoc
knifeの初期設定
knife configure
対話式で設定を聞かれますが、デフォルト設定のままで問題なので
全てEnterで進めてください。
完了すると~/.chef/knife.rbに設定ファイルが保存されます。
今回はChefのローカルモードを利用するので、
生成された ~/.chef/knife.rb の一番最初に下記の1行を追加してください。
local_mode true
リポジトリの作成
Node構成を管理するためのchefリポジトリを作成します。
chef generate repo chef-repo
chef-repo はリポジトリ名なので好きな名前を設定してください。
cookbookの作成
下記のコマンドで雛形が出来ます。
knife cookbook create httpd
自作したcookbookはcookbooksではなく、
site-cookbooksに配置することを推奨していることが多かったのですが、
現在はChef-Zeroの仕様でsite-cookbooks配下は参照しないようです。
Recipeの作成
vim cookbooks/httpd/recipes/default.rb
今回はサンプルでhttpdをインストールさせます。
# # Cookbook Name:: httpd # Recipe:: default # # Copyright 2015, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # package "httpd" do action :install end
対象ノードの設定
ChefではChefで管理するPCのことをノードと呼んでいます。 knife zero bootstrap [対象PCのIP] –ssh-password [パスワード] –sudo -N 任意のノード名
knife zero bootstrap 192.168.10.103 --ssh-password vagrant --sudo -N local-node
ノードが設定されているか下記のコマンドで確認できます。
knife node list
nodeに実行するCookbookを追加します。
knife node run_list add local-node httpd
レシピの適用
ノードに対してレシピを適用します。
knife zero chef_client name:[ノードのhostname] --attribute ipaddress --ssh-password [パスワード] ?sudo
knife zero converge name:local-node --attribute ipaddress --ssh-password vagrant ?sudo
インストールの確認
httpdが起動できればOK!!
sudo service httpd start
次はもう少し複雑なものをやってみます。
Post Footer automatically generated by Add Post Footer Plugin for wordpress.
コメントを残す