把一个“configurationtesting”的步骤,一个完整的剧本

写这个的时候,我解决了自己的问题。 所以我会把这个问题和答案,以帮助别人(如果有人想指出一个更好的方法):

我试图让人试图重新启动服务之前在远程主机上运行configurationtesting。 在这种情况下,服务是logstash。 我开始了一个同步configuration的任务,并且在configuration被同步时通知了一个处理程序。 但现在我想同步configuration,如果同步configuration远程testingconfiguration,如果通过(logstash代理-f conf.d / – configtestconfiguration通过时退出0,非0时,它不)然后重新启动该服务。 到目前为止,我已经提出了这个[更新和现在工作]:

- name: Logstash configuration synchronize: src="{{ files }}/etc/logstash" dest=/etc/ register: logstash_conf_changed tags: [logstash, logstash-conf, conf] - name: Logstash conftest command: /opt/logstash/bin/logstash agent -f /etc/logstash/conf.d --configtest when: logstash_conf_changed is defined notify: - Logstash restart tags: [logstash, logstash-conf, conf] 

处理程序很简单:

 - name: Logstash restart service: name=logstash state=restarted