Terraform completion 🌎

Atsushi Nakajo
3 min readJun 9, 2018

--

テラフォーミングを少しだけ楽にする

Photo by Nick Jeffway on Unsplash

最近のTerraformはcompletionに対応していて、サブコマンドからcompletionを設定できる。Terraformサブコマンド自体はそれほど多くないんだけど、キーボードでフルタイプするより、Tabキーで補完させるほうがはるかに効率はいい。

Shell Tab-completion

以下のコマンドを実行すると、bashの場合は $HOME/.bashrc へcompletionの設定が追記される。

terraform -install-autocomplete

For Homebrew 🍺

これでcompletion登録完了!といいたいところだが、Homebrewなどでインストールしている場合はちょっとややこしい。

Terraformはそれ自体がcompletionに対応しているようで、別途complete用のファイルを生成したりはしない。したがって、Homebrewでインストールしている場合は、以下のような設定が .bashrc へ追加される。

terraform v0.11.7 の場合

complete -C /usr/local/Cellar/terraform/0.11.7/bin/terraform terraform

これだとbrew upgrade terraformをするたびに再設定する必要が出てしまう。

要はterraformの実行ファイルを指定すれば良いので、以下のようにPATHが通っている前提でcompleteに指定しておけば、バージョンが変わってもそのまま補完が使える。

npmとかもcompletionに対応しており、npmはcompletion用のファイルを出力する形式でサポートしている。

npm completion

npmはサブコマンドも多いので、こんな感じにいれておくとラクできる。丁寧にするなら、bash_completion.d のパスチェックなどをいれておくといいかも。

--

--