可以将任何可靠的任务用作依赖关系吗?

我目前有三项非常的任务:

  • 创build虚拟主机
  • testingconfiguration
  • 重新加载nginx

我现在注册了最后两个作为处理程序,但是对于我正在做的事情,正确的错误通知是错误的:

  • 创build虚拟主机,通知testingconfiguration(好的)
  • testingconfiguration,通知重新加载(为什么configurationtesting意味着重新加载)
  • 重新加载nginx

我想要一个像这样的结构:

  • 创build虚拟主机,通知nginx重新加载
  • nginx重载:需要configurationtesting
  • configurationtesting:成功
  • nginx重新加载

只是因为语义看起来更正确。 它不应该只是一个序列,也不应该像一个configurationtesting通知一个重新加载,因为这只是实现一个序列没有逻辑落后(如重新加载需要先testing)

一个简单的条件在你的剧本与when应该工作,以防万一你忽略错误。 默认情况下,Ansible playbook运行在遇到错误时终止。 Nginx的configtest在shell状态码为0时退出,失败时为1 ,你可以根据结果使用它来运行不同的任务 –

任务:
   -  shell:服务nginx configtest
     ignore_errors:True
    注册:结果

   -  shell:服务nginx重新加载
    何时:结果|成功

   -  local_action:mail subject ='Nginxconfiguration错误'。
    何时:结果|失败