VS Code Ansible 扩展可以识别我的剧本,并且在着色、悬停帮助等方面做得非常好。但是它对我的角色却没有做同样的事情。我的目录结构:
my_project/
roles/
scenarios/
<playbook yml's>
请注意,我无法更改这一点,因为我正在开发一个大型项目,其中很多人和代码都期望这种结构。剧本运行良好。如果这很重要的话,我使用的是 macOS。
我添加了一个
ansible.cfg
文件(在 my_project
的父级中),其中包含:
[defaults]
roles_path = $HOME/path_to_project/my_project/roles
我知道 VS Code 正在查找该文件,因为它抱怨其中存在错误。添加该文件确实导致
ansible-lint
针对角色运行,但仍然没有着色、悬停帮助等。
我查看了所有 Ansible 扩展设置,但没有看到任何明显的东西。任何建议非常感谢!
对我来说,要让
ansible-lint
在 vscode 内的类似场景中工作,请将 ansible.cfg 放在在 vscode 中作为文件夹打开的目录的根目录中。
我的布局实际上如下所示,并且从 /workspace/ansible.cfg 到 /workspace/ansible/ansible.cfg 的符号链接有效。
workspace/
ansible/
playbooks/
roles/
ansible.cfg
ansible.cfg -> ansible/ansible.cfg
在我的例子中,我连接到一个 docker 容器,其中
/workspace/ansible
也安装到 /ansible
并且 ansible.cfg
包含以下内容:
[defaults]
home = /ansible
inventory = /ansible/inventory.yml
# ...