-
Ansible-变量-迭代-jinja2模版
- 变量:
- 在ansible中,变量是用来存储和传递数据的容器。
- 这些变量可以包含各种类型的数据,列如数字、字符串、列表、字典。
- 可以增加ansible playbook的灵活性和重用性
- 变量的使用:
- 变量定义的方式:
- 注:在yml文件中使用变量需要使用“”来引住,大括号左右两侧需要空格
- 一.setup模块获取:
- ansible all -m setup -a "gather_subset=network filter=ansible_default_ipv4" (setup模块提供的变量)
- vim demo01.yml
- path: "/tmp/{{ ansible_default_ipv4['address'] }}"
-
- - set_fact:(属性用来定义变量,下方可以引用变量)
- debug:(模块用来输出一个内容) msg:(消息)
- 三.在剧本中通过vars定义变量:
- 注:vars变量要优先于主机清单变量和setup变量
- 四.专用文件定义的属性
- 1.先定义变量文件(.yml文件,文件中的变量为字典形式)
- 五.命令行定义属性:
- ansible-playbook -i hosts.ini demo03.yml -e "t=host66"
- 迭代:
- 在ansible中,可以使用循环来迭代列表、字典等数据结构,并针对每个元素执行特定的任务。
- ansible支持多种类型的迭代语句,包括with_items(列表),loop,with_dict(字典)
- 1.定义列表:
- ansible自动遍历列表元素
-
- when 条件控制:
- “when” 是一个用于tasks的关键字,它用于定义条件以决定是否执行该任务
- "when"关键字允许基于条件来控制任务的执行,这样可以在运行任务之前先判断条件是否成立,如果条件成立就执行任务,否则跳过该任务。
- jinja2模版和template模块:
- 可以在剧本中定义一些需要动态生成的文件,列如配置文件等
- template模块可以把jinja2模版的文件的变量解析之后,复制到客户机
-
- 使用:
- 定义jinja2文件:
- vim server.conf.j2
- 1
- 定义yml文件:
- template模块与copy模块相同的是,都可以将文件远程复制到客户机上,但不同的是 copy模块是原封不动的将文件复制过去,但template模块可以对j2文件中的变量进行传参
- 执行:ansible-playbook -i hosts.ini demo.yml -e "port=8888"
-
相关阅读:
window10环境下搭建ros
麒麟系统修改网卡名步骤和网卡占用故障处理
目标检测YOLO实战应用案例100讲-基于机器视觉的输电线路小目标检测和缺 陷识别
android audio volume 知识点
MySQL数据库基本使用
SystemVerilog学习-07-类的继承和包的使用
分布式定时任务调度
Python算法和数据结构面试指南
java计算机毕业设计校园周边美食探索及分享平台源代码+系统+数据库+lw文档
【设计模式之单例模式二】
-
原文地址:https://blog.csdn.net/2302_77503226/article/details/137951173