从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
我有一个任务:
- 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