如何向Ansible中的块添加标记?
请举一个例子: 并说“使用块并在该级别定义标记”,但在本页上: 它们使用:如何向Ansible中的块添加标记?,ansible,yaml,Ansible,Yaml,请举一个例子: 并说“使用块并在该级别定义标记”,但在本页上: 它们使用: tasks: - name: Install, configure, and start Apache block: - name: Install httpd and memcached ansible.builtin.yum: name: - httpd - memcached
tasks:
- name: Install, configure, and start Apache
block:
- name: Install httpd and memcached
ansible.builtin.yum:
name:
- httpd
- memcached
state: present
如果我尝试“使用块并在该级别定义标记”,例如:
tasks:
- name: Install, configure, and start Apache
block:
tag: broken
- name: Install httpd and memcached
或者(绝望中)
我得到:
Syntax Error while loading YAML.
did not find expected key
问题是什么?如何向第二个示例中添加标记?将标记(以及任何其他标记)放在块之外,例如,在块之前
任务:
-名称:安装、配置和启动Apache
标签:未损坏
区块:
-名称:安装httpd和Memcached
...
,或在
任务:
-名称:安装、配置和启动Apache
区块:
-名称:安装httpd和Memcached
...
标签:未损坏
警察说
“块中的所有任务继承在块级别应用的指令。”
对于块内的标记
,情况并非如此。下面的代码段将失败,并显示消息此上下文中不允许映射值
-块:
标签:ntp
-名称:安装ntp
已经修好了。代码片段(其中标记
位于块
之外)按预期工作
-名称:ntp任务
标签:ntp
区块:
-名称:安装ntp
在此上下文中不允许映射值
当您将标签
放入块
时,例如
-名称:块
区块:
标签:t1
-名称:任务
调试:
消息:任务1
播放将失败,并显示错误消息
错误!加载YAML时出现语法错误。
在此上下文中不允许映射值
“标记”不是块的有效属性
正确的是标签
而不是标签
,例如
-名称:块
标签:t1
区块:
-名称:任务
调试:
消息:任务1
播放将失败,并显示错误消息
错误标记“”不是块的有效属性
修复最后两个示例和错误消息。它是标签
而不是标签
。结果是出现误导性错误未找到预期的键
。这里真正的问题是在此上下文中不允许映射值
。我不确定我是否理解。我使用的是单个标记,而不是多个标记。语法甚至适用于单个标记。
tasks:
- name: Install, configure, and start Apache
block:
- tag: broken
- name: Install httpd and memcached
Syntax Error while loading YAML.
did not find expected key