さくらVPSにchef-serverをインストールする
「さくらVPSにchef-serverとchef-clientをインストールする」でchef-serverのインストールまで
たどりつかなかったので改めて、設定をしてみました。
「Manual Chef Server Configuration」を元に、chef-serverをインストールしました。
CouchDBとRabbitMQをインストールする
yumから必要なソフトをインストールします。
sudo yum install couchdb erlang rabbitmq-server libxml2-devel zlib-devel
couchdbは、memcachedを扱っている会社と合併した気がするので、今後どうなるのかなとふと思いました。
javaは、sun jdkが既にインストールされているので、除外しています。CouchDBをスタートします。
$ sudo service couchdb start
任意の設定をしていると「http://hostname:5984」でバージョン情報がjson形式で受け取れます。
{"couchdb":"Welcome","version":"0.11.2"}
http://hostname/_utilsにアクセスすると管理画面を確認することができます。
RabbitMQを開始します。
$ sudo service rabbitmq-server start $ sudo rabbitmqctl add_vhost /chef $ sudo rabbitmqctl add_user chef testing $ sudo rabbitmqctl set_permissions -p /chef chef ".*" ".*" ".*"
gemからChef Serverをインストールする
gemを利用して、Chef Serverをインストールします。
$ sudo gem install chef-server chef-server-api chef-solr chef-server-webui merb $ sudo gem install sqlite3-ruby -v 1.2.5 $ gem list | grep chef chef (0.9.14) chef-server (0.9.14) chef-server-api (0.9.14) chef-server-webui (0.9.14) chef-solr (0.9.14)
起動のためのserver.rbを準備する。
「/etc/chef/server.rb」に「Configure Chef Server」の内容を元に準備します。
log_level :info log_location STDOUT ssl_verify_mode :verify_none chef_server_url "http://chef.example.com:4000" signing_ca_path "/var/chef/ca" couchdb_database 'chef' cookbook_path [ "/var/chef/cookbooks", "/var/chef/site-cookbooks" ] file_cache_path "/var/chef/cache" node_path "/var/chef/nodes" openid_store_path "/var/chef/openid/store" openid_cstore_path "/var/chef/openid/cstore" search_index_path "/var/chef/search_index" role_path "/var/chef/roles" validation_client_name "chef-validator" validation_key "/etc/chef/validation.pem" client_key "/etc/chef/client.pem" web_ui_client_name "chef-webui" web_ui_key "/etc/chef/webui.pem" web_ui_admin_user_name "admin" web_ui_admin_default_password "somerandompasswordhere" supportdir = "/srv/chef/support" solr_jetty_path File.join(supportdir, "solr", "jetty") solr_data_path File.join(supportdir, "solr", "data") solr_home_path File.join(supportdir, "solr", "home") solr_heap_size "256M" umask 0022 Mixlib::Log::Formatter.show_time = false
「chef_server_url」を任意のURLに変更します。「web_ui_admin_default_password」のパスワード値が少し長いので
任意のパスワード名に変更します。
Chef Indexer、Chef SOLR Server、Chef Serverを起動する。
Chef Indexer、Chef SOLR Server、Chef Serverをそれぞれ起動します。プログラムがフォアグラウンドで
起動されるので、「nohup command &」として起動しても良いと思います。
$sudo chef-solr-indexer $sudo chef-solr $sudo chef-server -N -e production $sudo chef-server-webui -p 4040 -e production
「Chef Solr」は、Javaで動いているようでした。「Apache solr」が利用されているようで、起動オプションを
いろいろ設定できるようです。
Name | Listen Port | Example Program Name in ps (Erlang programs truncated) |
---|---|---|
Chef Solr | 8983 | /usr/bin/java -Xmx250M -Xms250M -Dsolr.data.dir=/opscode/chef/features/data/solr/data -Dsolr.solr.home=/opscode/chef/features/data/solr/home -jar /opscode/chef/features/data/solr/jetty/start.jar |
起動後、管理画面を試す
無事起動ができると、Chef Serverのwebuiをブラウザから閲覧することができます。
「http://hostname:4040/」でアクセスすると、ログイン画面が表示されるので、server.rbで設定した「web_ui_admin_user_name」「web_ui_admin_default_password」を利用してログインします。
管理画面から、userを追加したり、ノードの設定、cookbookの編集?など、いろいろできるようです。
今回はまったこと
今回、いろいろ理解が乏しく、結構、はまりました。そこで、何度かサービスを立ち上げたり、OSを再起動してみたのですが
それでもエラーが消えず、元からデータを削除してみたりしました。
$rm -r /var/chef/
「/etc/chef/server.rb」によると、「file_cache_path」やら「search_index_path」やらがあったので
エラーの内容と関係あるのかわからずとりあえず消していました。
それでも、couchdbにログインできないuseridなどが消えなかったので、格納しているファイル自体消したりしました。
(couchdbの管理画面から消してみたりはしてみたのだが、エラーが改善できなかったので最終手段)
rm /var/lib/couchdb/chef.couch rm /var/log/couchdb/couch.log
chef.couchの中身は、jsonデータのようです。couch.logはログファイルですが、ついでに消しました。
次回は、なんとか「Hello World example」までたどり着いてcookbookを
利用してみたいとです。また、余力があれば「How to Proxy Chef Server with Apache」も試してみたいと思います。