【发布时间】:2019-11-01 06:00:12
【问题描述】:
我正在学习 ansible 角色,我正在尝试使用 Jinja2 模板设置角色的变量。但是变量值没有被更新。
这是工作目录 样本
sample
├── README.md
├── defaults
│ └── main.yml
├── files
│ └── main.out
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── tasks
│ └── main.yml
├── templates
│ └── main.j2
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
vars/main.yml 文件夹的内容是
a: 2
b: 3
c: 0
tasks/main.yml的内容是
---
- name: Jagadish Sagi
template:
src: "sample2/templates/main.j2"
dest: "sample2/files/main.out"
- name: Printing value of c
debug:
var: c
templates/main.j2的内容是
{% if a > b %}
{% set c = a %}
{% else %}
{% set c = b %}
{% endif %}
The Value of C : {{c}}
执行角色的代码是
---
- hosts: localhost
roles:
- sample2
在 files/main.out 文件中我得到了输出
The Value of C : 3
但在 ansible playbook 中,将其打印到控制台时会给出
ok: [localhost] => {
"c": 0
}
我知道我只能在 set_fact 和 if else 条件的帮助下使用 ansible 来做到这一点。但是我怎么也可以使用 Jinja2 模板呢??
【问题讨论】: