Chefを使用してEC2インスタンスを操作するチュートリアル:その2

この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。
こんにちは!インフラエンジニアの柳瀬です!
以前、Chefのチュートリアルを書いてから早いもので一ヶ月が経過してしまいました(すみません)。
9月号のSoftware DesignでもChefが特集されておりますし、これからより注目を浴びていきそうですね!
私も頑張って「攻め」の仕事術を学んでいきたいと思います。 knife ec2を使用してEC2インスタンスを起動と終了は以下の流れで行います。

  1. ローカルPCにOpscode社から提供されているcookbookのダウンロード
  2. Chef-Serverにcookbookをアップロードする
  3. EC2に接続するための設定を追加
  4. knife ec2による起動、動作確認
  5. apache2のrecipeを適用、動作確認
  6. EC2インスタンスのterminate、nodeリストからの削除
それではさっそく進めていきたいと思います。

1)ローカルPCにOpscode社から提供されているcookbookのダウンロード

こちらの作業はとても簡単です。
Opscode社から提供されているcookbookは以下のコマンドでダウンロード出来ます。

2)Chef-Serverにcookbookをアップロードする

こちらの作業も以下のコマンドを実行するだけですので難しくはありません。

3)EC2に接続するための設定を追加

こちらもそんなに難しいものではありません。
.chef/knife.rbにアクセスキーID、シークレットアクセスキーの情報を追記します。

4)knife ec2による起動、動作確認

それではいよいよEC2インスタンスの起動です。
ちなみにknifeコマンドは"knife --help"と実行する事でhelpを確認が出来ますが、EC2操作に関するhelpは以下のように実行してください。 さらに出力されたサブコマンドのhelpを参照する場合は以下のように実行します 現在起動しているEC2インスタンスは以下のようなコマンドを実行する事で一覧表示が出来ます knifeコマンドでEC2インスタンスを起動するには以下の情報を指定し、これに加えて実際は鍵を登録するユーザ名を指定します。
AWSの用語knife ec2コマンドのオプション名
Regionregion
Availability Zoneavailability-zone
AMI IDimage
Instance Typeflavor
Security Groupgroups
Key Pairsssh-key
それでは以下のように実行してインスタンスを起動してみます。
注意すべき点は事前にローカルのSSH公開鍵をAWSに登録した上でオプションに指定する事と、セキュリティグループもSSHアクセス可能な設定にしておく事です。 以下のコマンドでnodeとして追加されている事が確認出来ます。
実際にEC2インスタンスに接続すればchef-clientのプロセスも確認出きるはずです。

5)apache2のrecipeの適用、動作確認

せっかくなので先ほど起動したインスタンスにapache2のrecipeを適用してみましょう。
まずは先ほど起動したnodeの詳細を見るとRecipeにchef-clietnが適用されている事が分かります。 それでは先ほどと同様にcookbookをダウンロードしてサーバにアップしましょう。 次に以下のコマンドでnodeにレシピを追加します。 先ほどと同じコマンドを実行するとapache2のrecipeが適用されています。 chef-clientはデフォルトで30分間隔でchef-serverにアクセスしてrecipeの適用を行いますが、待てない方は起動したインスタンスにログインして以下のコマンドを実行してください。

6)EC2インスタンスのterminate、nodeリストからの削除

それでは動作確認が終わったのでインスタンスをterminateします。 忘れずにnodeリストからも削除します。 これで一通りの動作確認が出来ました。
しかし、これはあくまで基本的な動作確認です、実際は環境に合わせてrecipeを編集して一度に適用するなどの運用で効果を発揮します。
自分で一からrecipeの作成は大変でしょうから、Opscode社から提供されているものに修正を加えながらchefに慣れていくのも良さそうです。

AWS運用自動化サービス「Cloud Automator」無料トライアルはこちらから

CATEGORY :
TAG :

COMMENT ON FACEBOOK