Ich habe ein Python Script für die Version2.7 geschrieben, welches mit subprocess und Popen ein Ansible-Skript startet. Dieses Script kann manuelle über die bash gestartet werden und ich verwende es auch in einem cronjob. Um den Info-Overhead, den Ansible beim Ausführen an die Shell ausgibt, habe ich das alles etwas kanalisiert und schreibe die Ausgaben der Ansibleskript-Ausführung in eine Variable, die ich dann auswerte um eine mögliche Fehlermeldung daraus zu machen.
Code: Alles auswählen
ansible_command = 'ansible-playbook /home/devops/ansible/playbooks/info/script.yml -l ' + env_choice
extra_vars = ' --extra-vars "ip=' + ip + ' date=' + check_date + ' path=' + path + '"'
ansible_command += extra_vars
proc = subprocess.Popen(ansible_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,)
output = proc.communicate()[0]
if "ok:" not in output:
print "\033[1;41mFehler bei XY {0} \033[0m"\
.format(ip)
print output
VG niesel