yaml 的 vs 代码编辑器说期待地图但找到了序列
vs-code editor for yaml says expecting a map but found a sequence
我正在 ansible 角色的任务文件夹中编辑 main.yml。
我正在使用 Red Hat 的 YAML vscode 扩展。
这是文件的第一部分...
# Install Packages
- name: Install the Kafka Broker Packages
yum:
name: "{{item}}-{{confluent.package_version}}"
state: latest
loop: "{{kafka_broker_packages}}"
when: ansible_os_family == "RedHat"
- name: Install the Kafka Broker Packages
apt:
name: "{{item}}={{confluent.package_version}}"
update_cache: yes
loop: "{{kafka_broker_packages}}"
when: ansible_os_family == "Debian"
整个文件都有红色的波浪下划线:
Expecting a 'map', but found a 'sequence'
我确定我在做一些愚蠢的事情 - 非常感谢任何帮助
那么 Readme of that extension 说:
with built-in Kubernetes and Kedge syntax support.
所以扩展可能会尝试根据 Kubernetes 或 Kedge 模式验证您的 YAML 文件,但由于您正在为 Ansible 编写配置文件而失败。您可以尝试将 yaml.validate
设置为 "false"
以禁用验证。
但是,您最好还是使用 Ansible extension。
VSCode-YAML 从 http://schemastore.org/json/ 中提取 JSON 模式,并尝试将模式与 yaml 文件相关联,这样您就可以在不进行任何配置的情况下进行悬停、自动完成、验证边。然而,有时这些模式是不正确的,这里似乎就是这种情况。
您可以在此处提交问题:https://github.com/SchemaStore/schemastore 并且对架构的任何更新都会出现在 vscode-yaml 中,或者您可以通过将 "yaml.schemaStore.enable" 设置为 false 来禁用架构存储.
此问题的原因是 ansible 扩展 (https://marketplace.visualstudio.com/items?itemName=vscoss.vscode-ansible) 无法将给定文件识别为其支持的项目。要摆脱它,请尝试编辑 VSCode 的 settings.json 以添加以下配置:
"files.associations": {
"**/*.yml": "ansible"
},
"ansible.validation": true
转到File >> preferences >> settings
然后在右上角单击 open settings(json)
图标。
然后在设置中添加这个 json:
"files.associations": {
"**/*.yml": "yaml"
}
我正在 ansible 角色的任务文件夹中编辑 main.yml。
我正在使用 Red Hat 的 YAML vscode 扩展。
这是文件的第一部分...
# Install Packages
- name: Install the Kafka Broker Packages
yum:
name: "{{item}}-{{confluent.package_version}}"
state: latest
loop: "{{kafka_broker_packages}}"
when: ansible_os_family == "RedHat"
- name: Install the Kafka Broker Packages
apt:
name: "{{item}}={{confluent.package_version}}"
update_cache: yes
loop: "{{kafka_broker_packages}}"
when: ansible_os_family == "Debian"
整个文件都有红色的波浪下划线:
Expecting a 'map', but found a 'sequence'
我确定我在做一些愚蠢的事情 - 非常感谢任何帮助
那么 Readme of that extension 说:
with built-in Kubernetes and Kedge syntax support.
所以扩展可能会尝试根据 Kubernetes 或 Kedge 模式验证您的 YAML 文件,但由于您正在为 Ansible 编写配置文件而失败。您可以尝试将 yaml.validate
设置为 "false"
以禁用验证。
但是,您最好还是使用 Ansible extension。
VSCode-YAML 从 http://schemastore.org/json/ 中提取 JSON 模式,并尝试将模式与 yaml 文件相关联,这样您就可以在不进行任何配置的情况下进行悬停、自动完成、验证边。然而,有时这些模式是不正确的,这里似乎就是这种情况。
您可以在此处提交问题:https://github.com/SchemaStore/schemastore 并且对架构的任何更新都会出现在 vscode-yaml 中,或者您可以通过将 "yaml.schemaStore.enable" 设置为 false 来禁用架构存储.
此问题的原因是 ansible 扩展 (https://marketplace.visualstudio.com/items?itemName=vscoss.vscode-ansible) 无法将给定文件识别为其支持的项目。要摆脱它,请尝试编辑 VSCode 的 settings.json 以添加以下配置:
"files.associations": {
"**/*.yml": "ansible"
},
"ansible.validation": true
转到File >> preferences >> settings
然后在右上角单击 open settings(json)
图标。
然后在设置中添加这个 json:
"files.associations": {
"**/*.yml": "yaml"
}