WEB+DB PRESS Vol.80 テスト駆動インフラ記事補足

4/24(木) 発売の WEB+DB PRESS Vol.80 に テスト駆動インフラ&CIの記事を書いた というエントリを先日あげましたが、記事に対する更なる補足を。

記事中に DigitalOcean に公開鍵を手動で登録する手順があるのですが、実はこの手順、 vagrant-digitalocean が自動でやってくれるようなので、手動でやらなくても良いようです。

ソースコードを読んでみたところ、vagrant-digitalocean は、ssh_keyname で指定された名前の公開鍵が DigitalOcean 上に登録されていなければ、private_key_path で設定されたファイル名に .pub をつけたファイルの内容を登録する、という動きをするようです。

本特集の手順だと、手動で DigitalOcean 上に公開鍵を登録しており、vagrant-digitalocean が登録することはないため、wercker.yml で公開鍵を環境変数から取得して id_rsa.pub に書き込む、というステップは必要ない(というか、置かない方がセキュリティ上望ましい、と @matsumotory さんから指摘がありました)はずなのですが、どうやら vagrant-digitalocean が登録する/しないに関わらず、設定内容のバリデーション時に、公開鍵ファイルの存在をチェックして、ないとエラーで処理が止まってしまうため、必ずこのステップが必要なようです。

というわけで、セキュリティ的に望ましいのは、「手動でDigitalOceanに公開鍵を登録する」かつ「wercker.yml で id_rsa.pub ファイルを生成しない」なのですが、上記のような理由により、中途半端な感じになってしまって申し訳ないです。

Wercker 上で生成した鍵を、CI 用の VM でしか使わないようにすれば、例え鍵が漏れたところで大きな問題にはならないと思いますが、@matsumotory さんから指摘がありましたので、こちらで補足させて頂くことにしました。