Terraform
https://gyazo.com/da0913160baa36dd8483dfa5bb25f289
インフラ管理ツール
APIを通じて外部(AWSなど)のリソースをCreate,Modify,Deleteするのが得意 Command
init
hclを解析し、依存関係を解決する。
.terraform ディレクトリに解決したproviderやmodule がダウンロードされる。
内部的にはgo getが動いているので、GitやHTTPなど複数のプロトコルを使うことができる。 Nix を使っている場合は若干patchが当てられておりprovider部分のダウンロードはNix経由になる。 plan
計画性のある人間がする行為。計画性のない人間はしない。
apply
現在の状態との差分を見て、リソースに対して変更を加える。
現在の状態はtfstateと呼ばれ terraform backendと呼ばれる概念でどこかに保存される。
また、二人が同時にapply作業をした場合、壊れうるのでapply操作に対してlockを設定することができる。