Ich versuche ein Ansible Playbook zu schreiben, das nur Nginx kompiliert, wenn es nicht bereits vorhanden ist und in der aktuellen Version. Jedoch kompiliert es jedes Mal, was unerwünscht ist. DieseAnsible Bedingung, wenn String nicht übereinstimmt
ist, was ich habe:
- shell: /usr/local/nginx/sbin/nginx -v 2>&1
register: nginxVersion
- debug:
var=nginxVersion
- name: install nginx
shell: /var/local/ansible/nginx/makenginx.sh
when: "not nginxVersion == 'nginx version: nginx/1.8.0'"
become: yes
Das Skript alle abgesehen von der Tatsache, dass es funktioniert das Shell-Skript läuft Nginx jedes Mal zu kompilieren. Die Debug-Ausgabe für nginxVersion ist:
ok: [server] => {
"var": {
"nginxVersion": {
"changed": true,
"cmd": "/usr/local/nginx/sbin/nginx -v 2>&1",
"delta": "0:00:00.003752",
"end": "2015-09-25 16:45:26.500409",
"invocation": {
"module_args": "/usr/local/nginx/sbin/nginx -v 2>&1",
"module_name": "shell"
},
"rc": 0,
"start": "2015-09-25 16:45:26.496657",
"stderr": "",
"stdout": "nginx version: nginx/1.8.0",
"stdout_lines": [
"nginx version: nginx/1.8.0"
],
"warnings": []
}
}
}
Gemäß der Dokumentation ich auf dem richtigen Weg bin, was einfacher Trick bin ich dabei?
Nun, das ist einfach zu einfach war. Die 2. Option hat funktioniert. –