IDCF クラウドの環境を terraform で構築したい
と思っているんですが、 ちょっと悩ましい問題があるんですよね。
- Atlas + Terraform で構築したい
- GitHub で tf ファイルを管理したい
- サーバー追加時に初期セットアップもやりたい (ベースになるパッケージのインストールとかユーザー追加とか)
Atlas+Terraform+GitHub でインフラを用意することはできても、初期セットアップをどこでやるかという問題があって、
cloudstack_instance
のremote-exec
だと、まだ外部接続が不可 (ポートフォワーディングのルールはcloudstack_instance
実行後ではないとつけられないため)- それならば、と
cloudstack_port_forward
のタイミングでremote-exec
すると、ポートフォワードのルールを書き換えるたびに実行されてしまう
素直に Packer で準備したものを配布しろよっていう気もするけど、Packer もどうせなら Atlas でビルドしたい。そうすると、IDCF のテンプレートには OVA しか使えないので厳しいという新たな問題が。
cloudstack_instance
の remote-exec
実行中に次の cloudstack_port_forward
も実行してくれると嬉しいんだけど、現状だと素直に待ち続けてしまうっぽくて、繋がるのを待つ、ということもできないし、あまり綺麗な解法が思いつかないなあ。
ベースになる VM は手動で立ててしまって、そこを Bastion Host として実行するのがいいのかな〜。うーん。
Packer でビルドした後のものを ovftool で変換し続けるだけのサーバーを用意してもいいのかもしれない。