Ansible 角色 YAML 错误
Ansible roles YAML error
正在测试基本的 Ansible 角色设置,但在角色的第一行出现错误 main.yml
,但我确信这很愚蠢
play.yml
- hosts: myhosts
remote_user: myuser
roles:
- test
目录结构
play.yml
roles/test/tasks/main.yml
main.yml
- hosts: all
user: myuser
gather_facts: no
tasks:
- name: ping all hosts
ping:
当我运行ansible-playbook play.yml
时,我收到错误
The offending line appears to be:
- hosts: all
^ here
它看起来像是一个简单的 YAML 解析错误,但如果我 运行 ansible-playbook main.yml
,它工作正常,所以不确定发生了什么。有什么想法吗?
您不能在 roles/test/tasks/main.yml
中指定主机。主机在 play.yml
文件中指定。
roles/test/tasks/main.yml
用于定义你希望 Ansible 执行的动作。在您 ping 主机的情况下,它可能看起来像:
---
- ping:
这将在您的 play.yml
中指定的主机上执行 ping
操作
Ansible 有一套文件夹结构,可用于分解剧本。 play.yml
文件指定要定位的主机以及要应用的角色以及其他顶级控件。
play.yml
文件中指定的各个角色位于 roles/X/
中,存在 Ansible 期望的特定文件夹结构。它将在此处 roles/test/tasks/main.yml
.
的 test
角色中寻找 运行 的任务
play.yml
只是一本剧本。您可以在同一文件夹中创建多个并使用 ansible-playbook
调用它们。
官方文档有比较详细的例子推荐playbook directory structure
正在测试基本的 Ansible 角色设置,但在角色的第一行出现错误 main.yml
,但我确信这很愚蠢
play.yml
- hosts: myhosts
remote_user: myuser
roles:
- test
目录结构
play.yml
roles/test/tasks/main.yml
main.yml
- hosts: all
user: myuser
gather_facts: no
tasks:
- name: ping all hosts
ping:
当我运行ansible-playbook play.yml
时,我收到错误
The offending line appears to be:
- hosts: all
^ here
它看起来像是一个简单的 YAML 解析错误,但如果我 运行 ansible-playbook main.yml
,它工作正常,所以不确定发生了什么。有什么想法吗?
您不能在 roles/test/tasks/main.yml
中指定主机。主机在 play.yml
文件中指定。
roles/test/tasks/main.yml
用于定义你希望 Ansible 执行的动作。在您 ping 主机的情况下,它可能看起来像:
---
- ping:
这将在您的 play.yml
ping
操作
Ansible 有一套文件夹结构,可用于分解剧本。 play.yml
文件指定要定位的主机以及要应用的角色以及其他顶级控件。
play.yml
文件中指定的各个角色位于 roles/X/
中,存在 Ansible 期望的特定文件夹结构。它将在此处 roles/test/tasks/main.yml
.
test
角色中寻找 运行 的任务
play.yml
只是一本剧本。您可以在同一文件夹中创建多个并使用 ansible-playbook
调用它们。
官方文档有比较详细的例子推荐playbook directory structure