红帽秘笈,第三十三jinja2模板的使用

本章主要介绍在playbook中如何使用jinja2模板。
什么是jinja2模板
在jinja2模板文件中写if判断语句
在jinja2模板文件中写for循环语句
handlers的使用
可以使用copy模块把本地的一个文件拷贝到远端机器,下面再次复习一下。
本章实验都在/home/lduan/demo4下操作,先把demo4目录创建出来并把ansible.cfg
和hosts拷贝进去,命令如下。

 写一个 playbook,内容如下。

 运行此playbook,命令如下。

这个通过template拷贝的、含有变量的文件我们称为jinja2模板,jinja2模板文件的后缀
一般使用j2,这不是必需的,但是建议使用j2作为后缀。
所以,需要修改aa.txt的文件为aa.j2
同时修改1.yaml中对应的内容,如下所示。

 

查看两台主机上/opt/aa.txt 的内容,命令如下。

[bdqn@rhel13 templates]$ ansible db -m shell -a "cat /opt/aa.txt" 

 练习:写一个 jinja2模板文件,内容如下。

 

这里jinja2模板所生成的文件一共会产生3行内容,第一行的1111和第三行的3333是必打
印出来的,第二行的内容具体是什么要看情况。如果在server2上执行则显示主机名,如果
在其他机器上执行则显示aaaa。
写一个playbook,内容如下

 

这里是把templates/bb.j2拷贝到两台机器的/opt中并命名为bb.conf。运行此
playbook,命令如下。
[bdqn@rhel13 demo4]$ ansible-playbook 2.yaml

 查看两台机器上/opt/bb.conf的内容,命令如下。

[bdqn@rhel13 demo4]$ ansible db -m shell -a "cat /opt/bb.conf"

 写一个playbook,内容如下。

 运行此playbook。命令如下。

[bdqn@rhel13 demo4]$ ansible-playbook 3.yaml

查看两台机器上/opt/cc.conf的内容,命令如下。

[bdqn@rhel13 demo4]$ ansible db -m shell -a "cat /opt/cc.conf" 

 

这里jinja2模板生成的文件有5行内容,第1行和第5行的内容是固定的,为1111和5555。
第2~4行是循环列表list1 中的值,为aa、bb、cc.
写一个 playbook,内容如下。

 

 运行此playbook,内容如下。

[bdqn@rhel13 demo4]$ ansible-playbook 4.yaml

 查看server2 上/opt/dd.conf的内容,命令如下。

[bdqn@rhel13 demo4]$ ansible server2 -m shell -a "cat /opt/dd.conf"

循环每个元素时,只打印元素中的uname变量。写一个名称为5.yaml的playbook,加载
变量文件 users list.txt,命令如下。

 

 

这里通过 template模块把ee.j2拷贝到被管理主机的/opt 中并命名为ee.conf。查看
server2上/opt/ee.conf的内容,命令如下。
[bdqn@rhel13 demo4]$ ansible-playbook 5.yaml

 查看被管理主机的/opt/ee.conf,里面包括users列表中所有的用户名。

[bdqn@rhel13 demo4]$ ansible server2 -m shell -a "cat /opt/ee.txt"

 

相关推荐

  1. ansible_jinja2模板使用

    2023-12-26 12:10:05       45 阅读
  2. Jinja2模板引擎使用指南

    2023-12-26 12:10:05       33 阅读
  3. 节】流程控制do-while使用

    2023-12-26 12:10:05       57 阅读
  4. 四章 XML 模式高级选项

    2023-12-26 12:10:05       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 12:10:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 12:10:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 12:10:05       82 阅读
  4. Python语言-面向对象

    2023-12-26 12:10:05       91 阅读

热门阅读

  1. uniapp中使用axios、uniapp中封装axios

    2023-12-26 12:10:05       57 阅读
  2. 算法训练营Day24

    2023-12-26 12:10:05       62 阅读
  3. ES6之数组新增的扩展

    2023-12-26 12:10:05       62 阅读
  4. ES6-11

    ES6-11

    2023-12-26 12:10:05      43 阅读
  5. 第38节: Vue3 鼠标按钮修改器

    2023-12-26 12:10:05       60 阅读
  6. django的通知和信号量

    2023-12-26 12:10:05       62 阅读
  7. day27 回溯(03)

    2023-12-26 12:10:05       69 阅读
  8. python 1200例——【9】斐波那契数列

    2023-12-26 12:10:05       56 阅读