AWSのec2にchef serverを建てたのでそのメモ。ついでにワークステーションのセットアップも。
chef server を建てるのめんどくさすぎ
環境
chef server
work station
install chef server
スワップ領域を作成
t1.micro インスタンスだとメモリが圧倒的に足りなすぎるのでスワップ領域を作成します。
$ sudo dd if=/dev/zero of=/swap bs=1M count=512 $ sudo mkswap -f /swap $ sudo swapon /swap $ echo '/swapfile none swap defaults 0 0' >> /etc/fstab
chef server のインストール
$ wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-server-11.0.11-1.el6.x86_64.rpm $ sudo rpm -ivh chef-server-11.0.11-1.el6.x86_64.rpm $ sudo hostname ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com $ sudo vim /etc/sysconfig/network $ sudo chef-server-ctl reconfigure $ sudo chef-server-ctl test $ sudo chef-server-ctl start $ sudo service iptables stop $ sudo service ip6tables stop $ sudo chkconfig iptables off $ sudo chkconfig ip6tables off
hostname
と /etc/sysconfig/network
にPublic DNSを設定します。
iptables が有効になっていなくてうまく接続できなくて焦りました。
chef work station
copy pem files
chef server の /etc/chef-server/admin.pem
と chef-validator.pem
を work station の ~/.chef/
にコピー
$ gem install chef
setting knife
$ knife configure --initial WARNING: No knife configuration file found Where should I put the config file? [/home/pocke/.chef/knife.rb] <ENTER> Please enter the chef server URL: [https://x240:443] https://ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com Please enter a name for the new user: [pocke] <ENTER> Please enter the existing admin name: [admin] <ENTER> Please enter the location of the existing admin's private key: [/etc/chef-server/admin.pem] /home/pocke/.chef/admin.pem Please enter the validation clientname: [chef-validator] <ENTER> Please enter the location of the validation key: [/etc/chef-server/chef-validator.pem] /home/pocke/.chef/chef-validator.pem Please enter the path to a chef repository (or leave blank): <ETNER> Creating initial API user... Please enter a password for the new user: <パスワードを入力> <ENTER> Created user[pocke] Configuration file written to /home/pocke/.chef/knife.rb
質問にはてきとーに答えてください。
knife client list
とか打ってクライアントのリストが表示されれば chef server に接続できている証拠です。
その他
stable な chef だとAmazon Linuxでうまく動かないので(chef 11.1で改善されるらしい?)RHELを使いました。