*** chef-solo って [#q5a483f4]
- プロビジョニングとか、[[プロビジョニングフレームワーク>http://www.slideshare.net/KiyotakaKunihira/chef-23265589]]とか言われている「サーバ実行環境構築自動化」をするツールです。~
これ導入すると「Linux触れません!構築できません!ドヤッ」と言ってる人に説明する手間も時間も短縮できて便利なんです。
** Chocolatey の導入 [#w59e95a2]
- [[Chocolatey + VirtualBox + Vagrant を導入してみる]] をすでに導入していることが前提。
** 必要なアプリをインストールします。 [#cf45c0e5]
- Ruby, RubyDevkit を導入する。
C:\> cinst ruby1.9
C:\> cinst ruby.devkit.ruby193
-- gem のアップデート
C:\> gem update
C:\> gem install knife-solo
** "Hello, Chef!" [#kd6f75c9]
- 「[[入門chef solo>http://www.amazon.co.jp/%E5%85%A5%E9%96%80Chef-Solo-Infrastructure-as-Code-ebook/dp/B00BSPH158]]」とおりにやってみるのが一番だと思うけど自分メモ
+ chef-repo 作り、hello のクックブックを作成する
C:\Users\hoge> knife solo init chef-repo
C:\Users\hoge> cd chef-repo
C:\Users\hoge\chef-repo> knife cookbook create hello -o cookbooks
** Creating cookbook hello
** Creating README for cookbook: hello
** Creating CHANGELOG for cookbook: hello
** Creating metadata for cookbook: hello
+ レシピを編集する(C:\Users\hoge\chef-repo\cookbooks\hello\recipes\default.rb)
C:\Users\hoge\chef-repo> notepad cookbooks\hello\recipes\default.rb
++ 内容を編集
#
# Cookbook Name:: hello
# Recipe:: default
#
# Copyright 2013, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
log "Hello, Chef!"
+ chef-solo レシピを記述するjsonを用意する、\chef-repo の直下でいいらしい
C:\Users\hoge\chef-repo> notepad localhost.json
++ 内容を編集
{
"run_list" : [
"recipe[hello]"
]
}
- 環境変数っぽい定義ファイルを作成しとく
C:\Users\hoge\chef-repo> notepad solo.rb
++ 内容をへんしゅう
# solo.rb
# -*- encoding: utf-8 -*-
file_cache_path File.join(Dir.pwd, 'cache')
cookbook_path File.join(Dir.pwd, 'cookbooks')
- さて実行してみる~
''* log[Hello, Chef!] action write'' が表示されていればok(WARN でてるけど気にしない)
C:\Users\hoge\chef-repo> chef-solo -c solo.rb -j localhost.json
[2014-05-18T22:20:25+09:00] WARN:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
SSL validation of HTTPS requests is disabled. HTTPS connections are still
encrypted, but chef is not able to detect forged replies or man in the middle
attacks.
To fix this issue add an entry like this to your configuration file:
```
# Verify all HTTPS connections (recommended)
ssl_verify_mode :verify_peer
# OR, Verify only connections to chef-server
verify_api_cert true
```
To check your SSL configuration, or troubleshoot errors, you can use the
`knife ssl check` command like so:
```
knife ssl check -c solo.rb
```
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Starting Chef Client, version 11.12.4
Compiling Cookbooks...
Converging 1 resources
Recipe: hello::default
* log[Hello, Chef!] action write
Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 9.636251 seconds
- [[vagrantのchef soloのprovision中に「SSL validation of HTTPS requests is disabled.」と警告が表示される>http://mistymagich.wordpress.com/2014/04/11/vagrant%E3%81%AEchef-solo%E3%81%AEprovision%E4%B8%AD%E3%81%AB%E3%80%8Cssl-validation-of-https-requests-is-disabled-%E3%80%8D%E3%81%A8%E8%AD%A6%E5%91%8A%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C/]]を参照 ※[[もとねた>http://stackoverflow.com/questions/22991561/chef-solo-ssl-warning-when-provisioning]]
-- Vagrantfile の config.vm.provision に追加
Vagrant.configure("2") do |config|
config.vm.provision "chef_solo" do |chef|
chef.custom_config_path = "Vagrantfile.chef" ← ここ
end
end
-- Vagrantfileと同じ場所に「Vagrantfile.chef」というファイルを作成
Chef::Config.ssl_verify_mode = :verify_peer