在 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 }}"
我试图在 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 }}"