*** 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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS