IT井戸端会議

IT井戸端会議

インフラ、ネットワーク、アプリケーション開発、IT界隈の話等々を東京都千代田区界隈から発信します。

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のバージョンが表示されることを確認して下さい。