You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ansible中通过vars_prompt传递变量值至roles

Ansible vars_prompt传递变量到roles的问题解决

需求可行性

完全可行,通过vars_prompt获取的输入变量可以直接用来动态指定要执行的Ansible role。

错误原因及解决方法

你遇到的Error! environment is undefined错误是变量名拼写错误导致的:在roles字段中你写的是{{ environmet }},但实际定义的变量名是environment(少了一个字母n)。

修正后的完整playbook如下:

- name: Topic creation
  hosts: all
  vars_prompt:
    - name: environment
      prompt: "Enter the environment"
      private: no
  roles:
    - "{{ environment }}"

额外注意事项

  • 确保输入的environment值与你本地roles目录下的role名称完全匹配,否则会出现找不到role的错误。
  • 如果需要对输入值做校验,可以在vars_prompt中添加validate参数,比如限制输入只能是合法环境值:
    vars_prompt:
      - name: environment
        prompt: "Enter the environment (dev/test/prod)"
        private: no
        validate: "{% if not (value in ['dev', 'test', 'prod']) %}fail{% endif %}"
    

内容的提问来源于stack exchange,提问作者Srikanth Venugopalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:05:43