AmazonLinuxでChefSoloを試す(3) リモートサーバへのChefのインストール
3回目になります。
今回は、Chef-Soloを便利にするツール knife-soloを使って
リモートーサーバに対しRecipeを実行してみたいと思います。
作業対象ホスト
今回は2台のEC2インスタンスを使用します。
ホスト名は以下とします。
(1)knife(AmazonLinux) ※第1回/第2回にて使用のインスタンス。以下、knifeと表記します
(2)soloclient(AmazonLinux) ※今回より新しく構築のサーバ。以下、soloclientと表記します
事前の環境設定
事前にknifeからsoloclientに
ssh接続できるように設定しておいて下さい。
手順の概要は以下となります。
1.EC2インスタンス[knife]の/home/ec2-user/.ssh/配下に
[soloclient]用の鍵を配置する。(Permissionは600とする)
2./etc/ssh/ssh_config の末尾に以下レコードを追記
IdentityFile [手順1で配置した鍵の絶対パス]
3.knifeよりsoliclientにssh接続できることを確認
knife-soloのインストール
まずは、knifeにknife-soloをインストールします。
sudo /opt/chef/embedded/bin/gem install knife-solo --no-ri --no-rdoc
インストール完了後、knife soloコマンドが実行可能である事を確認します。
$ knife solo
FATAL: Cannot find sub command for: "solo"
Available solo subcommands: (for details, knife SUB-COMMAND --help)
** SOLO COMMANDS **
knife solo bootstrap [USER@]HOSTNAME [JSON] (options)
knife solo clean [USER@]HOSTNAME
knife online casino nederland solo cook [USER@]HOSTNAME [JSON] (options)
knife solo init DIRECTORY
knife solo prepare [USER@]HOSTNAME [JSON] (options)
今までは、/var/chef配下に必要なcookbookを 作成してきましたが、これらについては一度全て削除し /tmp配下に必要なファイルを再度作成していきます。
$ sudo rm -fr /var/chef
$ mkdir /tmp/chef
$ cd /tmp/chef
その後、knife solo initコマンドで /var/chef配下に必要なファイル群を再度生成します。
$ knife solo init .
WARNING: No knife configuration file found
Creating kitchen...
Creating knife.rb in kitchen...
Creating cupboards...
soro.rbについても再度作成します。
vi /tmp/chef/soro.rb
# solo.rb
file_cache_path "/tmp/chef"
cookbook_path ["/tmp/chef/cookbooks"]
リモートサーバへのChefのインストール
次に、knife solo bootstrapコマンドにて soloclientにChefSoloをインストールします。
$ knife solo bootstrap <soloclientのIPアドレス>
インストールが完了したら、 /tmp/chef/nodes配下にjsonファイルが作成されたことを確認して下さい。 このファイルは次回使用します。
$ ls -l /tmp/chef/nodes
total 4
-rw-rw-r-- 1 ec2-user ec2-user 79 Jul 4 08:42 ***.***.***.***.json
最後に、soloclientにて、chef-solo -vコマンドを実行し
chefのバージョンが表示されることを確認して下さい。