Post date: 2013/03/20 2:52:14
1。適当なディレクトリ(自分の場合、~/vagrant_anagix)に以下のような client.rb を作る
log_level :info
log_location 'alta_install.log'
node_name 'mac_xxxxxx' # macなクライアント
chef_server_url 'http://192.168.0.122:7500' # 公開サーバにかえる
validation_key '/Users/anagix/.chef/validation.pem'
client_key '/Users/anagix/.chef/client.pem' # client.pem はなければ作られる
file_backup_path '/Users/anagix/.chef/cache/backup' # これ以下は、ユーザアカウントで実行するため
file_cache_path '/Users/anagix/.chef/cache'
checksum_path '/Users/anagix/.chef/cache/checksums'
cache_options( :path => '/Users/anagix/.chef/checksums' )
ポイントは、mac_xxxxxx というclientは存在してはならない。そうすれば、client.pemはchef-clientを実行した時に作られる。
(間違って、clientができてしまったときは、そのclientとclient.pemは削除すること)
逆に、clientを先に作っておき、client.pemを上記の場所におくこともできるが、手間が増える。
2。 ノード'mac_xxxxxx"の設定は、knife node create mac_xxxxxx で、以下を作成する
{
"automatic": {
},
"chef_environment": "_default",
"default": {
},
"json_class": "Chef::Node",
"override": {
},
"normal": {
"memory_size": "512", # VMのメモリサイズ
"mac_address": "ZZZZZZZZZZZ", # 適切なmacアドレス
"alb_server_name": "asd_xxxxxx", # VMのホスト名
"chef_server": "http://192.168.0.xxx:xxxx" # 公開サーバにかえる
},
"chef_type": "node",
"run_list": [
"recipe[alb_vm]" ### Windowsの場合は、”recipe[windows]" を先にいれる
],
"name": "mac_xxxxx"
}
注意: knife node edit (既存のノード)の内容をそのまま変更して置き換えたものはエラーになりcreateに失敗する
3。~/vagrant_anagixで、chef-client -c client.rb を実行する
alb_vmで、Vagrantfileを作成し、そのまま、vagrant upする。Vagrantfileには、alb_serverのroleを実行するよう以下の
記述が作成されている
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
config.vm.customize ["modifyvm", :id,
"--memory", 512,
"--name", "asd_xxxxxx"]
config.vm.base_mac = "ZZZZZZZZZZZ"
config.vm.box = "asd_xxxxx"
# config.vm.boot_mode = :gui # uncomment if you like Virtual Box console
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
config.vm.box_url = "http://alb.anagix.com:8180/dist/anagixubuntu20130320.box"
config.vm.forward_port 80, xxxxx # use localhost:xxxx to connect to ALB server via apache
config.vm.forward_port 3000, xxxx # use localhost:xxxx to connect to ALB server directly
config.vm.forward_port 5901, xxxx # use localhost:xxxx to connect to VNC server
# Share an additional folder to the guest VM. The first argument is
# an identifier, the second is the path on the guest to mount the
# folder, and the third is the path on the host to the actual folder.
# config.vm.share_folder "v-data", "/vagrant_data", "../data"
true && config.vm.provision(:chef_client) do |chef|
chef.chef_server_url = ENV['CHEF_SERVER'] || "http://192.168.0.xxx:xxxx"
chef.validation_key_path = "/Users/anagix/.chef/validation.pem"
chef.node_name = "asd_xxxxx"
chef.add_recipe "ubuntu"
chef.add_role "alb_server"
chef.json = {
"mysql" => {
"server_root_password" => "xxxxxxxx"
}
}
end
end