在任务文件上使用“vars_prompt”

itm*_*tms 7 yaml ansible ansible-role

vars_prompt尝试在角色内部的任务上使用main.yml但出现错误:

角色“roleName”的tasks/main.yml 文件必须包含任务列表

  vars_prompt:
    - name: 'variableName'
      prompt: "Prompting User "
      private: no
      default: ''

  - name: taskName
    uri:
      url: "{{ variableName }}"
    register: response
    ignore_errors: yes
  - debug:
      var: response
Run Code Online (Sandbox Code Playgroud)

如果我将提示移至剧本,main.yml它会起作用,但我需要能够在任务中完成它。想法?

lar*_*sks 6

vars_prompt只能定义在一场戏上。任务列表之所以如此命名,是因为它只能由任务组成;varsvars_prompt、等元数据hosts只能在播放级别设置。

vars_prompt考虑尽可能避免使用if 。如果您需要用户的输入,请让他们在命令行上使用-e variable=value或在文件中并使用-e @somefile.yml.