お久しぶりです。
最近またAWSのサービスを一通り触ってみていて、プロビジョニングまでAWSマネージドでやってくれるOpsWorksを本番環境で使ってみたいと思い、Chefに取り組んでいます。
Chefにはレシピをローカルのvagrantで簡単に実行・テストできる test-kitchen というgemのツールがあるのですが、
これを初めて使ってみたところ非常に使い勝手がよく、当然ながらEC2でも試したいという気になりました。
今回は test-kitchen からEC2を扱える、kitchen-ec2を使ってみます。
環境
- 実行元は手元の MBP macOS High Sierra 10.13.5
- ruby 2.3.3 (rbenv) gem 2.7.2
- Chef DK 3.0.36 をインストール
- Test Kitchen version 1.21.2
- aws-cli/1.11.63 Python/3.5.2
test-kitchen は単体でgemからインストールできますが、Chef DKに付いてくるので真っ新な環境ではこっちを入れた方がよいと思います。
Chef DK
https://downloads.chef.io/chefdk
AWS CLI で認証情報を設定
kitchen-ec2では、AWSの認証情報(APIキーとトークン)は環境変数か、aws-cliの認証情報から読み込むことになります。
今回は既にインストール済みのaws-cliを使っていますが、必要に応じて先に aws configure を行ってAPIキーを登録してください。
参考
AWS CLI の設定
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-getting-started.html
インストールと準備
ChefDKで入れたtest-kitchenにはkitchen-ec2は付いてこないので、個別にgemで入れます。
1 |
$ gem install kitchen-ec2 |
適当なディレクトリでmetadata.rbを作り、それを元にinitし、
サンプルとして、適当なディレクトリを作成するレシピを用意します。