首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ansible 2.7.10中出现此错误的原因是什么?- " error!playbook条目必须是有效的play或include语句|“

ansible 2.7.10中出现此错误的原因是什么?- " error!playbook条目必须是有效的play或include语句|“
EN

Stack Overflow用户
提问于 2019-05-01 02:56:04
回答 1查看 1.6K关注 0票数 2

我正在看Ansible的教程,其中我必须部署一个playbook。实战手册代码如下:

代码语言:javascript
复制
- name:"Do a demo"
  hosts:groupA

  tasks:!!seq
    - name:demo task 1
      debug:!!seq
        msg:"this is task 1"

    - name:demo task 2
      debug:!!seq
        msg:"this is task 2"

- name:"Do another demo"
  hosts:groupB

  tasks:!!seq
    - name:demo task 3
      debug:!!seq
      msg:"this is task 3"

    - name:demo task 4
      debug:!!seq
        msg:"this is task 4"

当我尝试使用ansible-playbook -i hosts demoplays.yaml命令部署上述攻略时,出现错误:-

代码语言:javascript
复制
ERROR! playbook entries must be either a valid play or an include statement

The error appears to have been in '/home/user/demoplays.yaml': line 1, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name:"Do a demo"
  ^ here

起初我认为是yaml语法错误,但是YAML linter证实了它是正确的。我在我的初级OS Loki系统上使用ansible 2.7.10。我刚刚开始学习Ansible和YAML,还没有找到任何为什么会发生这个错误的提示!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-01 03:28:58

您的YAML相当于:

代码语言:javascript
复制
[
  "name:\"Do a demo\" hosts:groupA\ntasks:- name:demo task 1 debug:seq msg:\"this is task 1\"\n- name:demo task 2 debug:!!seq msg:\"this is task 2\"", 
  "name:\"Do another demo\" hosts:groupB\ntasks:- name:demo task 3 debug:seq msg:\"this is task 3\"\n- name:demo task 4 debug:!!seq msg:\"this is task 4\""
]

这可能不是你想要的。尝试更改这一点,使YAML中的根级别序列的项成为映射:

代码语言:javascript
复制
- name: "Do a demo"
  hosts: groupA

  tasks: !!seq
    - name: demo task 1
      debug: !!seq
        msg: "this is task 1"

    - name: demo task 2
      debug: !!seq
        msg: "this is task 2"

- name: "Do another demo"
  hosts: groupB

  tasks: !!seq
    - name: demo task 3
      debug: !!seq
        msg: "this is task 3"

    - name: demo task 4
      debug: !!seq
        msg: "this is task 4"

请注意,我不仅在冒号后面添加了一个空格,使其成为一个值指示器,我还缩进了msg: "this is task 3"以确认其他msg键。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55927155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档