自动化运维工具——ansible安装及模块介绍
目录
一、ansible——自动化运维工具
1.1 Ansible 自动运维工具特点
1.2 Ansible 运维工具原理
二、安装ansible
三、ansible命令模块
3.1 command模块
3.2 shell模块
3.3 cron模块
3.4 user模块
3.5 group 模块
3.6 copy模块
3.7 file模块
3.8 ping模块
3.9 service模块
3.10 script模块
3.11 yum模块
3.12 setup模块
一、ansible——自动化运维工具
1.1 Ansible 自动运维工具特点
- Ansible 与 Saltstack 均是基于 Python 语言开发,Ansible 只需要在一台普通的服务器上运行即可,不需要在客户端服务器上安装客户端。因为 Ansible 是基于 SSH 远程管理,而Linux服务器大都离不开SSH,所以Ansible不需要为配置工作添加额外的支持。
- Ansible 安装使用非常简单,而且基于上千个插件和模块实现各种软件、平台、版本的管理,支持虚拟容器多层级的部署。很多读者在使用 Ansible 工具时,认为 Ansible比 Saltstatck 执行效率慢,其实不是软件本身慢,是由于 SSH 服务慢,可以优化 SSH 连接速度及使用 Ansible 加速模块,满足企业上万台服务器的维护和管理。
1.2 Ansible 运维工具原理
- Ansible分为控制端和被控端,主要是基于SSH协议去管理客户端,被控端是无需安装Agent插件的,Ansible会读取控制端hosts文件,根据文件中定义IP列表信息,调取本地的各个模块对被控端机器实现批量、并发的配置管理和维护,如果任务比较复杂可以写成PlayBook剧本进行分发管理;
Ansible 自动运维管理工具优点:
- 轻量级,更新时,只需要在操作机上进行一次更新即可;
- 采用 SSH 协议;
- 不需要去客户端安装 agent;
- 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
- 使用 python 编写的,维护更简单;
- 支持 sudo 普通用户命令;
- 去中心化管理。
二、安装ansible
#192.168.19.2
hostname ansible
su#192.168.19.3
hostname webserver
su#192.168.19.4
hostname mysql
susystemctl stop firewalld
setenforce 0
#安装epel扩展源
yum -y install epel-release
yum -y install ansible
#树型查询工具
yum -y install treetree /etc/ansible
vim /etc/ansible/hosts#配置主机清单
[webservers]
192.168.19.3
[dbservers]
192.168.19.4
#生成密钥对
ssh-keygen -t rsa
123123
123123ssh-copy-id root@192.168.19.3
ssh-copy-id root@192.168.19.4
每次查询都需要输入密钥
#可以使用ssh-agent代理
ssh-agent bash
ssh-add
123123ansible webserver -m command -a 'date'
三、ansible命令模块
3.1 command模块
命令格式:ansible [主机] [-m 模块] [-a args]#列出所有已安装的模块,按q退出
ansible-doc -l #所有主机执行data命令,其中all可以换成IP或者分类名称,例:192.168.19.2 / webserver
ansible all -m command -a 'date' #不加-m模块,则默认使用command模块
ansible all -a 'date'
ansible all -a 'ls /'//常用的参数:
chdir:在远程主机上运行命令前提前进入目录
creates:判断指定文件是否存在,如果存在,不执行后面的操作
removes:判断指定文件是否存在,如果存在,执行后面的操作ansible all -m command -a "chdir=/home ls ./"
3.2 shell模块
//在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一个子shell运行命令(支持管道符号等功能)
ansible-doc -s shellansible dbservers -m shell -a 'echo 123456 | passwd --stdin test'
ansible dbservers -m shell -a 'echo $(ifconfig ens33 | awk "NR==2 {print $2}") | cut -d " " -f2'
ansible dbservers -m shell -a 'echo $(ifconfig ens33 | awk "NR==2 {print \$2}")'
3.3 cron模块
//在远程主机定义任务计划。其中有两种状态(state):present表示添加(可以省略),absent表示移除。
ansible-doc -s cron #按 q 退出//常用的参数:
minute/hour/day/month/weekday:分/时/日/月/周
job:任务计划要执行的命令
name:任务计划的名称ansible webservers -m cron -a 'minute="*/1" job="/bin/echo helloworld" name="test crontab"'
ansible webservers -a 'crontab -l'
ansible webservers -m cron -a 'name="test crontab" state=absent' #移除计划任务,假如该计划任务没有取名字,name=None即可
3.4 user模块
user模块是请求三条指令,useradd,userdel,usermod#模块信息
ansible-doc -s user#创建用户
ansible all -m user -a 'name=yh'#查看用户账户信息
ansible all -m 'command' -a 'tail -1 /etc/passwd'#移除指令
ansible all -m user -a 'name="yh" state=absent'
3.5 group 模块
//用户组管理的模块
ansible-doc -s groupansible dbservers -m group -a 'name=mysql gid=306 system=yes' #创建mysql组
ansible dbservers -a 'tail /etc/group'
ansible dbservers -m user -a 'name=test01 uid=306 system=yes group=mysql' #将test01用户添加到mysql组中
ansible dbservers -a 'tail /etc/passwd'
ansible dbservers -a 'id test01'
3.6 copy模块
对文件进行有效的复制ansible-doc -s copyansible dbservers -m copy -a 'src=/etc/fstab dest=/opt/fstab.back'ansible dbservers -a 'ls /opt'
ansible dbservers -a 'cat /opt/fstab.back'ansible dbservers -m copy -a 'content="hello lic" dest=/opt/test.txt'
ansible dbservers -a 'cat /opt/test.txt'
3.7 file模块
ansible-doc -s fileansible dbservers -m user -a 'name=mysql system=yes'ansible dbservers -m file -a 'owner=mysql group=mysql mode=600 path=/opt/test.txt'
ansible dbservers -a 'ls -l /opt/test.txt'#创建
#ansible dbservers -m file -a 'path=/opt/abc.txt state=touch'ansibledbservers -m file -a 'src=/opt/test.txt path=/opt/test.txt.link state=link'
ansible dbservers -a 'ls -l /opt'#移除文件/opt/test.txt
ansible dbservers -m file -a 'path=/opt/test.txt state=absent'
3.8 ping模块
ansible all -m ping
3.9 service模块
ansible-doc -s service#192.168.19.3执行yum -y install httpd
ansible webserver -a 'systemctl status httpd'ansible webserver -m service -a 'enabled=true name=httpd state=started'systemctl status httpd
systemctl is-enabled httpd
3.10 script模块
ansible-doc -s scriptvim test.sh
#!/bin/bash
echo 'hello ansible from script' > /opt/script.txtchmod +x test.sh
ansible all -m script -a 'test.sh'
3.11 yum模块
ansible-doc -s yumansible dbservers -m yum -a 'name=httpd'
ansible dbservers -a 'rpm -q httpd'ansible dbservers -m yum -a 'name=httpd state=absent'
ansible dbservers -a 'rpm -q httpd'
3.12 setup模块
ansible-doc -s setup#获取MySQL组主机的facts信息ansible dbservers -m setup
相关文章:

自动化运维工具——ansible安装及模块介绍
目录 一、ansible——自动化运维工具 1.1 Ansible 自动运维工具特点 1.2 Ansible 运维工具原理 二、安装ansible 三、ansible命令模块 3.1 command模块 3.2 shell模块 3.3 cron模块 3.4 user模块 3.5 group 模块 3.6 copy模块 3.7 file模块 3.8 ping模…...

Qt XML文件解析 QDomDocument
QtXml模块提供了一个读写XML文件的流,解析方法包含DOM和SAX,两者的区别是什么呢? DOM(Document Object Model):将XML文件保存为树的形式,操作简单,便于访问。 SAX(Simple API for …...

Vue2向Vue3过度Vuex状态管理工具快速入门
目录 1 Vuex概述1.是什么2.使用场景3.优势4.注意: 2 需求: 多组件共享数据1.创建项目2.创建三个组件, 目录如下3.源代码如下 3 vuex 的使用 - 创建仓库1.安装 vuex2.新建 store/index.js 专门存放 vuex3.创建仓库 store/index.js4 在 main.js 中导入挂载到 Vue 实例…...

生产制造型企业BOM搭建分析
导 读 ( 文/ 2358 ) 在上几篇文章中,我们讲到了基础的物料管理方法,在生产制造中,物料作为原材料,通过加工,结构组装成产品。那么加工、组装的依据将来源于设计人员出具的零件清单,也就是我们常说的BOM。 …...

大数据课程K11——Spark的数据挖掘机器学习
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的概念——数据挖掘; ⚪ 了解Spark的概念——机器学习; ⚪ 了解Spark的概念——深度学习; ⚪ 了解Spark的概念——人工智能; ⚪ 了解Spark的概念——数据挖掘体系; ⚪ 掌…...

【PHP面试题81】php-fpm是什么?它和PHP有什么关系
文章目录 🚀一、前言,php-fpm是什么🚀二、php-fpm与PHP之间的关系🚀三、php-fpm解决的问题🔎3.1 进程管理🔎3.2 进程池管理🔎3.3 性能优化🔎3.4 并发处理 🚀四、php-fpm常…...

MyBatis分页查询与特殊字符处理
目录 目录 一、引言 1.1 简介Mybatis 1.2分页查询的重要性 1.3MyBatis特殊字符处理的挑战 挑战1:SQL注入漏洞 挑战2:查询结果异常 挑战3:数据完整性问题 挑战4:跨平台兼容性 挑战5:用户体验 如何应对挑战 二…...

Docker Desktop 笔记
https://blog.csdn.net/qq_39611230/article/details/108641842 https://blog.csdn.net/KgdYsg/article/details/118213499 1、修改配置 {"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://…...

VS2022 C++修改Window系统DNS源代码V2.0
这是自己使用VS2022 C++编写开发的Window系统下修改DNS脚本程序第2个版本,适合Win10系统和Win7系统。cfg.txt文件存放要修改的DNS,最多4个。 详细源代码如下: setdns.cpp /* 1.全部清空DNSstring strParameter;strParameter = "netsh interface ip delete dns name=\…...

科技的成就(五十)
389、"IBM 提交给哈佛大学" "1944 年 8 月 7 日,“哈佛马克一号”正式由 IBM 提交给哈佛大学。“哈佛马克一号”最初的概念是由霍华德艾肯在 1937 年 11月向 IBM 提出的,经过 IBM 工程师的可行性研究,大约在签订第一份合约 7年…...

一文讲明白C++中的结构体Struct和类Class的区别以及使用场景
一文讲明白C中的结构体Struct和类Class的区别以及使用场景 文章目录 一文讲明白C中的结构体Struct和类Class的区别以及使用场景一、C中的结构体Struct二、C中的类Class三、结构体Struct和类Class之间的区别以及各自使用场景 一、C中的结构体Struct 在C中,结构体&…...

etcd学习入门
etcd有哪些独特的特性 etcd作为一个分布式键值存储系统,具有一些独特的特性,使其在分布式系统中得到广泛应用。以下是etcd的一些独特特性: 一致性: etcd使用Raft一致性算法来确保数据的一致性和可靠性。Raft算法能够处理网络分区、节点故障和…...

pyqt点击按钮执行脚本
class NineGridApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle(测试常见的操作) self.setGeometry(100, 100, 1800, 1800) layout QGridLayout() # 创建一个3x3的二维数组 rows 3 cols 3 array_2d [[0 for _ …...

9.oracle中sign函数
在Oracle/PLSQL中, sign 函数返回一个数字的正负标志. 语法如下:sign( number ) number 要测试标志的数字. If number < 0, then sign returns -1. If number 0, then sign returns 0. If number > 0, then sign returns 1. 应用于: Oracle 8i, Oracle …...

LVS DR模式搭建
目录 一、DR模式概述 一、与NET模式的区别 二、操作命令图 三、搭建流程 一、首先配置三台虚拟机并配置环境(关闭防火墙,宽容模式) 二、ping通百度 三、在115.3的(lvs)虚拟机上安装 ipvsadm 四、调整ARP参数 五…...

jmeter传参base64卡顿如何解决
部分接口需要传图片base64格式参数,但是输入转为base64格式的图片参数,jmeter直接卡死,甚至电脑也卡死,此时,只需要去掉文件头描述:data:image/jpeg;base64, 即可...

JAVA-编程基础-10-集合
Lison <dreamlison163.com>, v1.0.0, 2023.04.23 JAVA-编程基础-10-集合 文章目录 JAVA-编程基础-10-集合List、Set、Map、队列全面解析ListArrayList创建ArrayList 向ArrayList中添加元素 List、Set、Map、队列全面解析 Java 集合框架可以分为两条大的支线:…...

Unity实现倒计时和获取系统时间
一:创建UGUI 1.创建Canvas画布组件,调节Canvas画布的分辨率等其他设置。我们可以把视图设置为2D模式下。 2.创建Text文本组件,取名为Timer计时器,我们调整Text文本组件的大小,用锚点设置Text文本组件的位置,并且设置好Text文本组件的颜色。 3.我们再创建一个Text文…...

Unity 之 Time.deltaTime 的详细介绍以及用法
文章目录 Time.deltaTime 是什么?Time.deltaTime 有什么用?移动游戏对象:控制动画播放速度:实现平滑的计时器和延时: Time.deltaTime 是什么? “DeltaTime”(也被称为 “Delta Time”ÿ…...

十四、Ubuntu中如何更换pip国内镜像源?以及设置软链接
前言:在配置之前,一定要给虚拟机拍照,以防万一!!! 1、安装pip3 输入: sudo apt-get install python3-pip2、建立软链接 输入: sudo ln -s /usr/bin/pip3 /usr/bin/pip一般会出现…...

Spring Boot+Atomikos进行多数据源的分布式事务管理详解和实例
文章目录 0.前言1.参考文档2.基础介绍3.步骤1. 添加依赖到你的pom.xml文件:2. 配置数据源及其对应的JPA实体管理器和事务管理器:3. Spring BootMyBatis集成Atomikos4. 在application.properties文件中配置数据源和JPA属性: 4.使用示例5.底层原理 0.前言 背景&#x…...

地上集装箱式村庄污水处理设备厂家价格
诸城市鑫淼环保小编带大家了解一下地上集装箱式村庄污水处理设备厂家价格 废水经水解酸化池后自流到生物接触氧化池,接触氧化法是一种好氧生物膜法工艺,微生物以生物膜形式及悬浮态生长于水中.它兼具活性污泥及生物滤池二者的特点.在生物接触氧化池中有机碳水化合物被分解成C0和…...

ASIC-WORLD Verilog(13)状态机FSM
写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----Asic-World网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加点自己的理解)分享给大家。 这是网站原文&…...

设置微软Edge浏览器主页和新标签页,摆脱扰人和分散注意力的主页
默认情况下,Microsoft Edge会向您显示世界上最令人分心和讨厌的主页(也称为主屏幕)。微软不想只向你展示一个搜索框,也许还有一个漂亮的背景或一些你喜欢的网站的快捷方式,而是想在你面前扔一堆新闻标题和广告。 你可能会打开浏览器阅读电子邮件,结果被Microsoft Edge主…...

视频汇聚平台EasyCVR安防视频监控平台新增经纬度选取功能的详细介绍
视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、…...

HCIP-HCS华为私有云的使用
1、概述 HCS(HuaweiCoudStack)华为私有云:6.3 之前叫FusionSphere OpenStack,6.3.1 版本开始叫FusionCloud,6.5.1 版本开始叫HuaweiCloud Stack (HCS)华为私有云软件。 开源openstack,发放云主机的流程&am…...

深度学习1.卷积神经网络-CNN
目录 卷积神经网络 – CNN CNN 解决了什么问题? 需要处理的数据量太大 保留图像特征 人类的视觉原理 卷积神经网络-CNN 的基本原理 卷积——提取特征 池化层(下采样)——数据降维,避免过拟合 全连接层——输出结果 CNN …...

浏览器输入一个URL之后发生了什么?
URL解析DNS解析TCP连接TSL连接HTTP请求TCP挥手接收并解析响应 URL 解析 主要分为: 协议,eg http,https域名或者ip地址,eg www.baidu.com 域名相对于ip地址来说,更方便人们记忆,但是实际的网络传输中使用的是ip地址 端…...

uniapp 布局(自定义导航栏加固定高度的主要内容)
不想让整体页面出现滚动条 页面大致分为三部分,导航栏、主题内容、tabbar,不想让整个页面出现滚动条,只想让主要内容滚动。 我这里是直接用了uni.getSystemInfoSync(),整体分为两部分,自定义头部和滚动内容ÿ…...

android手机销售app(IDEA,SpringBoot,SSM,MySQL)+支付宝支付+全套视频教程
本项目亮点: 支付宝支付 eCharts柱状图图表数据统计 【项目功能介绍】 本系统包含后台管理和前端app双端系统,后台管理的功能包含: 登录, 退出, 修改管理员信息(基本信息与头像),资源管理,角色管理,资源权限分配,字典管理,用户管理,图书管理,订单管理,订单统计; a…...