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

时间:2016-03-03 10:15:05

标签: variables ansible jinja2

我有一个任务:

- 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}}"

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

1 个答案:

答案 0 :(得分:3)

如果你想在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