terraform

Terraform入門 #1 Terraformはいいぞ

前書き 人が書いたterraformのメンテぐらいは見よう見まねでやってるけど、一からやれと言われたらよく分からない。そう思ってた1年前ぐらいの自分を思い出しながら気軽に入門してもらうにはどうすればいいか考えてみました。 Terraformはこわくないしほんと…

terraformのecs_registry.repository_urlにhttpsがついてるのを消す

バグだったようだ。mergeされたのでそのうち修正版がリリースされるはず。それまでは"${replace(aws_ecr_repository.test.repository_url, "https://", "")}"でしのぐ。 github.com 追記 terraform v0.8.5 で取り込まれた。

terraformで作るときに参考にするもの

社内のプロジェクトのを参考にできる恵まれた環境なのでまずはそれを見る。 他にもterraform公式リポジトリにあるexampleも参考になった。 terraform/examples at master · hashicorp/terraform · GitHub

terraformというかHCLでif文使いたい

基本的にはサポートされてない。 けど、こちらの方のやり方を参考にして、こんな風にすればできるっちゃできる。 If you set count to 1 on a resource, you get one copy of that resource and if you set count to 0, that resource is not created at all…

terraformでmoduleのsourceにinterpolationは使えない

module "hoge" { source = "${path.module}/hoge" } とやっても、 * hoge: module source cannot contain interpolations で、はじかれる

remote-execでEC2インスタンスの起動時の処理書いたけどuser-dataがあった

前にこれを書いたんだけど、こんなことする必要なかった。 mpon.hatenablog.com こっちでよかったじゃないか。AWSのこと何も分かってない証拠ですね。 docs.aws.amazon.com

terraformのディレクトリ構造とかは何を参考にすればいいか

github.com quipper.hatenablog.com Good

EC2をremote-execでprovisioningする方法

elastic ipで接続されない こんな風に素直に(自分的には)書くとElastic IPよりも先にEC2を先に作ろうとしちゃう。 で、private ipでssh接続しようとするから、そりゃあいつまでたっても接続できないし、 elastic ipも作られない。 resource "aws_eip" "dev…

terraformのmoduleで定義したresouseにアクセスするにはoutputしないとダメ

moduleの誤解 何もわかってなかった。 module使うと変数とかをscope化できるからいいなーって思ってたけど、resourceもscope化されるってことだった。 まぁ逆に言えば、module内にresource名は被らないように気をつける必要がないとも言えるけど。 terraform…

terraformのresourceのNAMEの命名規則について

NAMEにTYPEを入れるかどうか 結構プロジェクトによってバラバラで他の言語でよくあるガイドラインみたいなのがない気がする。 個人的にはresourceのTYPEで特定できるから入れない方がいいかなという気になっている。 resource "aws_vpc" "dev_vpc_01" {} res…

terraform入門時のメモ

どう入門するか 今まで人が作ったterraformの設定をいじって適用とかはしてきたけど自分で一から作ったことない。仕組みを理解するには、一から自分で作ってみるのが早そうだと思ったので自分で一から作ってみることにした。 ので、素直にこれをやることにし…