CircleCIから特定AMIでインスタンスを立ててtest-kitchenする

CircleCI便利なんだけど、秘伝のタレな環境をテストするのにちょっとうまくいかない。
具体的には、特定のAMIがあって、そのAMIからLaunchしないと動かない系。

そんな環境捨てて新しくコーダブルな環境にしたり、
Dockerイメージ化して上げちゃうのが良いんだろうけど、
まぁそこはそれ、大人の事情ってやつで。

まえおき

最初は、先人に倣って VagrantAWS driver 使おうと思ったんですけど、
テスト集約ツールとして使っている Kitchen-CI とイヤンな相性だったので、
kitchen-ec2 を使うことに。

あーきてくちゃ

ざっくりとこんなかんじ。正確さはあんまり無い。 f:id:d10gkotatsu:20151201161039p:plain

そーすこーど

github.com

やってること

そんなに難しくないので、コード読めば分かると思う。
ポイントとしては↓のようなかんじ。
- リポジトリには、CircleCIセットアップ用のコードと、AWSインスタンス作成用のコードが入ってる。
- AWS触るための認証情報は、CircleCIのWebコンソールから環境変数として登録する。
- kitchen testコマンドで内部的に呼んでる kitchen createコマンドでAWSインスタンスができる。

おもうところ

私の読解力の問題でドキュメントが読み解けず、ハマることもしばしば。
ssh_keyaws_ssh_key_id の違いとかで1日潰れたり。

とはいえ、最終的には問題なく動いて満足したぜ!(サティスファクション編・完)