HCL ( HashiCorp Configuration Language ) は他の言語の実装もあるんだな

先日初めて terraform import のために .tf を書いたが(このインキー感がすごく微妙)、当然何回かハマったのでその際に使ったものをメモとして残しておく。

まとめ

  • .tf というか HCL ( HashiCorp Configuration Language ) がカギ
    • HCL は JSON 完全互換で Terraform だけじゃなくて HashiCorp 製品を扱ううえで大事
  • HCL の仕様はオープンなので実装はいくつかある
  • repl が欲しければ gem も使える
  • もしかして独自のツールの設定文法を HCL にするのもアリかも?

使ったもの

  • terraform plan && validate

何はともあれコレ。

  • irb + rhcl

複雑な構造を持つ variable や resource を扱う場合、HCL の書き方がよく分からなくなるので、ムカついて調べたら HCL の Ruby 実装である rhcl を見つけた。Ruby の強力な repl と組み合わせればとりあえず parse できるかどうか、parse したらどうなるのかは分かる。repl に乗ってるだけで安心する人向け。

もしかして

今後何かのツールを書いたり使ったりする際に

  • JSONはコメントが書けない!
  • でも独自文法を実装するのもダルい!

みたいな場合に HCL を使ってみたりするのもいいのかもしんない。

参考

More