Ansible - 如何将上一个提示的答案包含到下一个提示中

Ansible - How to include answer from previous prompt into next prompt

我正在编写剧本,我从控制台获取变量值。我试图在第二个问题的提示中使用第一个问题的答案。但这是行不通的。可以这样做吗?

这是我试过的。

vars_prompt:

    - name: acl_username
      prompt: "User name for ACL"
      private: no

    - name: acl_password
      prompt: "Password for "
      #      prompt: "Password for {{ acl_username }}"
      private: yes

我确实知道在我的初始测试中,密码会被显示,但一旦我开始工作,我会搜索如何不输出任务详细信息。

谢谢

您需要在任务中提示用户输入,而不是在 vars_prompt 部分; vars_prompt 中的变量在 收集完所有数据后才可用。

您可以使用命名不当的 pause 模块来提示用户在任务中输入。例如:

- hosts: localhost
  gather_facts: false
  tasks:
    - name: get username
      pause:
        prompt: "User name for ACL"
        echo: true
      register: acl_username

    - name: get password
      pause:
        prompt: "Password for {{ acl_username.user_input }}"
        echo: false
      register: acl_password

    - debug:
        msg:
          - "{{ acl_username.user_input }}"
          - "{{ acl_password.user_input }}"

运行 这看起来像:

PLAY [localhost] *****************************************************************************************************************************************************************************

TASK [get username] **************************************************************************************************************************************************************************
[get username]
User name for ACL:
ok: [localhost]

TASK [get password] **************************************************************************************************************************************************************************
[get password]
Password for alice (output is hidden):
ok: [localhost]

TASK [debug] *********************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": [
        "alice",
        "secret"
    ]
}

PLAY RECAP ***********************************************************************************************************************************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0