- jinjia2模板 模板
应用场景
- 批量分发配置的时候,同时修改配置里面内容
- ip,主机名,内存大小,进程数量。。。
- 需要根据不同机器,根据每个机器的配置,动态调整配置文件
- 如果喜欢配置动态变化(fact变量),使用template模块 。
- 如果只是希望配置固定不变,使用copy模块即可。
#01 案例01 修改/etc/motd 批量分发文件
主机名
ip地址
内存
cpu数量
[root@m01 playbook]# cat 14-jinjia-template-motd.yml
- hosts: all
tasks:
- name: fenfa motd
template:
src: motd.j2
dest: /etc/motd
backup: yes
[root@m01 playbook]# cat motd.j2
hostname: {{ ansible_hostname }}
interface_name: {{ ansible_default_ipv4.alias }}
ip_addr: {{ ansible_default_ipv4.address }}
memory_size_total: {{ ansible_memtotal_mb }}
memory_size_avaiable: {{ ansible_memfree_mb }}
#memory_size_avaiable: {{ ansible_memory_mb.real.free }}
vcpus: {{ ansible_processor_vcpus }}
- ansible总结:
- 变量
用户自定义变量(剧本中,存放在指定的文件中(分组) ) ※※※※※
gourp_vars 创建分组、共享变量。 适用于指定全局信息 代码目录 站点目录 配置文件
注册变量 ※※
register 配合着debug(调试)或when(判断)
fact变量 ※
内置变量,一般与jinjia2模板使用(分发配置), when一起使用(判断)
- 判断,循环,触发器
判断:when ※※※
循环:with_items ※※※※ 单个变量 多个变量※※
触发器: notify+handlers ※※※※ 监控模块是否发生变化(配置文件)
- roles、jinjia2模板
- jinjia2模板 分发动态的配置文件。一般与fact变量一起使用。