【发布时间】:2020-03-28 06:41:24
【问题描述】:
我有一本包含多个任务的剧本,这些任务必须在不同的主机上运行。 在剧本开始时,我想提示操作员提供他们的凭据,这对于剧中的每个主持人都是相同的。我希望将这些凭据“存储”在某处,以便可以在任务中使用它们来登录提供的主机。
Playbook 如下所示,
---
- name: Ask for credentials
vars_prompt:
- name: username
prompt: "Username?"
- name: password
prompt: "Password?"
tasks:
- set_fact:
username: "{{username}}"
- set_fact:
password: "{{password}}"
- hosts: Host1
vars:
ansible_user: "{{ username }}"
ansible_password: "{{ password }}"
tasks:
- name: Do stuff
- hosts: Host2
vars:
ansible_user: "{{username}}"
ansible_password: "{{password}}"
tasks:
- name: Do stuff
...
从播放到达第一个任务的那一刻起,它就会因流动错误而失败,
msg: 'The field ''remote_user'' has an invalid value, which includes an undefined variable. The error was: ''username'' is undefined'
任何有使提示变量可用于整个游戏和所有任务的经验?
【问题讨论】:
标签: ansible ansible-2.x ansible-inventory ansible-facts