2015-05-10 25 views
5

Ho cercato di creare un ruolo percona in ansible e in mancanza di esso. Non dirò davvero di fallire, ma non funziona come previsto. Di seguito è riportato un frammento del ruolocome trattare con percona keyserver con ansible


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

momento l'esecuzione di questo ho finito con il seguente errore:

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 

Come si può vedere ansible esegue il seguente comando: apt-key adv --keyserver keys.gnupg.net --recv 1C4CBDCDCD2EFD2A, nel frattempo il comando che in realtà funziona, testato e raccomandato da percona repository page è apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A. C'è una differenza nei comandi, il primo è solo --recv e l'ultimo è --recv-keys. Non ho idea di come rendere eseguibile ansible questi comandi sia possibile utilizzare il modulo di comando ansible stesso.

C'è anche questo url trovato nella pagina di download di percona allo repo key che può essere usato nel modulo apt_key al posto di keyserver.

Quello che mi interessa sapere è se è possibile fare correre ansible i comandi effettivi apt_key con --recv tasti

risposta

3

Il seguente comando dovrebbe funzionare per voi:

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

URL è l'opzione ho provato prima, ma il comando è quello che ho finito usando come è più naturale usare –

+1

@blacksensei Non hai detto che hai usato il parametro url nella tua domanda originale. Inoltre, l'uso del modulo "command" è generalmente un anti-pattern quando è disponibile un modulo nativo. Infine, il tuo comando mostrerà sempre lo stato "modificato" quando lo esegui, dove il modulo 'apt_key' mostrerà i risultati modificati/ok corretti se è stato fatto qualcosa. – Mxx

+0

scusa per il malinteso. Nel mio post ho tentato di dirlo con questi: "C'è anche questo url trovato nella pagina di download di percona alla chiave repo che può essere usata nel modulo apt_key al posto di keyserver.". Ora comandare di essere un anti-modello è davvero nuovo per me. Vorrei fare più ricerche e, in tal caso, accettare piuttosto la tua risposta. –

2

Il source code per il modulo apt_key mostra la costruzione di una linea di comando utilizzando --recv ma no menzione di --recv-keys, quindi non sembra che tu possa usare questo modulo nel modo che preferisci. Vorrei suggerire filing a feature request con il team di Ansible per chiedere che supportano questo flag.

Nel frattempo si dovrebbe essere in grado di chiamare manualmente apt-key tramite il modulo di comando. Il comando sarebbe praticamente identico a quello che l'output di debug ha mostrato:

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