元サーバにChefで必要な物を入れる
yum install ruby22 ruby22-devel make gcc autoconf automake openssl-devel alternatives --set ruby /usr/bin/ruby2.2 gem install --no-ri --no-rdoc chef knife-solo cd /usr/local /usr/local/bin/knife solo init chef-repo echo "ssl_verify_mode :verify_peer" >> /usr/local/chef-repo/.chef/knife.rb
PrivateIPの取得
1,ローカルから空サーバーにログイン
ssh -i ci-training.pem ec2-user@{空サーバーのPublicIP}
2,PrivateIPの表示
curl http://169.254.169.254/latest/meta-data/local-ipv4
元サーバーと空サーバーが通信出来るかどうかを確かめる
ci-training.pemを元サーバに置くんですが、
$cat ci-training.pem $vim ci-training.pem
ここでコピペでci-training.pemを作ってあげて
scp -i ci-training.pem ci-training.pem username@{元サーバーのpublicIP}:
とします。
元サーバーからSSHでからサーバーに通信する。
ssh -i ci-training.pem ec2-user@{空サーバーのPrivateIP}
ここで、 [ec2-user@ip-空サーバーのPrivateIP ~]$ と変化します。
元サーバーでChef実行の準備と実行
空サーバーにログインしたまま
$ sudo su - # mkdir chef --ディレクトリの作成-- # cd chef/ # vim ci-training.pem --コピペでci-training.pem を作成-- # chmod 600 ci-training.pem # pwd /root/chef # ls -l /root/chef/ci-training.pem -rw------- 1 root root 1671 Feb 17 07:47 /root/chef/ci-training.pem # cd /usr/local/chef-repo/ # knife solo cook ec2-user@{空サーバーのPublicIP} nodes/wordpress.json -i /root/chef/ci-training.pem # vim nodes/ .gitkeep wordpress.json # knife solo cook ec2-user@172.30.2.175 nodes/wordpress.json -i /root/chef/ci-training.pem # knife cookbook create wordpress -o site-cookbooks # ls -l site-cookbooks/ total 4 drwxr-xr-x 10 root root 4096 Feb 17 07:49 wordpress # ls -l site-cookbooks/wordpress/ attributes/ definitions/ libraries/ providers/ recipes/ templates/ CHANGELOG.md files/ metadata.rb README.md resources/ # ls -l site-cookbooks/wordpress/recipes/ total 4 -rw-r--r-- 1 root root 135 Feb 17 07:49 default.rb # knife solo cook ec2-user@172.30.2.175 nodes/wordpress.json -i /root/chef/ci-training.pem # vim site-cookbooks/wordpress/recipes/default.rb # knife solo cook ec2-user@172.30.2.175 nodes/wordpress.json -i /root/chef/ci-traning.pem