ansible自动化运维,jinjia2模板(五)

  1. 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 }}


  1. ansible总结:
- 变量
	用户自定义变量(剧本中,存放在指定的文件中(分组) )   ※※※※※ 
		gourp_vars 创建分组、共享变量。 适用于指定全局信息 代码目录 站点目录 配置文件 
	注册变量                                                 ※※ 
		register 配合着debug(调试)或when(判断)
	fact变量                                                  ※
		内置变量,一般与jinjia2模板使用(分发配置), when一起使用(判断)
	
- 判断,循环,触发器
	判断:when               ※※※
	循环:with_items         ※※※※     单个变量 多个变量※※ 
    触发器: notify+handlers  ※※※※ 监控模块是否发生变化(配置文件)
	
- roles、jinjia2模板
  - jinjia2模板 分发动态的配置文件。一般与fact变量一起使用。 

ansible自动化运维,jinjia2模板(五)

上一篇:ffmpeg 给图片画格子(grid)


下一篇:js无法获取.net设置的cookie