gpt4 book ai didi

ansible - 剧本中的 Vars_prompt

转载 作者:行者123 更新时间:2023-12-05 09:18:18 24 4
gpt4 key购买 nike

这是我的剧本,

---
- 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 - 任务测试

我有一些问题。

首先,当我运行这个剧本时,“调试”任务应该首先运行,然后提示符应该询问公司名称。但是,当我运行这个剧本时,在第一步,它会询问“你在哪里工作?”。为什么要先提示?我是否遗漏了某种我应该传递的参数?

其次,我在这里放了 2 个提示,

我想在 webservers 主机 block 中使用提示值 company。但是当我尝试这样做时它给了我错误。

我不能将一个主机 block 的提示值用于另一个主机 block 吗?

第三,

如何在角色中使用提示?

最佳答案

vars_prompt 是绑定(bind)特定play的,不能直接在其他play中使用。虽然您可以在第一个播放中使用 set_fact 为某个主机设置一个事实,并在以后的播放中通过 hostvars 访问它。

提示在每次播放开始时执行,将 vars_prompt block 放在哪里并不重要 - 在 tasks 部分之前或之后(它是之后的 YAML 字典)全部,其中按键序列没有任何意义)。

我建议根本不要使用提示,如果您需要一些外部数据,请通过 extra variables 传递它.

关于ansible - 剧本中的 Vars_prompt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45100377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com