从ansible中的模板文件访问变量

Accessing variables from template file in ansible

我有一个任务:

- name: Copy celeryconfig.py to "proj_dir/monitor/"
  copy:
    src="templates/repo/celeryconfig.py.j2"
    dest={{proj_dir}}/monitor/celeryconfig.py 
  run_once: true

存储它的变量vars\mail.yml。在此文件中,我定义了 rabbitmq_app_user、rabbitmq_app_pass、rabbitmq_app_vhost。

和模板文件:

BROKER_URL = "apmq://{{rabbitmq_app_user}}:{{rabbitmq_app_pass}}@IP/{{rabbitmq_app_vhost}}"

但是当我 运行 剧本时,结果看起来与模板文件中的完全一样。似乎我尝试访问 /vars/main.yml 中定义的变量的方式不正确。在我的案例中访问变量的正确方法是什么?

如果你想在 Ansible 中使用 jinja 模板,你还必须使用 template 模块。尝试这样的事情:

- name: Copy celeryconfig.py to "proj_dir/monitor/"
  template:
    src: "repo/celeryconfig.py.j2"
    dest: "{{ proj_dir }}/monitor/celeryconfig.py"
  run_once: true