【Ansible】自动化部署工具-----Ansible

news2024/11/19 5:31:44

自动化部署工具-Ansible

  • 1.Ansible概述
  • 2.ansible环境安装部署
    • 2.1 command模块
    • 2.2 shell模块
    • 2.3 cron模块
    • 2.4 user模块
    • 2.5 group模块
    • 2.6 copy模块
    • 2.7 file模块
    • 2.8 hostname模块
    • 2.9 ping模块
    • 2.10 yum模块
    • 2.11 service/systemd模块
    • 2.12 script模块
    • 2.13 mount模块
    • 2.14 archive模块
    • 2.15 unarchive模块
    • 2.16 replace模块
    • 2.17 setup模块
  • 3.inventory主机清单
  • 4.Ansible知识点总结

1.Ansible概述

Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。

Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。

Ansible是基于模块工作的,它只是提供了一种运行框架,它本身没有完成任务的能力,真正执行操作的是Ansible的模块, 比如copy模块用于拷贝文件到远程主机上,service模块用于管理服务的启动、停止、重启等。

Ansible其中一个比较鲜明的特性是Agentless,即无Agent的存在,它就像普通命令一样,并非C/S软件,也只需在某个作为控制节点的主机上安装一次Ansible即可,通常它基于ssh连接来控制远程主机,远程主机上不需要安装Ansible或其它额外的服务

使用者在使用时,在服务器终端输入命令或者playbooks,会通过预定好的规则将playbook拆解为play,再组织成ansible可以识别的任务,调用模块和插件,根据主机清单通过SSH将临时文件发给远程的客户端执行并返回结果,执行结束后自动删除

Ansible的另一个比较鲜明的特性是它的绝大多数模块都具备幂等性(idempotence)。所谓幂等性,指的是无论执行多少次同样的运算,结果都是相同的,即一条命令,任意多次执行所产生的影响均与一次执行的影响相同。比如执行systemctl stop xxx命令来停止服务,当发现要停止的目标服务已经处于停止状态,它什么也不会做, 所以多次停止的结果仍然是停止,不会改变结果,它是幂等的,而systemctl restart xx 是非幂等的。

Ansible的很多模块在执行时都会先判断目标节点是否要执行任务,所以,可以放心大胆地让Ansible去执行任务,重复执行某个任务绝大多数时候不会产生任何副作用。

2.ansible环境安装部署

管理端安装ansible

cd /etc/yum.repos.d
mv repo.bak/* .      #先移出在线源
mv local.repo repo.bak/

yum install -y epel-release			//先安装epel源
yum install -y ansible

在这里插入图片描述
配置主机清单

cd /etc/ansible
vim hosts       
[webservers]			#配置组名
192.168.80.50			#组里包含的被管理的主机IP地址或主机名(主机名需要先修改/etc/hosts文件)
192.168.80.60

[dbservers]
192.168.80.70

在这里插入图片描述

配置密钥对验证

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

yum install -y sshpass
sshpass -p '123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.80.50
sshpass -p '123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.80.60  
sshpass -p '123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.80.70  

在这里插入图片描述
ansible命令行模块

命令格式:ansible <组名> -m <模块> -a <参数列表>

ansible-doc -l				#列出所有已安装的模块,按q退出

在这里插入图片描述

2.1 command模块

在远程主机执行命令,不支持管道,重定向等shell的特性

ansible-doc -s command		#-s 列出指定模块的描述信息和操作动作

在这里插入图片描述

ansible 192.168.80.50 -m command -a 'date'		#指定ip执行date
ansible webservers -m command -a 'date'			#指定组执行date
ansible dbservers -m command -a 'date'       
ansible all -m command -a 'date'				#all代表所有hosts主机
ansible all -a 'ls /'							#如省略-m模块,则默认运行command模块

在这里插入图片描述

常用的参数

参数 功能作用
chdir 在远程主机上运行命令前提前进入目录
creates 判断指定文件是否存在,如果存在,不执行后面的操作
removes 判断指定文件是否存在,如果存在,执行后面的操作
ansible all -m command -a "chdir=/home  ls ./"
ansible webservers -m command -a "creates=/opt/test touch /opt/abc.txt"
ansible webservers -m command -a "removes=/

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

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

相关文章

比较18组二分类网络迭代次数

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由6张二值化的图片组成&#xff0c;让A&#xff0c;B中各有5个点&#xff0c;并且让这10个点的位置没有重合。比较迭代次数的顺序。 其中有18组数据 差值结构 A-B 迭代次数 构造平均列…

测试技术之测试用例质量的评估

第一&#xff0c;凭证测试用例的方式评估其品质&#xff0c;主要搜罗&#xff1a; 1)测试用例与需要规格剖析中需要条款的可追溯性&#xff0c;好比&#xff1a;咱们要求每一个需要条款至少有1个测试用例与之对于应。目的是为了评估测试的需要拆穿困绕率&#xff0c;以及合成需…

接口自动化测试要做什么?8个步骤讲的明明白白(小白也能看懂系列)

先了解下接口测试流程&#xff1a; 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建&#xff08;工具&#xff09; 6、执行用例 7、缺陷管理 8、测试报告 那"接口自动化测试"怎么弄&#xff1f;只需要在上篇文章的基础上再梳理下就…

QT学习之旅 - 一个QT的基本项目

文章目录 定时器(时间)位置信息QTableWidget用cellwidget添加控件隐藏QTableWidget的滚动条自动调整适应大小 UDPUDP ClientUDP ServerUDP udpSocket.readDatagram重要参数使用多线程udp 自定义信号和槽UDP服务端接收数据(全局变量) QWT设置标题数轴相关设置坐标轴范围设置坐标…

赌博应用引风波,苹果、Meta、谷歌官司缠身,被视为“博彩公司”

一名美国法官认定&#xff0c;苹果、Meta、谷歌等科技巨头允许在其应用商店上架赌博应用程序的行为可能涉及从赌博活动中获利&#xff0c;类似于博彩公司。然而&#xff0c;该判决存在模糊的界限&#xff0c;并且法官认为这些公司有权提出上诉。 “苹果公司被指控在其应用商店上…

win11安装appium

node安装 node下载网址: Download | Node.js 安装后对node安装包路径进行配置 npm config set prefix “E:\nodejs\node_global” //设置全局包目录 npm config set cache “E:\nodejs\node_cache” //设置缓存目录npm config list //查看npm配置npm install -g appium //安…

Java 网络编程基础

文章目录 前言什么是网络编程网络编程基础知识网络通讯流程长连接和短连接Socket Java 网络编程总结 前言 一个网络请求、服务之间的调用都需要进行网络通讯&#xff0c;在日常开发时我们可能并不会关心我们的服务端是怎么接收到请求的、调用别的服务是怎么调用的&#xff0c;…

HCIP——OSPF不规则区域划分及LSA详解

ZY技术分享 一、OSPF与RIP异同二、OSPF的不规则区域划分1、远离骨干的非骨干使用tunnel隧道使用虚链路使用多进程双向重发布 2、不连续骨干 三、OSPF的LSA详解LSA头部Type - 1LSAType - 2LSAType - 3LSAType - 5LSAType - 4LSA 一、OSPF与RIP异同 OSPFRIP v1RIP v2链路状态路由…

行星碰撞(力扣)栈 JAVA

给定一个整数数组 asteroids&#xff0c;表示在同一行的行星。 对于数组中的每一个元素&#xff0c;其绝对值表示行星的大小&#xff0c;正负表示行星的移动方向&#xff08;正表示向右移动&#xff0c;负表示向左移动&#xff09;。每一颗行星以相同的速度移动。 找出碰撞后剩…

Mysql的增删改查

一.增加数据&#xff08;insert&#xff09; insert into 表名&#xff08;列名1&#xff0c;列名2&#xff0c;列名3&#xff0c;.....列名n&#xff09;values(值&#xff0c;值&#xff0c;值&#xff0c;....值&#xff09; insert into userinfo(id,name,age) values(&quo…

每日一题——除自身以外数组的乘积

除自身以外数组的乘积 题目链接 这一题乍一看好像十分简单&#xff0c;先用一趟循环遍历所有数据&#xff0c;得到数据所有元素的乘积&#xff0c;再用一趟循环将这个乘积除以每个元素&#xff0c;这样不就得到了除自身以外数组的乘积吗&#xff1f;我们先来看看代码&#xff…

janus-Gateway的服务端部署

janus-Gateway 需求是前后端的webRTC推拉流&#xff0c;但是后端用的是c&#xff0c;于是使用了这个库做视频流的推送和拉取&#xff0c;记录踩坑过程。 如果你也需要自己部署janus的服务端并在前端拉流测试&#xff0c;希望对你有所帮助。 由于janus的服务器搭建需要linux环境…

Python——Windows下载ffmpeg

目录 前言 一、下载 &#xff08;3种下载方式&#xff09; 1、第一种下载方式——我上传的文件 2、第二种下载方式——GitHub下载 3、第三种下载方式——官网下载 二、解压 三、配置环境变量 四、验证是否安装成功 五、其他 关于ffmpeg其他安装教程 ffmpeg的延迟问题 …

重生之再学mysql-数据库三范式

数据库三范式 介绍第一范式&#xff1a;确保每列都是不可拆分的第二范式&#xff1a;在第一范式的基础上&#xff0c;确保非主键列完全依赖于主键&#xff0c;而不是依赖于主键的一部分第三范式&#xff1a;第二范式的基础上&#xff0c;确保非主键列不存在传递依赖 介绍 什么…

“可以黑掉整个宇宙”的Metasploit Framework

0x01、 简述 Metasploit Framework(MSF)是一款开源安全漏洞检测工具&#xff0c;他带有数千个已知的软件漏洞&#xff0c;目前人在持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程&#xff0c;被安全社区冠以“可以黑掉整个宇宙”之名。在普通的…

Nginx最佳实践优化(动静分离、资源压缩、负载均衡、黑白名单等等)

一、前言 Nginx是目前负载均衡技术中的主流方案&#xff0c;几乎绝大部分项目都会使用它&#xff0c;Nginx是一个轻量级的高性能HTTP反向代理服务器&#xff0c;同时它也是一个通用类型的代理服务器&#xff0c;支持绝大部分协议&#xff0c;如TCP、UDP、SMTP、HTTPS等。 二、…

4.3. 重载和重写的区别

重载就是同样的一个方法能够根据输入数据的不同&#xff0c;做出不同的处理 重写就是当子类继承自父类的相同方法&#xff0c;输入数据一样&#xff0c;但要做出有别于父类的响应时&#xff0c;你就要覆盖父类方法 重载&#xff1a; 发生在同一个类中&#xff08;或者父类和子…

Python入门【函数用法和底层分析、函数简介 、函数的定义和调用、形参和实参、文档字符串(函数的注释) 、函数也是对象,内存底层分析】(十)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

一文让你知道等保测评以及渗透测试的区别与联系

我国等保政策已经严格落地执行&#xff0c;不少企业准备办理过等保。但大家对于等保相关政策不是很了解&#xff0c;例如傻傻分不清楚等保测评和渗透测试&#xff0c;这里一文让你知道等保测评以及渗透测试的区别与联系&#xff0c;仅供参考哦&#xff01; 等保测评以及渗透测试…

SpringBoot 项目使用 Redis 对用户 IP 进行接口限流

一、思路 使用接口限流的主要目的在于提高系统的稳定性&#xff0c;防止接口被恶意打击&#xff08;短时间内大量请求&#xff09;。 比如要求某接口在1分钟内请求次数不超过1000次&#xff0c;那么应该如何设计代码呢&#xff1f; 下面讲两种思路&#xff0c;如果想看代码可…