在Ansible中,可以使用Jinja2模板语言来评估变量内容。Jinja2是一个现代的、健壮的模板引擎,类似于Django的模板引擎。
以下是一个示例:
- hosts: web_servers
vars:
version: 1.0
port: 8080
tasks:
- name: Copy files with evaluated variables
template:
src: templates/app.j2
dest: /opt/app/
vars:
app_name: "my_app_{{ version }}"
app_port: "{{ port }}"
在这个示例中,我们使用了Jinja2模板语言来评估变量内容。我们定义了两个变量,一个是版本号,另一个是端口号。然后我们使用“template”模块来从Jinja2模板文件中复制文件。在模板中,我们引用了变量,并在变量中嵌入了Jinja2表达式。例如,“app_name”变量由“my_app_{{ version }}”的Jinja2表达式组成,其中“{{ version }}”将被版本变量的实际值替换。同样,我们使用“{{ port }}”将端口号变量的实际值嵌入到“app_port”变量中。
这就是如何在Ansible中使用Jinja2模板语言评估变量内容的示例。