2015-05-10 13 views
5

umgehen Ich habe versucht, eine Percona-Rolle in ansible und scheitern daran zu schaffen. Ich werde nicht wirklich sagen scheitern, aber es funktioniert nicht wie geplant. Im Folgenden ist ein Ausschnitt aus der Rollewie mit Percona Keyserver mit ansible


- name: Setting up percona server apt-key 
    apt_key: 
    id=1C4CBDCDCD2EFD2A 
    keyserver=keys.gnupg.net 
    state=present 

Darauf läuft ich mit dem folgenden Fehler endete:

failed: [192.168.56.107] => {"cmd": "apt-key adv --keyserver keys.gnupg.net --recv 1C4CBDCDCD2EFD2A", "failed": true, "rc": 2} 
stderr: gpg: requesting key CD2EFD2A from hkp server keys.gnupg.net 
gpg: no valid OpenPGP data found. 
gpg: Total number processed: 0 

Wie Sie den folgenden Befehl ansible sehen ausführt: apt-key adv --keyserver keys.gnupg.net --recv 1C4CBDCDCD2EFD2A, mittlerweile das Kommando das funktioniert, getestet und empfohlen von percona repository page ist apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A. Es gibt einen Unterschied in den Befehlen der erstere ist --recv und der letztere ist --recv-Schlüssel. Ich habe keine Idee, wie man diese Befehle ausführen kann, entweder mit dem Ansible-Befehlsmodul selbst.

Es gibt auch diese URL gefunden auf Percona Download-Seite auf die repo key, die in der Apt_key-Modul anstelle von Keyserver verwendet werden kann.

Was ich bin daran interessiert zu wissen, ob es möglich ist ansible laufen die tatsächlichen apt_key Befehle mit --recv-Tasten

Antwort

3

Der folgende Befehl sollte für Sie arbeitet:

- apt_key: url=http://www.percona.com/redir/downloads/RPM-GPG-KEY-percona 
      state=present 
+0

URL ist die Option, die ich zuerst versucht, aber der Befehl ist, was ich am Ende Verwenden Sie, da es natürlicher ist zu verwenden –

+1

@blacksensei Sie haben nicht erwähnt, dass Sie URL-Parameter in Ihrer ursprünglichen Frage verwendet. Außerdem ist die Verwendung des Befehlsmoduls im Allgemeinen ein Anti-Pattern, wenn ein natives Modul verfügbar ist. Schließlich wird Ihr Befehl immer den Status "geändert" anzeigen, wenn Sie ihn ausführen, wobei das Modul "apt_key" die richtigen Ergebnisse anzeigt, die auf Änderungen basieren, wenn etwas durchgeführt wurde. – Mxx

+0

Entschuldigung für das Missverständnis. In meinem Beitrag versuchte ich es mit den folgenden Worten zu sagen: "Es gibt auch diese URL, die auf der Percona-Download-Seite auf den Repo-Schlüssel gefunden wurde, die im Modul apt_key anstelle des Schlüsselservers verwendet werden kann." Jetzt Befehl, ein Anti-Muster zu sein, ist wirklich neu für mich. Ich würde mehr Suche tun und wenn ja, akzeptiere deine Antwort eher. –

2

Die source code für das apt_key Modul zeigt es den Aufbau einer Befehlszeile --recv zu machen, aber keine Erwähnung von --recv-Schlüsseln, also sieht es nicht so aus, als könnten Sie dieses Modul so benutzen, wie Sie es möchten. Ich würde vorschlagen, filing a feature request mit dem Ansible-Team zu fragen, dass sie diese Flagge unterstützen.

In der Zwischenzeit sollte es möglich sein, apt-key manuell über das Befehlsmodul aufzurufen. Der Befehl würde praktisch identisch sein, was die Debug-Ausgabe zeigte:

- name: call apt_key manually 
    command: apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A