本文概述
- 模板模块属性
为这些配置中的每一个创建静态文件都不是有效的解决方案。这将花费大量时间,并且每次添加新群集时,都必须添加更多文件。如果有一种有效的方法来管理这些动态值,那将是有益的。这是Ansible模板模块发挥作用的地方。
【ansible模板】模板是一个包含所有配置参数的文件,但是动态值在Ansible中作为变量给出。在执行剧本期间,它取决于条件(例如你正在使用的群集),并且变量将被相关值替换。
除了借助Jinj2模板引擎替换变量之外,你还可以做更多的事情。你可以具有循环,条件语句,写入宏,用于转换数据的过滤器,进行算术计算等。
通常,模板文件将具有.j2扩展名,这表示使用的Jinja2模板引擎。
双花括号将指示模板文件“ {{variables}}”中的变量。
使用Ansible Template模块时,我们需要有两个参数,例如:
- src:模板文件的源。它可以是相对和绝对路径。
- dest:Dest是远程服务器上的目标路径。
- Force:如果目标文件已经存在,则Force参数将决定是否应替换它。默认情况下,该值为yes。
- 模式:此参数用于显式设置目标文件的权限。
- 备份:如果要在目标目录中创建备份文件,则应将backup参数的值设置为yes。默认情况下,该值为no。每当目标目录发生更改时,都会创建备份文件。
- 组:应该拥有目录的组的名称。它类似于在Linux系统中对文件执行chown命令。
在下面的示例中,我们在example1.j2文件上使用模板模块,该模板模块将默认变量替换为剧本中提供的值。
档案:Playbook.yml
---
- hosts: all
vars:
variable1: 'Hello'
variable2: 'My first playbook using template'
tasks:
- name: Basic Template Example
template:
src: example1.j2
dest: /home/knoldus/Documents/Ansible/output.txt
文件:example1.j2
{{variable1}}
No change in this line
{{variable2}}
文件:output.txt
Hello
No change in this line
My first playbook using the template
你可以看到,在上面的示例中,它们的值替换了example1.j2中的两个变量。
推荐阅读
- ansible yaml语法
- ansible shell模块
- ansible模块
- ansible命令备忘单
- ansible使用标签
- ansible变量
- ansible使用角色(Role)
- ansible塔(Tower)
- ansible剧本(Playbook)