Ansible 剧本中的Vars_提示
这是我的剧本Ansible 剧本中的Vars_提示,ansible,Ansible,这是我的剧本 --- - hosts: alpha vars: company: vogo tasks: - name: debugging debug: msg: "{{ansible_hostname}}" vars_prompt: - name: "company" prompt: "Where do you work" private: no - hosts: webservers va
---
- hosts: alpha
vars:
company: vogo
tasks:
- name: debugging
debug:
msg: "{{ansible_hostname}}"
vars_prompt:
- name: "company"
prompt: "Where do you work"
private: no
- hosts: webservers
vars_prompt:
- name: "fathercompany"
prompt: "Where your father works"
private: no
tasks:
- name: test
debug:
msg: just testing "{{company2}}"
以下是我运行剧本时执行流程的步骤
---
- hosts: alpha
vars:
company: vogo
tasks:
- name: debugging
debug:
msg: "{{ansible_hostname}}"
vars_prompt:
- name: "company"
prompt: "Where do you work"
private: no
- hosts: webservers
vars_prompt:
- name: "fathercompany"
prompt: "Where your father works"
private: no
tasks:
- name: test
debug:
msg: just testing "{{company2}}"
1-提示1(您在哪里工作)
2-任务调试
3-提示2(你父亲工作的地方)
4-任务测试
我有一些问题
首先,当我运行这个剧本时,任务“调试”应该首先运行,然后提示应该询问公司名称。但是,当我运行这个剧本时,在第一步,它会问“你在哪里工作?”。
为什么先提示?
我是不是错过了一些我应该通过的参数
第二,我在这里放了两个提示
我想在webserver
主机块中使用提示值company
。但当我尝试这样做时,它给了我错误
我不能将提示值从一个主机块使用到另一个主机块吗
第三,
如何在角色中使用提示?
vars\u prompt
绑定到特定的剧目,因此不能直接在其他剧目中使用。尽管您可以在第一个播放中使用set\u fact
为某些主机设置事实,并在以后的播放中通过hostvars
访问它
提示在每次播放开始时执行,无论您将vars_prompt
block放置在何处,都是在tasks
部分之前或之后执行的(毕竟这是一个YAML字典,其中键序列没有任何意义)
我建议完全不要使用提示,如果您需要一些外部数据,请通过。提示通常最适合于敏感数据,如最好不使用磁盘、命令行参数和环境变量(如果可能)的密码。