指定标记时,Ansible include_任务将不会运行
我在main.yml中包含了如下所示的一些任务(作为其他几个任务列表中的任务之一) 当我运行playbook指定指定标记时,Ansible include_任务将不会运行,ansible,ansible-2.x,Ansible,Ansible 2.x,我在main.yml中包含了如下所示的一些任务(作为其他几个任务列表中的任务之一) 当我运行playbook指定--tags never时,它只是不运行,而是显示下面的输出 PLAY [all] ***************************************************************************************************************************************************** T
--tags never
时,它只是不运行,而是显示下面的输出
PLAY [all] *****************************************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************************************
ok: [node2]
ok: [node4]
ok: [node3]
ok: [node5]
ok: [node1]
ok: [node6]
TASK [swarm : remove swarm] ************************************************************************************************************************************
included: /home/xbox/Work/Infra/roles/swarm/tasks/swarm.undo.yml for node1, node2, node3, node4, node5, node6
PLAY RECAP *****************************************************************************************************************************************************
node1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node2 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node3 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node4 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node5 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node6 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
如果我没有指定并注释掉该组中的其他任务(加上删除never
标记)。它运行正常
为什么会有这种行为?我应该怎么做才能使它正确运行?这种行为似乎很正常,而且在
swarm.undo.yml
中,您可能没有任何任务标记为never
根据规定,标签适用于任务和重头戏。因此,当您指定--tags never
时,include_tasks
(这是一个任务)将按预期被包含。但是只有swarm.undo.yml
中带有never
标记的任务才会运行
从上述链接中引用:
Ansible为特殊行为保留两个标记名:始终
和从不
。如果将始终
标记指定给任务或播放,Ansible将始终运行该任务或播放
选项1:因此,一种方法是确保swarm.undo.yml
中的相关任务具有never
标记
<强>选项2:如果有很多任务,所有都应该被标记为<代码> No.<代码>,您可以考虑将此任务文件转换为PrasBooad(带有播放级别的标签),并使用<代码> Ipple PraseBoo< <代码> >
示例swarm.undo.yml
:
-主机:myhosts
标签:
-从来没有
任务:
#你的任务在这里
然后在main.yml
中:
-名称:包括群撤销
导入剧本:swarm.undo.yml
这种行为似乎很正常,在swarm.undo.yml
中,您可能没有任何任务标记为never
根据规定,标签适用于任务和重头戏。因此,当您指定--tags never
时,include_tasks
(这是一个任务)将按预期被包含。但是只有swarm.undo.yml
中带有never
标记的任务才会运行
从上述链接中引用:
Ansible为特殊行为保留两个标记名:始终
和从不
。如果将始终
标记指定给任务或播放,Ansible将始终运行该任务或播放
选项1:因此,一种方法是确保swarm.undo.yml
中的相关任务具有never
标记
<强>选项2:如果有很多任务,所有都应该被标记为<代码> No.<代码>,您可以考虑将此任务文件转换为PrasBooad(带有播放级别的标签),并使用<代码> Ipple PraseBoo< <代码> >
示例swarm.undo.yml
:
-主机:myhosts
标签:
-从来没有
任务:
#你的任务在这里
然后在main.yml
中:
-名称:包括群撤销
导入剧本:swarm.undo.yml
当Ansible中的更改发生时,我必须在所有包含的文件中添加块,并配置相关标记
但是,从Ansible 2.7开始,您可以告诉Ansible将特定标记应用于所有包含的任务。这意味着您不需要在swarm.undo.yml
中进行任何更改。上面的main.yml
示例如下所示:
-名称:删除群集
包括以下任务:
文件:swarm.undo.yml
#将这些标记添加到所有包含的任务中
标记:['从不','调试']
标记:['从不','调试']
当Ansible中的更改发生时,我必须在所有包含的文件中添加块,并配置相关标记
但是,从Ansible 2.7开始,您可以告诉Ansible将特定标记应用于所有包含的任务。这意味着您不需要在swarm.undo.yml
中进行任何更改。上面的main.yml
示例如下所示:
-名称:删除群集
包括以下任务:
文件:swarm.undo.yml
#将这些标记添加到所有包含的任务中
标记:['从不','调试']
标记:['从不','调试']
谢谢。我不知道我也必须在文件中标记任务。谢谢。我不知道我也必须在文件中标记任务。
PLAY [all] *****************************************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************************************
ok: [node2]
ok: [node4]
ok: [node3]
ok: [node5]
ok: [node1]
ok: [node6]
TASK [swarm : remove swarm] ************************************************************************************************************************************
included: /home/xbox/Work/Infra/roles/swarm/tasks/swarm.undo.yml for node1, node2, node3, node4, node5, node6
PLAY RECAP *****************************************************************************************************************************************************
node1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node2 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node3 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node4 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node5 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node6 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0