首页 > 解决方案 > 为什么我的 yaml 在 ansible playbook 中无效?

问题描述

我在 Jenkins 中看到了这个错误(运行 ansible playbook)。

ERROR! Syntax Error while loading YAML.
exception type: <class 'yaml.scanner.ScannerError'>
exception: mapping values are not allowed here
in "<unicode string>", line 6, column 9:
  - name: Remove package
        ^

剧本.yml

---

## Update package

- tasks
  - name: Remove package
    shell: aws s3 rm s3://pipeline-dev/packages/first_package.zip --sse --debug

  - name: Update package
    shell: aws s3 cp ./packages/package.zip s3://pipeline-dev/packages/first_package.zip --sse --debug

标签: ansibleyaml

解决方案


您的 YAML 文档中有一个根级序列,第一项是tasks

紧随其后的是一个没有父节点的缩进节点。您可能需要在:后面添加一个值指示符 ( )tasks

- tasks:
  - name: Remove package
    shell: aws s3 rm s3://pipeline-dev/packages/first_package.zip --sse --debug

因此,tasks 将是一个键,其值是项目(不是项目指示符)缩进四个位置的序列。


推荐阅读