windows+CygwinでChef - 2.基本的な操作とapacheのインストール
前回は、Chefの概要をつかむって事と、
chefのインストール、knife-soloのインストールを行い、hello worldを表示するって所まで行いました。
今回はちゃんとレシピを作って、実際にインストールしていきたいと思います。
Windos+Chef入門目次を作成しました!
windows+CygwinでChef - 目次 - Program LOG
参考にしたサイト
#07 packageでvimを導入しよう | Chef入門 - プログラミングならドットインストール
Resources and Providers Reference — Chef Single-page Topics
[Chef] レシピを書く上で一番重要な「リソース」について #OpsChef_ja - NAVER まとめ
Cookbook作成のおさらい
さて、前回はhello worldの表示をするだけのcookbookを作成して、レシピも書きました。
今回はより実践的な環境を用意していきたいと思います。
その為、再度新しく、cookbookを作成したいと思います。
前回作成した「lessons」Chefレポジトリのディレクトリに移動して、以下のように実行すれば
cookbookは作成されます。
$ knife cookbook create develop -o site-cookbooks/
それでは、作成されたdevelopクックブックにサーバーの設定を書いていきたいと思います。
リソースについて
Chefの基本的な記述方法で、リソースという概念があります。
Chefでは、ITインフラストラクチャー環境の各パーツがどんな風に作られてほしいのかを"レシピ(recipe)"と呼ばれるRubyのコードで定義します。各パーツのあるべき状態は、後述の"リソース(Resources)"を定義するという形でレシピに書いていきます。
基本的な構文として、リソースは、「実行条件」、「アクション」、「通知」、「オプション(属性)」の4つを使って定義します
{リソースタイプ} "{リソース名}" do # 実行条件 {only_if | not_if} { {条件文} } # 通知 {notifies|subscribes} {アクション}, "{リソースタイプ[リソース名]}",{:immediately|:delayed} : # オプション(属性) {オプション名} {オプション値} : # アクション action {アクション} end
様々なリソースタイプがあります。興味のある方は下記URLを参照してみるといいかと思います!
Resources and Providers Reference — Chef Single-page Topics
また、リソースについて、Naverまとめにものすごい分かりやすいのがありましたので、
リソースについてもっと知りたい場合は、下記URLを参照してみてください。
[Chef] レシピを書く上で一番重要な「リソース」について #OpsChef_ja - NAVER まとめ
Vimをインストールしてみる。
アプリケーションをインストールするには、「package」リソースを使用します。
早速「develop/recipes/default.rb」に書いていきます。
package "vim-enhanced" do action :install end
次に、「Node」の設定も必要です。
前回の記事で作成した仮想サーバーを使用しますので、
「nodes/chefssh.json」を修正していきます。
{ "run_list":[ "recipe[develop]" ] }
そして、Cygwinでcookコマンドを実行すれば実行されます。
$ knife solo cook chefssh Running Chef on chefssh... Checking Chef version... ・・・中略・・・ Recipe: develop::default * package[vim-enhanced] action install - install version 7.2.411-1.8.el6 of package vim-enhanced Running handlers: Running handlers complete Chef Client finished, 1/1 resources updated in 39.694298546 seconds
インストールが完了しました。
仮想サーバーで確認し、Vimコマンドが実行できるようになっていました。
インストールが完了した後に、再度cookすると以下のようになります。
$ knife solo cook chefssh Running Chef on chefssh... Checking Chef version... ・・・中略・・・ Recipe: develop::default * package[vim-enhanced] action install (up to date)
既にインストール済みだよって教えてくれ、スキップしてくれます。
apacheのインストールと起動、常時起動
次に、WEBサーバーをインストールして、apacheを起動し、常時起動する設定をしていきたいと思います。
また、iptablesのstopや常時起動を切っておきたいと思います。
まず、レシピから書いていきます。
#iptablesの設定 service "iptables" do action [:stop, :disable] end #apacheのインストール package "httpd" do action :install end #apacheのservice設定 service "httpd" do supports :status => true, :restart => true action [ :enable, :restart ] end
新しくserviceというリソースを使用しています。
これは、「service httpd restart」と行いたい場合に使用します。
また、配列にして「:enable」や「:disable」と書いてありますが、これは常時起動用のオプションなので、
「chkconfig httpd on(off)」も一緒にやってくれます。
先ほど、Nodeの設定はしてありますので、今回は省略して、cookコマンドを実行します。
$ knife solo cook chefssh Running Chef on chefssh... ・・・・中略・・・・ * package[vim-enhanced] action install (up to date) * service[iptables] action stop - stop service service[iptables] * service[iptables] action disable - disable service service[iptables] * package[httpd] action install - install version 2.2.15-30.el6.centos of package httpd * service[httpd] action enable - enable service service[httpd] * service[httpd] action restart - restart service service[httpd] Running handlers: Running handlers complete Chef Client finished, 4/6 resources updated in 24.232949899 seconds
インストールとサービスの設定が完了しました。
仮想サーバーへログインして、状態を確認しておきます。
[vagrant@localhost ~]$ sudo service iptables status iptables: Firewall is not running. [vagrant@localhost ~]$ chkconfig --list | grep "iptables" iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off [vagrant@localhost ~]$ sudo service httpd status httpd (pid 4620) is running... [vagrant@localhost ~]$ chkconfig --list | grep "httpd" httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
正常に起動が出来ている事が確認出来ました。
このように、リソースを使用して、どんどんレシピを作成していく事になります。
次回は、ちょっと前に書いたLAMP環境最短構築と同じ状況にしたいと思うので、
phpのインストール。php.iniの設定、mysqlのインストール、my.cnfの設定などを
書いていこうと思います。
使用環境
- ホストOS: Windows7 x64
- Cygwin : Cygwin64
- VirtualBox: 4.3.10
- Vagrant: 1.5.2
- Chef : 11.12.4
- knife-solo:0.4.1