ansible实现template管理变量

本文介绍了Ansible中template的功能,包括如何通过template管理变量,降低任务耦合性,提高协同工作效率。内容涵盖模板templates简介、when条件判断、with_items迭代以及在playbook中使用template与if结合的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上面几章我们已经学会了变量的使用,以及如何书写变量,但是,同学们有没有想过,简单的任务我们的确可以命令行、hosts文件或playbook中简单定义,但是这样同样也提高了耦合性,不利于更多工作或者更多同事的协同办公呢?

而且,其实有时候我们自己定义的变量并不能随着具体的配置来进行动态调整(而template可以),并且变量我们随便定义,也不易于我们管理,那么有没有ansible有没有一个统一的向shell中function一样定义变量的位置呢?其实是有的,那就是template;那么接下来我们开始规范我们的变量,一起来了解ansible中template的使用吧

模板templates简介

    文本文件,嵌套有脚本(使用模板编程语言编写)
	jinja2语言,使用字面量,有下面形式
	   字符串:使用单引号或者双引号
	    数字:整数、浮点数
		列表:[item1,item2,....]
		元组:[item1,item2,....]
		字典:{key1:value1,key2:value2,.....}
		布尔型:true/falue
	算数运算:+,-,*,/,//,%,**
	比较操作:==,!=,>,>=,<,<=                    ####  '//':整除的意思,除完了取整   '%':取模,也叫作取余    '**':幂次方,取指数
	逻辑运算:and,or,not
	流表达式:For  If  When

templates功能

  templates功能:根据模板文件动态生成对应的配置文件
    templates文件必须存放于templates目录下,且命名为.j2结尾
	并且template不能用于ad-hoc的命令行模式
	yaml/yml文件需和templates目录平级,目录结构如下:
	.
    ├── temnginx.yml
    └── templates
        └── nginx.conf.j2
   示例:我们做一个nginx的测试
   ---
   - hosts: ceshi
     remote_user: root

     tasks:
       - name: install package
         yum: name=nginx
       - name: copy template
         template: src=nginx.conf.j2  dest=/etc/nginx/nginx.conf
       - name: start service
         service: name=nginx state=started enabled=yes
    将nginx的配置文件放在我们的templates/nginx.conf.j2里面,并以.j2结尾
    ansible-playbook  temnginx.yml
	[root@ceshi ansible]# ansible -i hosts ceshi -m shell -a "ps -aux|grep nginx"         ###我们看进程都已经起来了
    10.0.194.83 | CHANGED | rc=0 >>
    root     27410  0.0  0.0 120760  2228 ?        Ss   16:29   0:00 nginx: master process /usr/sbin/nginx
    nginx    27411  0.0  0.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值