読者です 読者をやめる 読者になる 読者になる

memori

ちょっとだけ技術的なことをメモ〜

IDCF クラウドの環境を terraform で構築したい

と思っているんですが、 ちょっと悩ましい問題があるんですよね。

  • Atlas + Terraform で構築したい
  • GitHub で tf ファイルを管理したい
  • サーバー追加時に初期セットアップもやりたい (ベースになるパッケージのインストールとかユーザー追加とか)

Atlas+Terraform+GitHub でインフラを用意することはできても、初期セットアップをどこでやるかという問題があって、

  • cloudstack_instanceremote-exec だと、まだ外部接続が不可 (ポートフォワーディングのルールは cloudstack_instance 実行後ではないとつけられないため)
  • それならば、と cloudstack_port_forward のタイミングで remote-exec すると、ポートフォワードのルールを書き換えるたびに実行されてしまう

素直に Packer で準備したものを配布しろよっていう気もするけど、Packer もどうせなら Atlas でビルドしたい。そうすると、IDCF のテンプレートには OVA しか使えないので厳しいという新たな問題が。

cloudstack_instanceremote-exec 実行中に次の cloudstack_port_forward も実行してくれると嬉しいんだけど、現状だと素直に待ち続けてしまうっぽくて、繋がるのを待つ、ということもできないし、あまり綺麗な解法が思いつかないなあ。

ベースになる VM は手動で立ててしまって、そこを Bastion Host として実行するのがいいのかな〜。うーん。


Packer でビルドした後のものを ovftool で変換し続けるだけのサーバーを用意してもいいのかもしれない。