Как зарегистрировать переменную в той или иной задаче

Эта коллекция задач не работает, как я надеялся:

- 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 проверяет, но тогда мне понадобится больше логики в предложении when:, которого я хотел бы избежать.

Есть хорошие идеи на этот счет?

Ответы на вопрос(2)

Ваш ответ на вопрос