1
Ich habe versucht, vars_prompt
in Ansible mit Standardwerten aus Fakten (oder sonst eine zuvor definierte Variable) zu verwenden. Das Playbook soll als Ad-hoc für die Erstbereitstellung verwendet werden.Verwenden einer Variable als Standardwert in vars_prompt in Ansible
Mein Textbuch:
---
- hosts: server01
gather_facts: True
vars_prompt:
- name: new_hostname
prompt: please enter the name for the target
default: "{{ ansible_hostname }}"
private: no
tasks:
- debug: msg="{{ new_hostname }}"
Aktuelles Ergebnis:
please enter the name for the target [{{ ansible_hostname }}]:
ERROR! 'ansible_hostname' is undefined
Erwartete Ergebnisse (unter der Annahme ansible_hostname=server01
:
please enter the name for the target [server01]:
Ist es möglich, in ansible zu erreichen
implementiert werden Ich wette, Sie haben Pech hier. Zu diesem Zeitpunkt gibt es keine Host-Variablen - Aufforderungen sind für das gesamte Spiel und Fragen, die Sie vor jeder Aufgabe (einschließlich Setup) für jeden Host gestellt wird. Kann '{{neuer_Hostname | Standard (ansible_hostname)}} 'und Übergabe von' new_hostname' mit '-e' ist eine Lösung. –
"* Zu diesem Zeitpunkt gibt es keine Host-Variablen *" - Die Frage ist: Gibt es in diesem Stadium irgendwelche Variablen (es scheint, dass irgendjemand nur als String behandelt wird). Ansonsten begann ich mich zu fragen, ob ich ein dynamisches Playbook von j2 template lokal erstellen und es einschließen könnte. – techraf
Schnell zu den Codehinweisen, dass dieser Teil des Playbooks nicht templated ist. –