Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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
Don';如果上一个失败,则不要跳过ansible 1.9角色。_Ansible_Ansible Playbook - Fatal编程技术网

Don';如果上一个失败,则不要跳过ansible 1.9角色。

Don';如果上一个失败,则不要跳过ansible 1.9角色。,ansible,ansible-playbook,Ansible,Ansible Playbook,我有以下ansible剧本: - hosts: webservers roles: - start_measurement_script - run_calculations - stop_measurement_script - gather_logs 我想执行角色停止测量\u脚本,即使运行\u计算失败。但是,不应执行收集日志的角色。角色停止测量\u脚本仅包含一个任务。有没有办法做到这一点 我正在使用ansible 1.9.4,因此无法使用ansible

我有以下ansible剧本:

- hosts: webservers
  roles:
    - start_measurement_script
    - run_calculations
    - stop_measurement_script
    - gather_logs
我想执行角色
停止测量\u脚本
,即使
运行\u计算
失败。但是,不应执行收集日志的角色。角色
停止测量\u脚本
仅包含一个任务。有没有办法做到这一点


我正在使用ansible 1.9.4,因此无法使用ansible 2.0中的
功能。我见过
始终运行
子句,但它的名称似乎有误导性,并且在不同的场景中使用

您可以在步骤中添加
忽略错误:True

您还可以添加一个步骤,以在该步骤之后提供真正的故障


上阅读更多信息您是否需要
开始测量脚本
停止测量脚本
来扮演角色?您是否可以在
run\u calculations/tasks/start\u measurement\u script.yml
中添加操作,然后捕获run\u calculations中的错误,包括
stop\u measurement\u script.yml
然后
失败:
?我不想修改
run\u calculations
,因为它在多个剧本中使用,并且只在这个特定的剧本中使用,使用度量脚本。在其他剧本中,如果
run\u calculations
失败,我想跳过下一个角色。如果这是唯一的情况,您可以在修改后的
run\u calculations
中添加一个标志,允许您包含额外的剧本,例如,
enable_measuremnt
,它将始终默认为false,通过
run_calculations/defaults/main.yml
,您可以在该剧本中设置
vars:enable_measurement:true