首页 > 解决方案 > 如何为跳过的播放禁用 vars_prompt?

问题描述

我正在播放“partial_upgrade.yml”,它有 vars_prompt 来提示用户输入。

我将这个剧本导入到另一个剧本“choose_play.yml”中,该剧本根据条件导入。

即使“partial_upgrade.yml”被跳过,它也会提示用户输入。

1. choose_play.yml
---
- hosts: localhost
  vars_prompt:
    - name: "option"
      prompt: |
         >>> 1. Partial Upgrade
         >>> 2. Full Upgrade
         >>> Enter the option which you want to run -
      private: no

  tasks:
    - set_fact:
        option: "{{ option }}"
    - debug:
        var: option

- import_playbook: partial_upgrade.yml
  vars:
    partial_upgrade: true
    full_upgrade: false
  when: hostvars["localhost"]["option"]|int == 1

- import_playbook: full-upgrade.yml
  vars:
    partial_upgrade: false
    full_upgrade: true
  when: hostvars["localhost"]["option"]|int == 2


2. deploy.yml
---
- hosts: nodes
  gather_facts: false
  sudo: true
  vars_prompt:
     - name: "server_ip"
       prompt: "Enter Server IP"
       private: no

     - name: "server_path"
       prompt: "Enter Server path"
       private: no

  roles:
    - setup-master
    - setup-worker

当我运行“choose_play.yml”并按 2 时,它会跳过“partial_upgrade.yml”但提示输入“服务器 IP”和“服务器路径”。

我不想输入跳过播放的详细信息。

请帮助我在跳过播放时禁用 vars_prompt。

标签: ansible

解决方案


推荐阅读