当Terraform的选项补全功能不再工作时,请查阅以下备忘录(版本0.11.6及以上)
首先
长时间没有更新过的terraform工具在我更新了Mac后,导致zsh的标签补全功能无法使用。
经过调查原因、经过和对策,我将其记录为超级备忘录。
前提就是指某个命题、观点或行为发生的基础条件。
-
- macOS
-
- zsh
-
- terraformはhomebrewでインストールしています
- terraform 0.11.1 -> 0.11.7 にバージョンアップしました
由于
-
- terraform 0.11.6から、zshの補完関数群が消されていました
-
- Remove old completion file for zsh by ryosan-470 · Pull Request #17527 · hashicorp/terraform · GitHub
brewのFormulaからも補完関数をインストールするくだりが消された
terraform 0.11.6 by commitay · Pull Request #26224 · Homebrew/homebrew-core · GitHub
背景- 背景资料
-
- 少し前からタブ補完をコマンド自体に組み込んでしまおうという方針になっているようです
- CLI autocomplete by apparentlymart · Pull Request #16176 · hashicorp/terraform · GitHub
应对措施
- 以下のコマンドを実行すると、補完に必要となる設定を~/.zshrcおよび~/.bashrcに追記してくれます
terraform -install-autocomplete
autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/local/Cellar/terraform/0.11.7/bin/terraform terraform
命令 – Terraform 是一种由 HashiCorp 开发的工具。
- が、見ての通りコマンド実体を参照しており、今後もhomebrew運用を続けるのであれば以下のようにシンボリックリンクのほうに書き換えたほうがよさそうです
complete -o nospace -C /usr/local/bin/terraform terraform
最后
由于我们在CI中使用了Terraform,所以很难进行版本升级,即使是次要版本升级也带来了很多变化。个人而言,我更喜欢原来的版本,并且根据实现来看,似乎需要为每个命令(如apply和plan)编写自动补全功能,这看起来相当困难。然而,作为多云配置管理工具的Terraform,可能是为了尽可能吸收执行环境的差异。HashiCorp的道理万岁?,以上是我的观点。