Ich versuche, eine bestimmte Zeile in der cat /etc/fstab
zu finden, registrieren Sie es in einer Variablen und wollen dann zu umount
das gefundene Verzeichnis verwenden.mit Register in Ansible Aufgabe
---
- hosts: all
remote_user: root
tasks:
- name: Finding if the mount point exists
shell: cat /etc/fstab | grep /mnt | awk '{print $2}'
register: mountpoint
- name: UMOUNT the mountpoint found in expression
shell: umount "{{ item }}"
with_items: mountpoint.stdout
Ich sehe die Ausgabe funktioniert für die erste Aufgabe. Aber in der zweiten Aufgabe heißt es, "stderr": "umount: mountpoint.stdout: mountpoint not found", "stderr_lines": ["umount: mountpoint.stdout: mountpoint not found"]"
Ist es nicht die Registervariable sollte hier arbeiten? vermisse ich etwas?
Dies ist die Ausgabe
{
"_ansible_parsed": true,
"stderr_lines": [],
"cmd": "cat /etc/fstab | grep /mnt | awk '{print $2}'",
"end": "2017-09-29 15:07:12.717112",
"_ansible_no_log": false,
"stdout": "/mnt/dvd",
"changed": true,
stdout
wird hier als/mnt/DVD gefunden. jetzt möchte umount
es.
Vielen Dank im Voraus.
Sie sollten die "mount" -Aktion, die vom Entwurf idempotent ist, in Betracht ziehen. – tedder42