是否可以用“是”和“否”问题提示用户?我确信有,但我需要它在回答“是”时安装软件包,在回答“否”时跳过软件包。如何有效地做到这一点?谢谢。
答案1
可以在运行剧本时向用户提问。使用vars_prompt
。
---
- hosts: all
vars_prompt:
- name: username
prompt: "What is your username?"
private: no
- name: password
prompt: "What is your password?"
tasks:
- debug:
msg: 'Logging in as {{ username }}'
布尔值的示例:
---
- hosts: all
vars_prompt:
- name: install_apache
prompt: "Install Apache?"
private: no
tasks:
- apt:
name: apache2
state: present
when: install_apache
根据此特定示例的用例,可能是动态库存使用特定定义的变量是一个更好的解决方案。
我不同意每次剧本应该不是以交互方式运行。安装包的示例可能不太相关,因为它与基础设施即代码, 方法。
我们还有一系列其他用例:
- 自动执行日常任务。
- 负载测试准备。
- 持续集成/持续部署。
- [...]
答案2
Ansible 剧本应该以非交互方式运行。
您想使用变量来做出这种决定。