pockestrap

Programmer's memo

AWSのEC2にChef Server構築

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.pemchef-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を使いました。