Ansible教程

Ansible 模板

Ansible 模板

Ansible 用于管理多个服务器和环境的配置。但是这些配置文件可能因每个集群或远程服务器而异。但是除了几个参数之外,所有其他设置都将相同。
为这些配置中的每一个创建静态文件并不是一个有效的解决方案。这会花费很多时间,而且每次添加一个新的集群,那么就必须添加更多的文件。如果有一种有效的方法来管理这些动态值,那将是有益的。这就是 Ansible 模板模块发挥作用的地方。
模板是一个包含所有配置参数的文件,但动态值在 Ansible 中作为变量给出。在 playbook 执行过程中,取决于您使用的集群等条件,变量将被替换为相关值。
您可以做的不仅仅是在 Jinj2 的帮助下替换变量模板引擎。您可以使用循环、条件语句、编写宏、用于转换数据的过滤器、进行算术计算等。
通常,模板文件将具有 .j2 扩展名,这表示使用的 Jinja2 模板引擎。
双花括号表示模板文件中的变量,'{{variables}}'。
使用时我们需要有两个参数Ansible 模板模块,如:
src: 模板文件的来源。它可以是相对路径和绝对路径。 dest: Dest 是远程服务器上的目标路径。

模板模块属性

以下是一些其他参数,可用于更改模板模块的某些默认行为:
强制: 如果目标文件已经存在,则强制参数将决定是否应该替换它。默认情况下,该值为 yes。 Mode: 此参数用于明确设置目标文件的权限。 备份: 如果要在目标目录中创建备份文件,则应将备份参数的值设置为 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中的两个变量。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4