LoginSignup
3
5

More than 5 years have passed since last update.

Windows Server2012r2にChef-solo環境構築から実行までの備忘録

Last updated at Posted at 2016-11-16

前提

  • EC2インスタンス
    • 東京リージョン
    • タイプ:m4.xlarge (Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.08.11 (ami-0f19db6e))
  • Chef Development Kit 0.19.6
  • chef-solo 12.15.19

構築の流れ

◆Chef Development Kitをインストールする

ここから
https://downloads.chef.io/chef-dk/windows/

インストールしたChef Development Kitを開くとpowershellが起動

◆knife-soloをインストール

> gem install knife-solo 
Thanks for installing knife-solo!
.....
Successfully installed knife-solo-0.6.0
Parsing documentation for knife-solo-0.6.0
Installing ri documentation for knife-solo-0.6.0
Done installing documentation for knife-solo after 1 seconds
1 gem installed                ←完了

◆リポジトリ(キッチン)の作成

> knife solo init chef-repo
作成したリポジトリはgitで管理
(gitが使えなかったらインストールする:https://git-scm.com/download/win)

> cd chef-repo
> git init
> git add .
> git commit -m 'first commit'

デフォルトだと多分デスクトップに出来てしまうと思うので
その通りにパスを通すように気をつけるか、パスの通しやすい場所に置く。

◆cookbookの作成

helloってcookbookを作ります。

> knife cookbook create hello -o chef-repo/site-cookbooks
(ここでsite-cookbooksを作成するからパスがややこしくなるだけだが・・・)

◆default.rbってファイルを作成する

chef-repo/site-cookbooks/hello/recipes/default.rb
最後列に以下を追記する

log "Hello"

◆chef.jsonってファイルを作成する

nodesの配下に作成
中身を編集(メモ帳で)
helloというレシピを実行するための書き方(recipesじゃなくてrecipeね!)

{
"run_list": [
"recipe[hello]"
]
}

◆solo.rbってファイルを作成

chef-repo直下に
中身はhelloまでのパスを指定
※windowsの場合は、パスは(円マーク)じゃなくてLinuxみたいに/←ここ本当に注意

cookbook_path ["C:/Users/Administrator/Desktop/chef-repo/chef-repo/site-cookbooks"]

パスもあってるのになんで実行できない!?ってなったら上の※を確認する

◆実行!!

helloファイルの場所によってコマンドが変わるので注意
また、ここは/でも\でも大丈夫
現在のディレクトリはchef-repo

> chef-solo -c solo.rb -j nodes/chef.json

Starting Chef Client, version 12.15.19
resolving cookbooks for run list: ["hello"]
Synchronizing Cookbooks:
  - hello (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 1 resources
Recipe: hello::default
  * log[Hello] action write


Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 07 seconds

無事成功!
やったー!

◆実行文の意味

本来だったらこんな感じらしい
> chef-solo -c chef-repo/solo.rb -j chef-repo/nodes/chef.json

でも今回はこの文章で実行した
> chef-solo -c solo.rb -j nodes/chef.json

「solo.rb」というファイルがデスクトップのchef-repo直下にあったため、
solo.rbの前のchef-repo/が不要。
「chef.json」というファイルがデスクトップのchef-repoの下のchef-repoの下の
nodesの下にあったのでnodesの前のchef-repoが不要。らしい。
ちなみにchef-repoをデスクトップに置かなければ上段の実行コマンドで実行できた。

◆まとめ

Windows server環境でのChef-solo実行に関する記事を見ながらやったけど
なかなか上手くいかなくて今回やっと成功したので備忘録として。。。

3
5
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
3
5