我想在确认用户后安装 MariaDB。我有一个角色和一个简单的任务:
- name: install MariaDB
yum: name: MariaDB state: present
或者如果我想使用include: MySQL.yml
,如果用户愿意,则执行这一行,如果不愿意,则跳过此项包含。
- name: install MariaDB
yum: name: MariaDB state: present
- include: MySQL.yml
答案1
您必须使用 var 文件 yml 并检查 yaml 示例的 when 语句中的变量:
- name: Conditionally decide to load in variables into 'plans' when x is 0, otherwise do not. (2.2)
include_vars:
file: contingency_plan.yml
name: plans
when: x == 0
当 x = 0 时....
或者您可以在运行 ansibleplaybook 之前设置环境变量并从中读取它
msg="{{ lookup('env','HOME') }}
管理when语句中使用的局部变量
另一种方法是提示用户输入 Expect 的输入,但这不是一个好的做法
- name: Case insensitve password string match
expect:
command: passwd username
responses:
(?i)password: "MySekretPa$$word"
如果不理解:这里有一个真正的是/否示例:
---
- name: Test from prompt
hosts: localhost
vars_prompt:
- name: "check_mode"
prompt: "Check mode: yes(default)=check-only, no=execute commands"
private: no
default: true
tasks:
- name: msg="False test | {{ check_mode }}"
debug: var=check_mode
when: not check_mode
- name: msg="True test | {{ check_mode }}"
debug: var=check_mode
include yourfile.yml
when: check_mode