你可以使用 when: 和 vars_prompt 吗?

Can you use a when: with a vars_prompt?

如果用户在第一个提示中输入 y,我将尝试跳过接下来的三个提示。

---

- name: User MOTD Script
  hosts: localhost
  vars_prompt:

      - name: "defaultMOTD"
        prompt: "Do you want to set the MOTDs to the default? (y/n)"
        private: no

      - name: "MOTD"
        prompt: "Please input your MOTD for /etc/motd: "
        private: no
        when: defaultMOTD != "y"

      - name: "MOTDIssue"
        prompt: "Please input your MOTD for /etc/issue: "
        private: no
        when: defaultMOTD != "y"

      - name: "MOTDIssueNet"
        prompt: "Please input your MOTD for /etc/issue.net: "
        private: no
        when: defaultMOTD != "y"

在第一次提示时输入 y 时的输出。

Do you want to set the MOTDs to the default? (y/n): y
Please input your MOTD for /etc/motd: :
Please input your MOTD for /etc/issue: :
Please input your MOTD for /etc/issue.net: :

应跳过第 2、3 和 4 个提示。

使用pause,例如

---

- name: User MOTD Script
  hosts: localhost
  tasks:

    - name: "defaultMOTD"
      pause:
        prompt: "Do you want to set the MOTDs to the default? (y/n)"
      register: result
    - set_fact:
        defaultMOTD: "{{ result.user_input }}"

    - block:
        - name: "MOTD"
          pause:
            prompt: "Please input your MOTD for /etc/motd"
          register: result
        - set_fact:
            MOTD: "{{ result.user_input }}"
        - name: "MOTDIssue"
          pause:
            prompt: "Please input your MOTD for /etc/issue"
          register: result
        - set_fact:
            MOTDIssue: "{{ result.user_input }}"
        - name: "MOTDIssueNet"
          pause:
            prompt: "Please input your MOTD for /etc/issue.net"
          register: result
        - set_fact:
            MOTDIssueNet: "{{ result.user_input }}"
      when: defaultMOTD != "y"