模板管理
用于定义配置文件。Ansible将jinja2模板系统用于模板文件。Ansible还使用jinja2语法来引用playbook中的变量。
{# 这是一个注释 #}
{
{ ansible_facts['default_ipv4']['address'] }} {
{ ansible_facts['hostname'] }}
[root@ansible ansible]# vim playbook/test.yml
---
- hosts: '192.168.111.142'
tasks:
- name: test
template:
src: files/hosts
dest: /etc/hosts
[root@apache ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.111.142 apache
jinja2模板由多个元素组成:数据、变量和表达式。在呈现jinja2模板时,这些变量和表达式被替换为对应的值。模板中使用的变量可以在playbook的vars部分中指定。可以将受管主机的事实用作模板中的变量。
可以使用ansible system_hostname -i inventory_file -m setup命令来获取与受管主机相关的事实。
演示了如何使用变量及Ansible从受管主机检索的事实创建/etc/ssh/sshd_config的模板。执行相关的playbook时,任何事实都将被替换为所配置的受管主机中对应的值。
template模块还允许指定已部署文件的所有