我有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'
答案 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”