Linux企业实战-ansible(47、48)模板jinja2

首先在server4中安装redis然后启动redis

然后修改redis的6379.conf的配置文件

如果我们的ansible主机如何修改上百台电脑的redis监听端口保证每一台都能监听到自己的主机

实验要求:我们需要保证每一条电脑都安装了redis

我们要利用模板生成我们需要的东西

这样我们的server4的主机的6379文件就会被修改

接下来我们利用playbook来解决上述问题

如果想要解决上述问题,我们可以先创建一个“模板“文件,ansible会根据“模板“文件,为每一台主机生成对应的配置文件,大致步骤如下:
1、找一个现成的redis配置文件,作为“模板”文件,你可以从之前安装过redis的主机中拷贝一份,也可以从redis
的rpm包中提取一份。
2、修改模板文件,将IP设置部分使用变量进行替换。
3、使用ansible调用“template“模块,对“模板文件“进行渲染,根据模板生成每个主机对应的配置文件,并将最终生成的配置文件拷贝到目标主机中

由于template模块还负责将最终生成的文件拷贝到远程主机上,所以还有一些常用的参数,可以用于设置配置文件的权限,如下:
owner参数:指定最终生成的文件拷贝到远程主机后的属主。
group参数:指定最终生成的文件拷贝到远程主机后的属组。
mode参数:指定最终生成的文件拷贝到远程主机后的权限,如果你想将权限设置为“rw-r--r--",则可以使用
mode=0644表示,如果你想要在user对应的权限位上添加执行权限,则可以使用mode=u+x表示

除了上述参数,还有如下参数也很常用
force参数:当远程主机的目标路径中已经存在同名文件,并且与最终生成的文件内容不同时,是否强制覆盖,可选值有yes和no,默认值为yes,表示覆盖,如果设置为no,则不会执行覆盖拷贝操作,远程主机中的文件保持不变。
backup参数:当远程主机的目标路径中已经存在同名文件,并且与最终生成的文件内容不同时,是否对远程主机的文件进行备份,可选值有yes和no,当设置为yes时,会先备份远程主机中的文件,然后再将最终生成的文件拷贝到远程主机

jinja2基本语法:
{{}}:用来装载表达式,比如变量、运算表达式、
比较表达式等。
{%%}:用来装载控制语句,比如if控制结构,for
循环控制结构。
{##}:用来装载注释,模板文件被渲染后,注释不会包含在最终生成的文件中

我们添加表达式

我们也可以放上逻辑运算符

渲染之后

利用test3表达式对test进行渲染

也可以利用列表进行渲染

不同的数据类型进行渲染

运行结果

将jinja2中的变量定义在playbook中

然后启动我们的ansible的playbook脚本

结果test里面的内容为ABC

我们也可以将判断语句写到里面

注释的信息代码不会被执行

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值