CircleCIから特定AMIでインスタンスを立ててtest-kitchenする
CircleCI便利なんだけど、秘伝のタレな環境をテストするのにちょっとうまくいかない。
具体的には、特定のAMIがあって、そのAMIからLaunchしないと動かない系。
そんな環境捨てて新しくコーダブルな環境にしたり、
Dockerイメージ化して上げちゃうのが良いんだろうけど、
まぁそこはそれ、大人の事情ってやつで。
まえおき
最初は、先人に倣って Vagrant の AWS driver 使おうと思ったんですけど、
テスト集約ツールとして使っている Kitchen-CI とイヤンな相性だったので、
kitchen-ec2
を使うことに。
- Vagrant のドライバーでAWSにインスタンスが立てられる。科学の力ってすげー。
naoya/circleci-serverspec · GitHub - Kitchen-CI のドライバーで(以下略)
test-kitchen/kitchen-ec2 · GitHub
あーきてくちゃ
ざっくりとこんなかんじ。正確さはあんまり無い。
そーすこーど
やってること
そんなに難しくないので、コード読めば分かると思う。
ポイントとしては↓のようなかんじ。
- リポジトリには、CircleCIセットアップ用のコードと、AWSインスタンス作成用のコードが入ってる。
- AWS触るための認証情報は、CircleCIのWebコンソールから環境変数として登録する。
- kitchen test
コマンドで内部的に呼んでる kitchen create
コマンドでAWSインスタンスができる。
おもうところ
私の読解力の問題でドキュメントが読み解けず、ハマることもしばしば。
ssh_key
と aws_ssh_key_id
の違いとかで1日潰れたり。
とはいえ、最終的には問題なく動いて満足したぜ!(サティスファクション編・完)