このエントリーをはてなブックマークに追加

erchefを動かしてみる(2回目)

前回作ったerchefを動かしてみようともう一度頑張った記録です。

ここにapp.configを置いておきます。

app.configの注意点としては

  • logのディレクトリ指定は絶対パスではなくて相対パスで
  • rabbitmqはデフォルトでは / が id:guest pass:guest で書き込み可能なのでそうしましたが、本当は変えた方がいいですよね
  • postgresのpassやdb名は適当に変えてください
  • solrは本当は必要ないかもしれません

あとは以下のような感じです。

依存ソフトをインストール
% apt-get install postgres rabbitmq-server openjdk-7-jre solr-common solr-jetty

ログディレクトリを作成
% mkdir -p log/chef-server/erchef/

postgresのschemaを作る。(手抜きでposttgresユーザー使ってます)
% sudo -u postgres createdb opscode_chef
% sudo -u postgres psql opscode_chef -f deps/chef_db/priv/pgsql_schema.sql

chef serverの証明書を作る
% sudo escript bin/bootstrap-chef-server
client <<"admin">> created. Key written to
<<"/etc/chef-server/admin.pem">>
client <<"chef-validator">> created. Key written to
<<"/etc/chef-server/chef-validator.pem">>
client <<"chef-webui">> created. Key written to
<<"/etc/chef-server/chef-webui.pem">>
environment '_default' created

クライアントを設定
% cd
% knife configure -i
Overwrite /home/ubuntu/.chef/knife.rb? (Y/N) Y
Please enter the chef server URL: [http://hoge.example:4000]   http://localhost:4000
Please enter a clientname for the new client: [ubuntu] user1  <-- ここで違うユーザーを指定するのがポイント
Please enter the existing admin clientname: [chef-webui]
Please enter the location of the existing admin client's private key:
[/etc/chef/webui.pem] /etc/chef-server/chef-webui.pem
Please enter the validation clientname: [chef-validator]
Please enter the location of the validation key:
[/etc/chef/validation.pem] /etc/chef-server/chef-validator.pem
Please enter the path to a chef repository (or leave blank):
Creating initial API user...
Created client[user1]
Configuration file written to /home/ubuntu/.chef/knife.rb

これでおーけー。
% knife client list
admin
chef-validator
chef-webui
user1

いやぁ、長かった。これで一応clientとnodeは使えるのですが、しかし、uploadしようとするとだめですね…

% knife cookbook upload fast_start -o .
Uploading fast_start   [0.1.0]
/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:762:in `initialize':
Connection refused - connect(2) (Errno::ECONNREFUSED)
        from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:762:in
        `open'
        from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:762:in
        `block in connect'
        from /opt/chef/embedded/lib/ruby/1.9.1/timeout.rb:68:in
        `timeout'
        from /opt/chef/embedded/lib/ruby/1.9.1/timeout.rb:99:in
        `timeout'
        from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:762:in `connect'

どうも-Vでみるとhttpsでつなぎにいこうとしているみたい。なんで…