Cómo registrar una var en una u otra tarea

Esta colección de tareas no funciona como esperaba:

- 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

Primero quería saber sisyslog-ng fue instalado en el sistema (el sistema puede ser unCentOS o unDebian/Ubuntu), y luego actuar en consecuencia (colocar un archivo de configuración) cuando sea así, y mantener la tarea de colocar la distribución del archivo de configuración independiente. Lo que he descubierto es que si la primera tarea en realidad devuelve 0 y establecesyslog-ng-check.rc a 0, entonces la segunda tarea hace que sea indefinido nuevamente (o al menos, vacío), aunque la tarea se omita (ya que ningún sistema puede estar usandoyum yapt al mismo tiempo, al menos no el mío).

Por supuesto, podría registrar diferentes variables para cadayum yapt comprueba, pero luego necesitaría más lógica en mi cláusula when: que quería evitar.

¿Alguna buena idea sobre este?

Respuestas a la pregunta(2)

Su respuesta a la pregunta