Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible Blocks:“;“始终”;及;块;不在main.yml中工作_Ansible - Fatal编程技术网

Ansible Blocks:“;“始终”;及;块;不在main.yml中工作

Ansible Blocks:“;“始终”;及;块;不在main.yml中工作,ansible,Ansible,我尝试使用此处定义的“始终”和“块”功能- 我有一个main.yml文件,看起来像这样- - block: - include: git_clone_and_combining.yml run_once: yes delegate_to: localhost - include: combined_repo_push.yml run_once: yes delegate_to: localhost - include: deploy_code.ym

我尝试使用此处定义的“始终”和“块”功能-

我有一个main.yml文件,看起来像这样-

- block:
  - include: git_clone_and_combining.yml
    run_once: yes
    delegate_to: localhost

  - include: combined_repo_push.yml
    run_once: yes
    delegate_to: localhost

  - include: deploy_code.yml

  always:
  - include: resume_asg.yml
    delegate_to: localhost
它按预期在剧本中运行,但“resume_asg.yml”脚本之前的
始终
块似乎被忽略,因为它不会在失败时运行。在播放中不支持这种块的使用吗

编辑-用Redhat打开了一张关于这个的票证,他们在这里打开了一个Bug报告-<当指定了
run_once
参数时,code>始终和
在main.yml中似乎不起作用

谢谢。

引用

这个模块仍将支持一段时间,但我们正在考虑在不久的将来取消它

我可以用include重现这个问题。要解决此问题,请使用。比如说

shell>cat pb.yml
-主机:本地主机
任务:
-区块:
-包括任务:test\u fail.yml
跑一次:对
始终:
-包括任务:tasks-always.yml
shell>cat测试失败.yml
-命令:“{cmd | default('true')}”
shell>cat tasks-always.yml
-调试:
味精:总是
给出(节略)

shell>ansible剧本pb.yml
任务[命令]****
已更改:[localhost]
任务[调试]****
确定:[本地主机]=>
味精:总是
shell>ansible剧本pb.yml-e“cmd=false”
任务[命令]****
致命:[localhost]:失败!=>更改=真
命令:
-“假”
增量:“0:00:00.003130”
完:“2020-12-1121:29:26.481652”
msg:非零返回码
rc:1
开始:“2020-12-1121:29:26.478522”
stderr:'
标准线路:
标准输出:“”
标准输出线:
任务[调试]****
确定:[本地主机]=>
味精:总是

“始终”部分按预期工作

示例

shell>cat pb.yml
-主机:本地主机
任务:
-区块:
-命令:“{cmd | default('true')}”
始终:
-调试:
味精:总是
shell>ansible剧本pb.yml
播放[本地主机]****
任务[命令]****
已更改:[localhost]
任务[调试]****
确定:[本地主机]=>
味精:总是
...
shell>ansible剧本pb.yml-e“cmd=false”
播放[本地主机]****
任务[命令]****
致命:[localhost]:失败!=>更改=真
命令:
-“假”
增量:“0:00:00.004007”
完:“2020-12-1106:57:10.055177”
msg:非零返回码
rc:1
开始:“2020-12-1106:57:10.051170”
stderr:'
标准线路:
标准输出:“”
标准输出线:
任务[调试]****
确定:[本地主机]=>
味精:总是
...

包含的任务给出相同的结果

shell>cat pb.yml
-主机:本地主机
任务:
-区块:
-命令:“{cmd | default('true')}”
始终:
-包括:tasks-always.yml
shell>cat tasks-always.yml
-调试:
味精:总是

这个角色给出了相同的结果

shell>cat pb.yml
-主机:本地主机
角色:
-测试-01
shell>cat角色/test-01/tasks/main.yml
-区块:
-命令:“{cmd | default('true')}”
始终:
-包括:tasks-always.yml
shell>cat角色/test-01/tasks/tasks-always.yml
-调试:
味精:总是

细节不见了。去吧,谢谢你的回复。实际上,我打开了一张红帽的罚单,他们的回答是:“如果在block部分的失败任务中指定了
run\u once:yes
,则always部分的任务将不会运行”。已在此处打开错误报告-“”。