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

Using a variable as a default value in vars_prompt in Ansible

我试图在 Ansible 中使用 vars_prompt,默认值取自事实(或以前定义的变量)。该剧本旨在用作初始配置的临时剧本。

我的剧本:

---
- 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中实现?

这可以使用 pause module:

来实现
---
- 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 }}"