Ich hatte ein einfaches Playbook (something like this), das ich auf allen meinen Rechnern (RH & Debian) laufen lasse, um sie zu aktualisieren, und für jeden Rechner, der aktualisiert wurde Skript (Benachrichtigungshandler).Ansible wird einen Handler nicht sehen, wenn er group_by verwendet
Vor kurzem habe ich versucht, ein neues Modul zu testen group_by
genannt, so dass anstelle den when
Zustand mit yum update
wenn ansible_distribution == "CentOS"
zu laufen, werde ich zunächst anhand von dort ansible_pkg_mgr
als Schlüssel, um die Fakten und die Gruppe der Host sammeln und dann laufe ich war auf der Suche nach yum update auf allen Hosts, die der Schlüssel PackageManager_yum ist, finden Sie im Spielbuch Beispiel:
---
- hosts: all
gather_facts: false
remote_user: root
tasks:
- name: Gathering facts
setup:
- name: Create a group of all hosts by operating system
group_by: key=PackageManager_{{ansible_pkg_mgr}}
- hosts: PackageManager_apt
gather_facts: false
tasks:
- name: Update DEB Family
apt:
upgrade=dist
autoremove=yes
install_recommends=no
update_cache=yes
when: ansible_os_family == "Debian"
register: update_status
notify: updateX
tags:
- deb
- apt_update
- update
- hosts: PackageManager_yum
gather_facts: false
tasks:
- name: Update RPM Family
yum: name=* state=latest
when: ansible_os_family == "RedHat"
register: update_status
notify: updateX
tags:
- rpm
- yum
- yum_update
handlers:
- name: updateX
command: /usr/local/bin/update
Und das ist die Fehlermeldung erhalte ich,
PLAY [all] ********************************************************************
TASK [Gathering facts] *********************************************************
Wednesday 21 December 2016 11:26:17 +0200 (0:00:00.031) 0:00:00.031 ****
....
TASK [Create a group of all hosts by operating system] *************************
Wednesday 21 December 2016 11:26:26 +0200 (0:00:01.443) 0:00:09.242 ****
TASK [Update DEB Family] *******************************************************
Wednesday 21 December 2016 11:26:26 +0200 (0:00:00.211) 0:00:09.454 ****
ERROR! The requested handler 'updateX' was not found in either the main handlers list nor in the listening handlers list
danke im voraus.
Danke für den Tipp. – Rabin