使用变量作为Ansible在vars_prompt默认值使用变量作为Ansible在vars_pro

2019-05-12 13:28发布

我试图用vars_prompt在Ansible与取自事实(或其他先前定义的变量)的默认值。 该剧本旨在被用作初始供给的ad-hoc之一。

我的剧本:

---
- 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 }}"

目前的结果:

please enter the name for the target [{{ ansible_hostname }}]:
ERROR! 'ansible_hostname' is undefined

预期的结果(假定ansible_hostname=server01

please enter the name for the target [server01]:

是否有可能在Ansible实现?

Answer 1:

这可以通过使用实施pause模块 :

---
- hosts: server01
  gather_facts: True
  tasks:
    - pause:
        prompt: please enter the name for the target [{{ ansible_hostname }}]
      register: prompt

    - debug:
        msg: "{{ prompt.user_input if prompt.user_input else ansible_hostname }}"


文章来源: Using a variable as a default value in vars_prompt in Ansible