MBA で環境構築できないので某仮想リソースにて云々してみます。とりあえず /usr/local に rbenv が入ってるソレにログイン。
とりあえず bundler を入れておく。
$ sudo gem i bundler
で、ディレクトリを掘ってその中で bundle init しておきます。
$ mkdir devops
$ cd dev ops
$ bundle init
ぐぬ。bundle が無いてorz
ええと、/usr/local/rbenv/versions/1.9.3-p448/bin には bundle があるけど、/usr/local/rbenv/shims には bundle が無い。
あ、rbenv rehash するのか。
$ sudo rbenv rehash
$ which bundle
/usr/local/rbenv/shims/bundle
昨日こんなツッコミも入らなかったとゆーのは、わしがナチュラル、ってことにしときます。
Gemfile はとりあえず以下で。
gem 'chef'
gem 'knife-solo', :github => 'matschaffer/knife-solo'
gem 'berkshelf'
で、昨日からアレな bundle install をしておいてここからスタートですね。
外部に接続できぬ
とりあえず買物に行ってきます。って中同士のやりとりだと private な IP が使えるのか。
続き
例えば ~/.ssh/config を以下のようにしておいて
Host melody
HostName 10.1.3.5
User devops
identityfile ~/.ssh/devopsOkinawa.key
ええと ssh devops@10.1.3.5 で接続できることを確認しておいて、とりあえず knife solo init します。
$ knife solo init chef-repo
間違えた
bundle install は以下でしたorz そして knife solo も以下になるのかどうか
$ bundle exec knife solo init chef-repo
WARNING: No knife configuration file found
Creating kitchen...
Creating knife.rb in kitchen...
Creating cupboards...
Setting up Berkshelf...
確かに bundle exec なソレが微妙ですがとりあえず今は我慢。できたディレクトリ (chef-repo) に cd して以下。
$ cd chef-repo
$ bundle exec knife solo prepare melody
Bootstrapping Chef...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 6790 100 6790 0 0 9318 0 --:--:-- --:--:-- --:--:-- 11686
Downloading Chef 11.8.0 for ubuntu...
Installing Chef 11.8.0
Selecting previously unselected package chef.
(Reading database ... 61028 files and directories currently installed.)
Unpacking chef (from .../chef_11.8.0_amd64.deb) ...
Setting up chef (11.8.0-1.ubuntu.12.04) ...
Thank you for installing Chef!
Generating node config 'nodes/melody.json'...
この状態を初期状態ってことでリポジトリに入れておく方向。
その前に
rake clean できたりとか .gitignore とかをアレなのか。
プロトタイプ
以下に push してます。もう少し動作確認してみる方向にて。
追記
接続先のホスト名を melody 固定にしちゃってますが nodes/ 配下の .json なファイルの名前が接続するホストの識別子になってれば良いのかな。
chef-repo ディレクトリ配下のファイルが以下な模様。
./nodes
./nodes/.gitkeep
./nodes/melody.json
./Berksfile
./.chef
./.chef/knife.rb
./data_bags
./data_bags/.gitkeep
./.gitignore
./environments
./environments/.gitkeep
./roles
./roles/.gitkeep
./site-cookbooks
./site-cookbooks/.gitkeep
./cookbooks
./cookbooks/.gitkeep
さらに追記
これ、駄目だな。knife solo prepare 直前がプロトタイプになるはず。とりあえず chef-repo なディレクトリを削除してやりなおしてみます。
$ rm -rf .git
$ rm -rf chef-repo
で、以下な状態を push なのか。リポジトリは作り直し。
$ bundle exec knife solo init chef-repo
この状態を clone したら
- ディレクトリに入って
- bundle exec knife solo prepare ホスト名
上記でリモホに chef 関連のパケジが導入されるはず。リポジトリはリセットの方向で。