Das ist nicht genau die Frage zu beantworten, wie das, was ich versuchte offenbar zu erreichen ist nicht möglich, die aktuelle stabile Version von ansible, aber ich Ich möchte eine Problemumgehung beschreiben, die mir geholfen hat, meinen Anwendungsfall zu lösen:
Zunächst wollte ich den hosts
aus dem Playbook innerhalb einer vars_prompt
Nachricht ausgeben, um sicherzustellen, dass das Playbook nie auf Hosts ausgeführt werden würde es war nicht dafür gedacht. Das Playbook richtet Backups für eine VM ein, und während seine Aktionen idempotent sind, benötigen nur einige meiner VMs Backups. Also schrieb ich das Playbook, um die Installation eines Backup-Clients auf einer VM zu automatisieren und den neuen Client auf einem zentralen Backup-Server zu konfigurieren.
Was ich sicher zu machen habe, dass ich immer nur dieses Textbuch für den beabsichtigten Host ausgeführt war, die hosts
Parameter im Textbuch selbst eine Variable zu machen, wie folgt aus:
- hosts: '{{ host }}'
Nun wird das Textbuch nicht sofort , wenn in der Befehlszeile kein Host angegeben ist. Die Art und Weise, eine solche Variable auf der Befehlszeile angeben, ist dies:
ansible-playbook --extra-vars="host=HOSTNAME" playbook.yml
Vielen Dank dafür. Ich habe das genauso angenommen, nachdem ich eine Reihe von Ersatzmustern in der 'vars_prompt'-Nachricht versucht habe, aber ich schätze die Bestätigung. Ich werde darüber nachdenken, ein Feature-Anfrage-Problem zu lösen. –