个性化阅读
专注于IT技术分析

ansible模板

本文概述

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中的两个变量。


赞(0)
未经允许不得转载:srcmini » ansible模板

评论 抢沙发

评论前必须登录!