如何仅对库存中的主机组使用vars_prompt

时间:2017-05-31 06:24:45

标签: ansible

我在vars提示下面的代码片段没有按预期工作。 我试图仅在使用--limit执行playbook时针对特定主机组时提示用户,不应显示所有其他主机和组提示。

以下代码提示我,无论我在小组剧本电话中提供 - 限制。

  vars_prompt:
   - name: playbook_password
     prompt: Please enter the playbook password
     private: 'yes'
     when: ('dbservers' in group_names)

1 个答案:

答案 0 :(得分:4)

vars_prompt受Play限制,因此您无法对其应用任何条件。

您可以在任务内使用pause提示解决方法:

- name: playbook_password task
  pause:
    prompt: Please enter the playbook password
  when: "'dbservers' in group_names"
  register: playbook_password_prompt

- name: set playbook_password fact
  set_fact:
    playbook_password: "{{ playbook_password_prompt.user_input }}"
  when: not playbook_password_prompt | skipped