Chefを使って雛形を作る

元サーバに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