/var/log/messages

debugging with sixth sense

Chef-solo な環境構築メモ

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 関連のパケジが導入されるはず。リポジトリはリセットの方向で。

Comments