2014-07-23 8 views
7

Ich verstehe nicht oder sehe, was ich falsch mache, aber es scheint, als ob ich nicht mein Ansible Playbook bekommen kann, rng-tools-Dienst auf einem Ubuntu-Server zu starten.Ansible playbook handlers starten den Dienst nicht durch notify statement

environment: 
    remote server (configured): Ubuntu 14.04.1 LTS 
    server with playbook: Debian GNU/Linux 7.6 (wheezy) 
    > apt-cache policy ansible 
    ansible: 
     Installed: 1.7-0.git201406241728~unstable 
     Candidate: 1.7-0.git201406241728~unstable 
     Version table: 
     *** 1.7-0.git201406241728~unstable 0 
      100 /var/lib/dpkg/status 

Meine Ordnerstruktur ist wie folgt aus:

tasks/main.yml 
tasks/packages.yml that is included from the main.yml file 
handlers/main.yml 
files/rng-tools  

Ich installiere die Paket rng-tools mein Textbuch und schon wird er nach der Ausführung installiert.

- name: install common packages 
    apt: name={{ item }} state=present 
    with_items: 
    - gnupg 
    - rng-tools 
    - reprepro 
    - dpkg-sig 
    - nginx 

Ja Ich installiere mehrere Pakete, aber sie sind alle korrekt installiert.

Sobald es installiert ist, ich kopieren Sie die Datei/etc/default/rng-tools-Datei über mit:

- name: copy urandom default conf file 
    copy: src="rng-tools" dest="/etc/default/rng-tools" 
    notify: start rng-tools 

Sie bemerken, dass ich die notify: restart rng-tools schrieb dort begann der Dienst zu bekommen.

Meine Handler/main.yml Datei wie folgt aussieht:

--- 
# Handler for rng-tools 
- name: start rng-tools 
    service: name=rng-tools state=started 

- name: restart rng-tools 
    service: name=rng-tools state=restarted 

- name: stop rng-tools 
    service: name=rng-tools state=stopped 

- name: reload rng-tools 
    service: name=rng-tools state=reloaded 

Das Protokoll des laufenden Textbuch folgendes erzeugt: wird

TASK: [debian-repository | install common packages] *************************** 
ok: [debian.home.dr] => (item=gnupg,rng-tools,reprepro,dpkg-sig,nginx) => {"changed": false, "item": "gnupg,rng-tools,reprepro,dpkg-sig,nginx"} 

TASK: [debian-repository | copy urandom default conf file] ******************** 
ok: [debian.home.dr] => {"changed": false, "dest": "/etc/default/rng-tools", "gid": 0, "group": "root", "md5sum": "45ed1b1ee174494442296fdd262f3b09", "mode": "0644", "owner": "root", "path": "/etc/default/rng-tools", "size": 815, "state": "file", "uid": 0} 

PLAY RECAP ******************************************************************** 
debian.home.dr    : ok=12 changed=2 unreachable=0 failed=0 

Das Problem, dass der Dienst nicht gestartet wird, und ich überprüfen dies mit

sudo ps aux | grep rng 
root 29392 0.0 0.0 11740 884 pts/1 S+ 22:45 0:00 grep rng 

Während, wenn ich sudo service rng-tools start tun es beginnt und ich kann das sehen Prozess läuft gut.

Ich versuchte viele Dinge wie alle Handler kommentieren außer einer. Wenn ich einen Befehlstyp anlege, nachdem die Datei kopiert wurde und der Befehl den Dienst startet, wird der Dienst ausgeführt, also scheint es kein Berechtigungsproblem zu sein, aber irgendwie kann ich es nicht herausfinden. Plus mit den Handlern/main.yml ist in der best practice guide so ich glaubte, ich mache es richtig.

Haben Sie eine Idee, warum ich mit dem Playbook nicht anfangen kann?

Antwort

14

changed:false ist der Schlüssel, um dieses Geheimnis Abrollen:

TASK: [debian-repository | copy urandom default conf file] ******************** 
ok: [debian.home.dr] => {"changed": false, "dest": "/etc/default/rng-tools", "gid": 0, "group": "root", "md5sum": "45ed1b1ee174494442296fdd262f3b09", "mode": "0644", "owner": "root", "path": "/etc/default/rng-tools", "size": 815, "state": "file", "uid": 0} 

Die „notify: Gestartet“ wird nur dann aufgerufen, wenn die Datei Kopie auftritt.

+1

es funktionierte danke, ich löschte die '' '/ etc/default/rng-tools''' Datei und führte das Playbook erneut und jetzt wird es gestartet. Vielen Dank – DoRivard

Verwandte Themen