Эта коллекция задача не работает, как я надеялся, что это:Как зарегистрировать вар либо одной или другой задачи
- name: Find out whether syslog-ng is installed (yum)
tags: syslog_forwarding
command: yum -q list installed syslog-ng
register: syslog_ng_check
failed_when: False
changed_when: False
when: ansible_pkg_mgr == 'yum'
- name: Find out whether syslog-ng is installed (apt)
tags: syslog_forwarding
command: dpkg -s syslog-ng
register: syslog_ng_check
failed_when: False
changed_when: False
when: ansible_pkg_mgr == 'apt'
- name: Configure syslog-ng to forward all logs to syslog servers (apt)
tags: syslog_forwarding
template:
src: syslog_ng_forward_all.conf.j2
dest: /etc/syslog-ng/conf.d/syslog_forward.conf
notify: restart syslog_ng
when: syslog_ng_check is defined and syslog_ng_check.rc == 0
- name: Configure syslog-ng to forward all logs to syslog servers (yum)
tags: syslog_forwarding
template:
src: syslog_ng_forward_all.conf.j2
dest: /etc/syslog-ng/conf.d/syslog_forward.conf
notify: restart syslog_ng
when: syslog_ng_check is defined and syslog_ng_check.rc == 0
Я хотел сначала выяснить, была ли установлена на системе syslog-ng
(система может быть либо CentOS
, либо Debian/Ubuntu
), а затем действовать соответствующим образом (поместите файл конфигурации), когда это так, и сохраните задачу для размещения независимого дистрибутива файла конфигурации. Я обнаружил, что если первая задача фактически возвращает 0 и устанавливает syslog-ng-check.rc
в 0, то вторая задача делает ее еще раз неопределенной (или, по крайней мере, пустой), хотя задача пропускается (поскольку никакая система не может быть используя yum
и apt
в то же время, по крайней мере, не мои).
Конечно, я мог бы регистрировать разные переменные для каждого yum
и apt
чеков, но тогда мне понадобилось бы больше логики в моем, когда: предложение, которое я хотел избежать.
Любые хорошие идеи по этому вопросу?