はじめに
VS Code で Ansible の Playbook を作成するときに便利な、Ansible という拡張があります。モジュール名やキーワードを自動補完してくたり、ansible-lint
と連携してくれたり、とても便利な拡張です。
この拡張を有効にするには、言語モードを Ansible として開く必要があります。デフォルトでは YAML として開くので、手動で Ansible に指定し直すか、settings.json
で files.associations
で関連付けを明示的に指定する必要があります。
この点は、最初のつまずきポイントかもしれません。そのためか、本拡張機能の バグレポートのテンプレートにも、言語選択が Ansible になっているか確認する項目が設けられています。
本拡張の v0.13.0 で、特定の条件にマッチするファイルの言語選択が Ansible になる関連付けが、デフォルトで組み込まれました。
関連付けのルール
どんなファイル名が Ansible
に関連付けられるのかは、package.json
のこのあたりを見るとわかります。
"extensions": [ ".ansible.yml", ".ansible.yaml" ], "filenamePatterns": [ "**/playbooks/*.yml", "**/playbooks/*.yaml", "**/*playbook*.yml", "**/*playbook*.yaml" ], "filenames": [ "site.yml", "site.yaml" ],
ほか、PR #600を見ると、ファイルの先頭に
# code: language=ansible
を仕込んでおくと、関連付けされることが分かります。
関連付けを試す
ユーザー の settings.json
も、ワークスペースの settings.json
も files.associations
は空の状態で試します。
いくつかのパターンのファイルを用意しました。ファイル名に Ansible のアイコンになっているのが自動で Ansible に関連付けられたファイルです。
個人的にポイントかなと思ったのは以下の点です。
- ディレクトリは
playbook
ではなく、playbooks
である必要がある - ロール内のファイルは関連付け対象外
おわりに
拡張側の設定として関連付けがされるものを試しました。
あとは、お好みに応じて settings.json
で、
{ // ...(略)... "files.associations": { "sakana.yml": "ansible", "ugui.yml": "ansible" } // ...(略)... }
のように追加設定すれば良いかなと思います。