Vorrei sapere se esiste un modo per stampare le informazioni mentre un modulo è in esecuzione, principalmente come mezzo per dimostrare che il processo funziona e non è stato bloccato. Nello specifico, sto cercando di ottenere un feedback durante l'esecuzione del modulo cloudformation. Ho provato la modifica del (Python) il codice sorgente per includere il seguente:Ansible - Posso stampare le informazioni durante l'esecuzione del modulo?
def debug(msg):
print json.dumps({
"DEBUG" : msg
})
...
debug("The stack operation is still working...")
Che cosa questo ha fatto, naturalmente, era Store Tutto questo in uscita e solo stampare il tutto dopo che il modulo era terminato l'esecuzione. Quindi, per modelli di cloudformation particolarmente grandi, questo significa che aspetto circa 5 minuti circa, e poi all'improvviso vedo una grande quantità di testo apparire sullo schermo alla fine. Quello che mi aspettavo era vedere "L'operazione stack funziona ancora ..." stampata ogni x secondi.
Sembrerebbe che lo Asynchronous Actions and Polling sia quello che sto cercando ... ma anche questo non ha funzionato. L'intera attività, "Avvia CloudFormation per {{stackname}}", è stata interamente ignorata. Vedi sotto per la (YAML) frammento dal mio playbook rilevanti:
- name: Launch CloudFormation for {{ stackname }}
cloudformation: >
stack_name="{{ stackname }}" state=present
region="{{ region }}" disable_rollback=true
template="{{ template }}"
register: cloud
args:
template_parameters:
KeyName: "{{ keyName }}"
Region: "{{ region }}"
SecurityGroup: "{{ securityGroup }}"
BootStrapper: "{{ bootStrapper }}"
BootStrapCommand: "powershell.exe -executionpolicy unrestricted -File C:\\{{ bootStrapper }} {{ region }}"
S3Bucket: "{{ s3Bucket }}"
async: 3600
poll: 30
Questo mi dice che asincrona è pensato per i comandi tipici di shell, e non i moduli complessi come cloudformation. O - Forse ho fatto qualcosa di sbagliato.
Qualcuno potrebbe far luce su questa situazione? Ancora una volta, per attività di cloud computing di grandi dimensioni che richiedono un po 'di tempo, vorrei alcune indicazioni periodiche che l'attività è ancora in esecuzione, e non sospesa. Apprezzo l'aiuto!
Grazie. Posso almeno fare qualcosa del genere per riferire su un intervallo di 30 secondi forse una semplice nota "L'operazione funziona ancora ...". È solo un peccato che Ansible non supporti ancora i veri processi asincroni. – Brian
Sebbene in pratica, questo non sembra funzionare per il modulo CloudFormation. Di nuovo, sembra che solo i comandi di shell semplici possano essere eseguiti in modo asincrono (o come processi in background). ** Quindi la risposta è ancora un NO concreto. ** – Brian