ansible - 为什么我的 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
解决方案
您的 YAML 文档中有一个根级序列,第一项是tasks
紧随其后的是一个没有父节点的缩进节点。您可能需要在:
后面添加一个值指示符 ( )tasks
- tasks:
- name: Remove package
shell: aws s3 rm s3://pipeline-dev/packages/first_package.zip --sse --debug
因此,tasks 将是一个键,其值是项目(不是项目指示符)缩进四个位置的序列。
推荐阅读
- java - 在java中合并两个相同类型的对象列表
- javafx - 加载文档时 FXMLLoader 究竟做了什么?
- core-data - CoreData:过滤结果比较实体的相同属性
- python - numpy - 用分数填充的矩阵/数组的逆 - 错误
- python - 根据字典替换数据框列中的值不起作用
- python - Python异步函数中断时如何实现最终清理?
- visual-studio-code - 如何从 VSCode 扩展中恢复意外删除的键盘快捷键?
- javascript - 在 foreach 循环中将类添加到具有 ID 的每个元素
- selenium-webdriver - Selenium 测试在 Jenkins 中失败,但不是在本地,因为焦点没有被触发
- r - 使用 R 中的循环创建 50 多个国家/地区的地块