2016-07-20 6 views
0

Ich schreibe ein einmaliges Spiel, um einige grok-Regeln auf meinen elasticsearch-Boxen zu aktualisieren (was ich manuell tun könnte, aber ich nehme an, viele dieser Aufgaben zu erledigen) also möchte ich das funktionieren lassen).Ansible-Inventardatei für einmalige Ansible-Wiedergabe schreiben

Ich möchte einfach eine lineinfile auf 8 Hosts laufen:

#!/usr/bin/ansible-playbook -i /home/myself/workingdir/hosts 
- name: update those lines 
    user: myself 
    hosts: elasticsearch_hosts 
    sudo: true 
    tasks: 
    - lineinfile: 
     dest: /opt/logstash/patterns/stuff 
     regexp: STUFF_AND_THINGS 
     line: STUFF_AND_THINGS [%{GREEDYDATA:big_h0nking_regex}\] ?.%{37_RANDOM_CHARACTERS:bologna} %{URIPATHPARAM:} %{*#&%$%@&@^[email protected]:expletive}/%{NUMBER:some_more_crap} %{NUMBER:minutes_wasted} %{[idk,lol]1776} 
    - service: name=elasticsearch state=restarted 

und hier ist meine Gastgeber

192.168.1.98 
192.168.2.76 
192.168.3.54 
192.168.4.32 
192.168.5.10 
192.168.6.123 

[elasticsearch-hosts] 
es-1 ansible_host=192.168.1.98 
es-2 ansible_host=192.168.2.76 
es-3 ansible_host=192.168.3.54 
es-4 ansible_host=192.168.4.32 
es-5 ansible_host=192.168.5.10 
es-6 ansible_host=192.168.6.123 

Datei Wenn dies ausgeführt wird, erhalte ich:

PLAY [update them lines] *************************************************** 
skipping: no hosts matched 

I Ich weiß nicht, dass ich in der Inventardatei etwas richtig mache, aber ich bin mir nicht sicher, was ich zum Beispiel bisher nur vom Rackspa benutzt habe ce rax-Modul zum Erstellen einer Inventarliste, wenn das Spiel ausgeführt wird.

Es kann auch nützlich sein zu beachten, dass es-1,, 6 sind kurze Namen, die ich auf DNS definiert habe, so kann ich zum Beispiel ssh es-1 und das funktioniert. Es schien diese Namen bei vorherigen Iterationen der Datei nicht zu mögen.

+0

Abstimmung zu schließen, weil, wie die Antwort darauf hinweist, es ein einfacher typografischer Fehler ist. – ydaetskcoR

+0

@taskinoor hat ein gutes Auge, aber es hat das Problem nicht gelöst. Ich erhalte jetzt '[WARNUNG]: vorausgesetzt, die Liste der Hosts ist leer, nur localhost ist verfügbar'. –

+0

Um sicherzustellen, dass Ihr playbook nicht in der Lage ist, ein "ansisible all -m -ping -i/home/myself/workingdir/hosts" zu verwenden, um sicherzustellen, dass es keine Probleme beim Lesen und Parsen der hosts-Datei gibt . –

Antwort

0

Das Problem ist, wie ich ansible-Playbook nenne. Diese

#!/usr/bin/ansible-playbook -i /home/myself/workingdir/hosts 

ist kein richtiger Weg, ein Argument über shebang scheinbar passieren, und als solches ansible-Textbuch wurde säumige/etc/ansible/hosts, die leer ist.

Verwandte Themen