如何在运行剧本之前设置确认提示?

如何在运行剧本之前设置确认提示?

我想在确认用户后安装 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

相关内容