根据清漆的健康状态在服务器上重新启动apache服务

时间:2019-09-13 09:51:02

标签: ansible

我有3个实例在centos 7上运行 1. Ansible服务器 2.清漆服务器 3. Apache httpd服务器 我想在清漆服务启动时重新启动apache服务,但是清漆健康状态显示为“ Sick”,因为apache服务已停止。

我已经创建了一个剧本并定义了这两个主机,但是不能正常工作

- name: Check Backend Nodes
  shell: varnishadm backend.list | awk 'FNR==2{ print $4  }'
  register: status1

- name: print backend status
  debug:
    msg: "{{status1.stdout_lines}}"


 #tasks:
- include_tasks: /etc/ansible/apache/tasks/main.yml
  when: status1.stdout_lines == 'Sick'

1 个答案:

答案 0 :(得分:0)

最可能的原因是,当您将条件与字符串进行比较时,您的when条件有一个小故障,正如您在文档stdout_lines is always a list of string中所看到的那样。

因此,您的修复实际上可以像检查字符串Sick是否在列表stdout_lines中一样简单:

- include_tasks: /etc/ansible/apache/tasks/main.yml
  when: “'Sick' in status1.stdout_lines”