Ansible之Playbook的Template模板和tags标签

文章目录

    • 一、Template模块
      • 1、准备template模板文件
      • 2、修改主机清单文件
      • 3、编写playbook
      • 4、执行playbook
      • 5、准备测试网页
      • 6、访问测试
    • 二、tags模块
      • 1、编写脚本
      • 2、执行tags="xx01"
      • 3、执行tags="xx02"

一、Template模块

  • Jinja是基于Python的模块引擎。Template类是Jinja的一个重要组件,可以看做是一个编译过的模板文件,用来产生目标文本,传递Python的变量给模板去替换模板中的标记。
  • 是一种创建配置文件的工具,在配置文件中,有一些数据会有动态的改变(如:ip、主机名、端口、用户、页面路径等)需要使用变量来表示
  • template模块就是将变量和动态文件结合起来,最终生成一个配置文件(需要动态改变)
  • 文件配置使用jinjia2模板语言编写,一定是以.j2结尾

1、准备template模板文件

  • 先准备一个以.j2为后缀的template模板文件,设置引用的变量
  • 模板文件使用test1曾用的httpd.conf配置文件
cp nginx.conf nginx.conf.j2
#准备以.j2结尾的配置文件#编辑配置文件
vim nginx.conf.j2
listen      {{nginx_port}};
#39行,修改监听端口自定义变量
server_name {{server_name}};
#41行,修改主机名自定义变量
root        {{root_dir}};
#42行,修改页面路径自定义变量

image-20240508140631397

2、修改主机清单文件

  • 修改主机清单文件,使用主机变量定义一个变量名相同,而值不同的变量
#修改主机清单配置文件
vim /etc/ansible/hosts [webservers]
192.168.10.12 nginx_port=192.168.10.12:80 server_name=www.liu.com:80 root_dir=/etc/nginx/htdocs
#指定主机访问端口,域名和页面路径[dbservers]
192.168.10.13 nginx_port=192.168.10.13:80 server_name=www.yan.com:80 root_dir=/etc/nginx/htdocs
#指定主机访问端口,域名和页面路径

image-20240508141610370

#远程主机添加主机映射
vim /etc/hosts
192.168.10.12 www.liu.com
192.168.10.13 www.yan.com

image-20240508150047248

3、编写playbook

#编辑yaml剧本
vim deam05.yaml
---
- name: install nginxhosts: allremote_user: rootvars:#定义调用变量- pck: nginx- ser: nginxtasks:- name: install nginx pckyum: name={{pck}} state=latest#调用变量- name: install configure filetemplate: src=/opt/nginx.conf.j2 dest=/etc/nginx/nginx.conf#使用template模板notify:- restart nginx- name: create root dirfile: path=/etc/nginx/htdocs state=directory- name: start nginx serverservice: name={{ser}} enabled=true state=startedhandlers:- name: restart nginxservice: name={{ser}} state=restarted

image-20240508144946290

4、执行playbook

ansible-playbook deam05.yaml
#执行剧本

image-20240508145305372

5、准备测试网页

ansible 192.168.10.12 -m shell -a "echo 'this is template liu' > /etc/nginx/htdocs/index.html"
#准备访问页面ansible 192.168.10.13 -m shell -a "echo 'this is template yan' > /etc/nginx/htdocs/index.html"
#准备访问页面

image-20240508145613465

6、访问测试

curl 192.168.10.12
curl 192.168.10.13
#访问测试curl www.liu.com
curl www.yan.com
#使用域名访问测试时,需要先添加主机映射

image-20240508150318257

二、tags模块

  • 可以在一个playbook中为某个或某些任务定义“标签”,在执行此playbook时通过ansible-playbook命令使用–tags选项能实现仅运行指定的tasks。
  • playbook还提供了一个特殊的tags为always。作用就是当使用always当tags的task时,无论执行哪一个tags时,定义有always的tags都会执行。

1、编写脚本

#使用tags模块编辑yaml脚本
vim deam06.yaml
---
- name: tagshosts: webserversremote_user: roottasks:- name: mkdir directoryfile: path=/opt/liuyanfen/ state=directorytags:- always- name: touch filefile: path=/opt/liuyanfen/test state=touchtags:- xx01- name: copy hosts filecopy: src=/etc/hosts dest=/opt/hoststags:- xx02

image-20240508153631564

2、执行tags=“xx01”

ansible-playbook deam06.yaml --tags="xx01"
#执行标签xx01

image-20240508154042052

  • 验证
ansible webservers -a "ls -l /opt/liuyanfen"
#查看创建的目录文件

image-20240508152132843

3、执行tags=“xx02”

  • 先删除文件夹
ansible webservers -m file -a "path=/opt/liuyanfen/ state=absent"
#先移除创建的文件夹ansible webservers -a "ls -l /opt/liuyanfen"
#查看文件,显示不存在

image-20240508152551208

  • 执行tags=xx02
ansible-playbook deam06.yaml --tags="xx02"
#执行tags=xx02

image-20240508154753705

  • 验证
ansible webservers -a "ls -l /opt/liuyanfen"
#查看创建的目录,tags=alwaysansible webservers -a "ls -l /opt/hosts"
#查看复制的文件,tags=xx02

image-20240508155011682

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米手机怎么截屏?一篇文章教会你!

我们经常需要截取手机屏幕上的内容,无论是为了分享、教学还是记录。对于小米手机用户来说,掌握截屏技巧不仅能够方便地记录精彩瞬间,还能在需要时轻松分享或保存屏幕内容。小米手机怎么截屏,有哪些截屏方式呢?本文将为…

idea快捷键被占用,如何解决ctrl+\ 为例

本来这个这个快捷键ctrl\ 是只有restful 插件才生效的,但是idea升级了之后,多了个 AI Assistant 这样他也有个快捷键是这个, 所以 需要借助 settings - keymap - 直接找到右边的放大镜,可以输入快捷键查询 把ai 那个啥玩意…

什么是香草看涨期权?香草看涨期权有哪些特点?

什么是香草看涨期权?香草看涨期权有哪些特点? 香草看涨期权,通常也称为香草期权,是金融市场上的一种金融衍生品,由券商或金融机构推出。它允许投资者以较小的费用获取相应股票市值的收益权,主要用于风险管…

Python爬虫获取豆瓣电影Top100

大家好,我是秋意零。 今天分析一篇,Python爬虫获取豆瓣电影Top100。 在此之前,我没有学习过爬虫,只有一丢丢的Python基础。下面效果的实现源码几乎没经过我,而是AI百老师。我主要负责了对应的调试以及根据我想要的功…

5月7号(信息差)

🌍首次,西湖大学用蛋白质语言模型定向改造碱基编辑器,登Cell子刊 https://www.jiqizhixin.com/articles/2024-05-07-10 🎄 哈马斯宣布同意停火提议 https://finance.eastmoney.com/a/202405073067687785.html ✨ 中国将对…

吴恩达机器学习笔记:第 9 周-16推荐系统(Recommender Systems) 16.3-16.4

目录 第 9 周 16、 推荐系统(Recommender Systems)16.3 协同过滤16.4 协同过滤算法 第 9 周 16、 推荐系统(Recommender Systems) 16.3 协同过滤 在之前的基于内容的推荐系统中,对于每一部电影,我们都掌握了可用的特征,使用这些特征训练出了…

推荐网站(6)33台词,通过台词找电影、电视剧、纪录片等素材

今天推荐一个网站33台词,你可以根据电影、电视剧、纪录片等某一段台词,来找到来源,帮你精确到多少分多少秒出现的,非常的好用,尤其是对那种只记得一些经典台词,不知道是哪个电影的人来说,帮助巨…

1W 3KVDC 隔离 单输出 DC/DC 电源模块 ——TPF 系列

TPF系列提供输出稳压,精度高,对于输出电压有要求的场合特别适合,工业级环境温度,用于PCB安装的国际标准结构。此系列产品小巧,效率高,低输出纹波及提供3000V以上的直流电压隔离,封装有SIP和DIP可…

网络安全之DHCP详解

DHCP:Dynamic Host Configration Protocol 动态主机配置协议 某一协议的数据是基于UDP封装的,当它想确保自己的可靠性时,这个协议要么选确认重传机制,要么选周期性传输。 DHCP是确认重传,【UDP|DHCP】,当DHCP分配完地…

零售全渠道营销业务链分析,让企业管控能力大幅加强!

对于传统的、规模化的零售快消企业来讲,面临着很大的渠道管理和建设问题,如何尽快实现整个营销体系的全渠道数字化转型是当务之急、重中之重。 面对错综分散的经销商,零售快消企业订货流程会越复杂,加之对门店管理较为粗放&#…

工业镜头助力锂电制造业精准检测

在电动汽车、电动轻型车、电动工具、消费电子和新型储能等行业大发展的背景下,锂电池综合优势与下游领域对电池大容量、高功率、使用寿命和环境保护日益提升的需求相契合,存在广阔的市场应用前景。受益于动力、消费和储能三大细分领域的快速发展&#xf…

C++奇迹之旅:string类对象的修改操作

文章目录 📝string类的常用接口🌠 string类对象的修改操作🌉push_back🌉append🌉operator🌉insert🌉erase🌉replace🌉 find🌉 c_str 🌠测试string…

大数据时代,如何准确查询并解读大数据信用报告?

在互联网时代,个人信息的安全和隐私保护愈发受到人们的关注。随着大数据技术的不断发展,越来越多的人开始关心自己的大数据报告。那么,如何找一个靠谱的地方查询个人大数据报告呢?本文将为您详细解答。 一、先了解大数据报告的含义 首先&…

四、 现行数据出境制度下的三条合规路径是什么?如何判断?

综合《网络安全法》《数据安全法》以及《个人信息保护法》这三大数据合规基本法律要求来看,企业开展数据出境活动时,应结合自身的主体类型、出境数据类型和数量,综合判断是否须要额外(1)申报并通过数据出境安全评估&am…

ASIL详解

概念 随着汽车新四化的发展,整车E/E系统的复杂性也不断增加,功能安全正成为一种更主流的要求。汽车安全完整性等级(ASIL)分解为实现更高水平的诊断覆盖度提供了可靠而稳健的途径,并在开发具有更高ASIL等级的安全关键系…

基于卷积神经网络的信号解卷积(简单版,MATLAB)

简单演示一下基于卷积神经网络的信号解卷积,有个大致印象即可。 构造卷积滤波器 r 0.9; % Define filter om 0.95; a [1 -2*r*cos(om) r^2]; b [1 r*cos(om)]; h filter(b, a, [zeros(1,38) 1 zeros(1,40)]); N 500; K 25; sigma 1; 绘制输入信号分量 s…

LabelImg下载及目标检测数据标注

为什么这一部分内容这么少会单独拎出来呢,因为后期会接着介绍YOLOv8中的其他任务,会使用其他软件进行标注,所以就单独区分开来每一个任务的标注方式了。 这一部分就介绍目标检测任务的标注,数据集是我从COCO2017Val中抽出来两类&a…

移动端自动化测试工具 Appium 之元素操作小技巧

文章目录 一、背景二、TestNG常用注解三、实战3.1、集成启动类3.2、采用xpath定位元素3.3、编写通用判断类3.4、编写测试类3.5、遍历实现 四、总结 一、背景 appium自动化工作中,元素操作最常用的就是Id/xpath,因为【appium1.5.0后,不支持使…

解决在Outlook中预定Teams会议不显示入会链接的问题

今天遇到一个很蛋疼的teams问题,花了点时间才解决。本来以为是很简单的问题,随便网上冲浪一下就能找到答案的,结果根本就没有好的解决方案,所以我分享出来希望后来的老哥少走点弯路。 问题描述 简单来说,就是在Outlo…

IST——In-System-Test

1、背景 安全性是自动驾驶平台的关键特性之一,而这些架构中使用的半导体芯片必须保证ISO 26262标准所要求的功能安全方面。为了监控由于现场缺陷导致的故障,在启动和/或关闭期间会自动运行系统内结构测试。当系统内测试(IST,In-Sy…