自动化运维ansible(ansible-playbook)

一、ansible-playbook的构成

Inventory:主机列表,表示剧本中的任务要应用在哪些主机上;
Tasks:具体任务,即调用哪些模块完成操作,可以配置多个任务;
Variables:变量,包含内置变量和自定义变量;
Templates:模板,即使用模板语法来灵活变更配置文件;
Handlers与notify:触发器,由某事件触发执行的操作,比如修改配置文件后自动重启服务;

二、语法要求

(1)playbook本质是包含了一个或多个play的YAML配置文件,通常以.yaml或者.yml结尾;
(2)在单一的playbook文件中,使用连续的三个中横线(---)作为每个play的区分;
(3)缩进必须统一,不能空格和tab混合使用,缩进级别需要一致,同样的缩进代表同样的级别;
(4)冒号:冒号后面需要空格,除非以冒号结尾;
(5)短横杠:列表项,后面跟空格;
(6)缩进两个字符,默认的tab键是四个字符,所以要使用tab键,需要修改.vimrc;
[root@ansible ~]# vim /root/.vimrc
set tabstop=2

三、参数说明

--check | -C:只检测可能会发生的改变,但不真正执行操作;
--list-hosts:列出运行任务的主机;
--list-tags:列出playbook文件中定义的所有tags;
--list-tasks:列出playbook文件中定义的所有任务;
--syntax-check:语法检查
--limit:主机列表,只针对主机列表中的某个主机或者某个组执行;
-f:指定并发数,默认为5个;
-t:指定tags运行,运行某一个或者多个tags,前提是playbook中有定义tags;

四、示例

[root@192 ansible]# cat playbook01.yml
---                       #固定格式
- hosts: harbor      #定义需要执行的主机或主机组remote_user: root       #远程用户vars:                   #定义变量http_port: 8088       #变量tasks:                  #定义一个任务- name: create new file          #定义任务的名称file: name=/tmp/playtest.txt state=touch   #调用模块,具体要做的事情- name: install packageyum: name=httpd- name: config httpdtemplate: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd/conf/httpd.confnotify:   #触发器,当条件触发后需要做的操作,配合handlers使用- restart apache  #需要引用的handlers的名字- name: copy index.htmlcopy: src=/var/www/html/index.html dest=/var/www/html/index.html- name: start httpdservice: name=httpd state=startedhandlers:   #notify定义的触发执行相应的处理动作- name: restart apache                     #要与notify定义的内容相同service: name=httpd state=restarted      #触发要执行的动作

在这里插入图片描述
巡检示例:

[root@192 ansible]# cat os.yml
- hosts: harborgather_facts: notasks:- name: 'tongji'shell: |-echo "cpu型号: `cat /proc/cpuinfo | grep  name |uniq |awk '{print $6,$7}'`"echo "cpu个数:`cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l`"echo "cpu总核数: `grep -c 'model name' /proc/cpuinfo`"echo "物理内存总量:`free -h | grep Mem | awk '{print $2}'`"echo "已使用内存总量(操作系统):`free -h | grep Mem | awk '{print $3}'`"echo "剩余内存总量(操作系统):`free -h | grep Mem | awk '{print $7}'`"echo "操作系统磁盘总量:`df -Th |grep -E /yn$ | awk '{ print $3}'`"echo "操作系统磁盘可用量:`df -Th |grep -E /yn$ | awk '{ print $5}'`"register: taskResult- name: 'check resoult'debug: var=taskResult.stdout

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

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

相关文章

Unity protobuf中repeated转C#文件List只读问题

Unity protobuf中repeated转C#文件List只读问题 介绍问题解决方案总结 介绍 工具这里我就不多介绍了,如果有用到ProtoGen工具的可以继续看一下我后面的方法。 问题 如下图所示,我这里随便用了一个.proto文件,看下我这里面的repeated标记的…

虚拟机VMware Workstation Pro安装配置使用服务器系统ubuntu-22.04.3-live-server-amd64.iso

虚拟机里安装ubuntu-23.04-beta-desktop-amd64开启SSH(换源和备份)配置中文以及中文输入法等 ​一、获取Ubuntu服务器版 获取Ubuntu服务器版 二、配置虚拟机 选择Custom(advanced): 选择Workstation 17.x: 选择“I will install the operating system later.”…

数据驱动的智能决策:数字孪生在企业中的应用

数字化转型如今如火如荼,企业和组织都在积极寻求新的技术和策略,以应对快速变化的商业环境。在这个数字化浪潮中,数字孪生技术崭露头角,为企业带来了前所未有的机遇和优势。 数字孪生,是一种基于虚拟化和模拟的技术&a…

Postman —— postman的介绍和安装

Postman的介绍 Postman 是一款谷歌开发的接口测试工具,使API的调试与测试更加便捷。 它提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数 headers postman是一款支持http协议的接口调试与…

TCP网络通信

TCP通信的 实现发1收1 package TCP1;//完成TCP通信的 实现发1收1import java.io.DataOutputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket;public class Client {public static void main(S…

酷开科技丨大屏购物买买买,酷开系统助力网购模式再升级

随着技术的发展和家庭场景智能化的趋势,消费者对品质和体验的需求不断提高。在这一背景下,OTT大屏营销生态得到了快速发展,大屏的购物功能进一步被释放,已经具备更强的“转化”能力。电视的智能化、交互简单化、账号同步化等特性使…

HashMap源码解析_jdk1.8(二)

HashMap源码解析_jdk1.8(二)构造函数put方法resize扩容方法 HashMap源码解析_jdk1.8(二) 构造函数 HashMap提供了如下几个构造函数: /*** 构造一个具有指定初始容量和负载因子的空HashMap.** param initialCapacit…

Go之流程控制大全: 细节、示例与最佳实践

引言 在计算机编程中,流程控制是核心的组成部分,它决定了程序应该如何根据给定的情况执行或决策。以下是Go语言所支持的流程控制结构的简要概览: 流程控制类型代码if-else条件分支if condition { } else { }for循环for initialization; con…

若依和芋道

国外卷技术,国内卷业务,做管理业务通常使用开源框架就可以快速满足,若依和芋道都是开源二开工具较为流行的框架,芋道是基于若依的,基本上是开发人员自己写业务开发框架的天花板,两者的前端都是基于vue-element-admin的,使用Gitee上两者的SpringBoot的最轻量化版本进行对…

【C++那些事儿】函数重载与C++中的“指针“——引用

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,我之前看过一套书叫做《明朝那些事儿》,把本来枯燥的历史讲的生动有趣。而C作为一门接近底层的语言,无疑是抽象且难度颇…

PDF Reader Pro v2.9.8(pdf编辑阅读器)

PDF Reader Pro是一款PDF阅读和编辑软件,具有以下特点: 界面设计简洁,易于上手。软件界面直观清晰,用户可以轻松浏览文档,编辑注释和填写表单。功能强大,提供了多种PDF处理工具,包括阅读、注释…

保护公司数据安全的措施

保护公司数据安全的措施 互联网时代,数据安全对企业而言是非常重要的,数据是每个组织的命脉,保护好数据安全企业才能稳定长久的发展下去,很多企业就是因为不重视数据安全防护,导致数据泄露从而遭受了很大的损失。因此…

吃瓜教程2|线性模型

线性回归 “广义的线性模型”(generalized linear model),其中,g(*)称为联系函数(link function)。 线性几率回归(逻辑回归) 线性判别分析 想让同类样本点的…

MySQL -- 库和表的操作

MySQL – 库和表的操作 文章目录 MySQL -- 库和表的操作一、库的操作1.创建数据库2.查看数据库3.删除数据库4.字符集和校验规则5.校验规则对数据库的影响6.修改数据库7.备份和恢复8.查看连接情况 二、表的操作1.创建表2.查看表结构3.修改表4.删除表 一、库的操作 注意&#xf…

LeetCode2409——统计共同度过的日子数

博主的解法过于冗长,是一直对着不同的案例debug修改出来的,不建议学习。虽然提交成功了,但是自己最后都不知道写的是啥了哈哈哈。 package keepcoding.leetcode.leetcode2409; /*Alice 和 Bob 计划分别去罗马开会。给你四个字符串 arriveA…

分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测

分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测 目录 分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据…

访问控制2

文章目录 主要内容一.Role和ClusterRole1.ClusterRole示例,创建一个名为test-clusterrole且仅有创建Pod和deployment的集群角色代码如下(示例): 2.YAML文件创建代码如下(示例): 3.将udbs用户和Clusterrole进行绑定&…

032-第三代软件开发-Popup弹窗

第三代软件开发-Popup弹窗 文章目录 第三代软件开发-Popup弹窗项目介绍Popup弹窗官方示例项目中的代码 之前写过一个Popup抄抄别人的dimvisible 和 Open 区别 与 Dialog有啥区别其他总结一下 关键字: Qt、 Qml、 Popup、 弹窗、 modal 项目介绍 欢迎来到我们的…

【计算机网络】TCP 协议的相关特性

TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的协议。以下是TCP协议的相关特性: 可靠性:TCP通过确认和重传机制保证数据的可靠传输。 面向连接:TCP在传输数据前需要先建立连接。连接的建立过程包括三次握手…

号外!百度Comate代码助手全新上线SaaS服务 - 免费申请试用+深入教程解读!

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…