ansible自动化运维工具及常见模块的使用

目录

一、ansible概述

二、ansible的特性

三、ansible 环境安装部署

管理端安装 ansible:

配置主机清单:

配置密钥对验证:

四、ansible 常见模块的使用

1.command 模块

2.shell 模块

3.cron 模块

4.user 用户管理模块

5.group 用户组管理模块

6.copy 模块

7.file 设置文件属性模块

8.hostname 模块

9.ping 模块

10.yum 模块

11.service/systemd 模块

12.script 模块

13. mount 模块

14. archive 打包压缩模块

15. unarchive 模块

16. replace 模块

17.setup 模块


一、ansible概述

ansible是一个基于Python开发的自动化运维工具,也叫机器管理工具。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。ansible可以实现批量管理成百上千的多台主机,是应用级别的跨主机编排工具。

二、ansible的特性

  1. 无客户端agent的存在,不需要在被控制的节点上安装任何客户端应用,只需在控制节点的主机上安装一次Ansible即可
  2. 通过ssh协议与被控制节点通信
  3. 基于模块工作的,真正执行操作的是Ansible的模块,可以通过模块实现在被控制节点上执行相应的命令操作
  4. 很多模块具有幂等性,即可实现多次模块操作的状态如果没有发生改变,则不会重复执行

三、ansible 环境安装部署

管理端:192.168.130.10

被管理端:192.168.130.20

被管理端:192.168.130.30

被管理端:192.168.130.40

管理端安装 ansible:

在管理端192.168.130.10节点安装 ansible

yum install -y epel-release     #先安装 epel 源

yum install -y ansible             #使用yum安装ansible

配置主机清单:

vim /etc/ansible/hosts

配置密钥对验证:

ssh-keygen  -t rsa          #生成密钥对

sshpass -p '被管理端密码' ssh-copy-id -o StrictHostKeyChecking=no root@被管理端IP

四、ansible 常见模块的使用

ansible命令格式:ansible  组名  -m 模块名  -a '模块参数'

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

1.command 模块

command 模块默认模块,不用-m指定也会自动使用,作用为在远程主机执行命令,不支持管道,重定向等shell的特性

常用的参数:

chdir:在远程主机上运行命令前提前进入目录

creates:判断指定文件是否存在,如果存在,不执行后面的操作

removes:判断指定文件是否存在,如果存在,执行后面的操作

2.shell 模块

在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一个子shell运行命令(支持管道符号、重定向输入等功能

常用的参数:

chdir:在远程主机上运行命令前提前进入目录

creates:判断指定文件是否存在,如果存在,不执行后面的操作

removes:判断指定文件是否存在,如果存在,执行后面的操作

3.cron 模块

在远程主机定义任务计划。其中有两种状态(state):present表示添加(可以省略),absent表示移除。

//常用的参数:

minute/hour/day/month/weekday:分/时/日/月/周

job:任务计划要执行的命令

name:任务计划的名称

user:指定计划任务属于哪个用户,默认是root用户

4.user 用户管理模块

//常用的参数:

name:用户名,必选参数

state=present|absent:创建账号或者删除账号,present表示创建,absent表示删除

system=yes|no:是否为系统账号

uid:用户uid

group:用户基本组

groups: 用户所属附加组

shell:默认使用的shell

create_home=yse|no: 是否创建家目录

password:用户的密码,建议使用加密后的字符串

remove=yes|no:当state=absent时,是否删除用户的家目录

5.group 用户组管理模块

6.copy 模块

copy 模块用于复制指定主机文件到远程主机

//常用的参数:

dest:指出复制文件的目标及位置,使用绝对路径,如果源是目录,指目标也要是目录,如果目标文件已经存在会覆盖原有的内容

src:指出源文件的路径,可以使用相对路径或绝对路径,支持直接指定目录,如果源是目录则目标也要是目录

mode:指出复制时,目标文件的权限

owner:指出复制时,目标文件的属主

group:指出复制时,目标文件的属组

content:指出复制到目标主机上的内容,不能与src一起使用

7.file 设置文件属性模块

8.hostname 模块

用于管理远程主机上的主机名

9.ping 模块

检测远程主机的连通性

10.yum 模块

在远程主机上安装与卸载软件包

11.service/systemd 模块

用于管理远程主机上的管理服务的运行状态

//常用的参数:

name:被管理的服务名称

state=started|stopped|restarted|reloaded:动作包含启动关闭或者重启

enabled=yes|no:表示是否设置该服务开机自启

runlevel:如果设定了enabled开机自启去,则要定义在哪些运行级别下自启动

12.script 模块

实现远程批量运行本地的控制节点 shell 脚本

13. mount 模块

挂载文件系统

//常用的参数:

src:定义挂载设备的路径

path:定义挂载到哪个目录,必须指定

fstype:指定挂载文件的系统类型,必须指定,xfs、iso9660、nfs...

opts:定义挂载的参数,defaults、rw、ro...

state:定义挂载的状态,mounted(进行挂载,修改/etc/fstab信息)、absent(永久性卸载,并修改 /etc/fstab信息)、unmounted(临时卸载,不修改/etc/fstab信息)

14. archive 打包压缩模块

//常用的参数:

path: 必须参数,远程主机上需要被打包压缩的源文件/目录

dest: 打包压缩后的包文件路径(包文件的父目录必须存在);如果包文件已存在,则会被覆盖

format: 指定压缩类型,包括: bz2、gz(默认)、tar、xz、zip

remove=yes|no: 是否删除源文件

15. unarchive 模块

解包解压缩

//常用的参数:

copy:默认为 copy=yes ,拷贝的文件从 ansible 主机复制到远程主机,copy=no 表示在远程主机上寻找源文件解压

src:tar包源路径,可以是 ansible 主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需设置 copy=no

dest:解压后文件的目标绝对路径

remote_src: 和 copy 功能一样且互斥,设置 remote_src=yes 表示文件在远程主机上,设置为 remote_src=no 表示文件在 ansible 主机上

16. replace 模块

类似于sed命令,主要也是基于正则进行匹配和替换

//常用的参数:

path:必须参数,指定要修改的文件

regexp:必须参数,指定一个正则表达式

replace:替换regexp参数匹配到的字符串

backup=yes|no: 修改源文件前创建一个包含时间戳信息的备份文件

before:如果指定,则仅替换/删除此匹配之前的内容,可以和after参数结合使用

after:如果指定,则仅替换/删除此匹配之后的内容,可以和before参数结合使用

owner:修改文件用户名

group:修改文件组名

mode:修改文件权限

17.setup 模块

facts 组件是用来收集被管理节点信息的,使用 setup 模块可以获取这些信息

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JS进阶——垃圾回收机制以及算法

版权声明 本文章来源于B站上的某马课程,由本人整理,仅供学习交流使用。如涉及侵权问题,请立即与本人联系,本人将积极配合删除相关内容。感谢理解和支持,本人致力于维护原创作品的权益,共同营造一个尊重知识…

Typora+PicGO+腾讯云COS做图床

文章目录 Typora+PicGO+腾讯云COS做图床一、为什么使用图床二、Typora、PicGO和腾讯云COS介绍三、下载Typora和PicGOTyporaPicGO 四、配置Typora、PicGO和腾讯云COS腾讯云COS配置PicGO配置Typora配置 Typora+PicGO+腾讯云COS做图床…

神经网络代码实现

目录 神经网络整体框架 核心计算步骤 参数初始化 矩阵拉伸与还原 前向传播 损失函数定义 反向传播 全部迭代更新完成 数字识别实战 神经网络整体框架 核心计算步骤 参数初始化 # 定义初始化函数 normalize_data是否需要标准化def __init__(self,data,labels,layers,…

Vue3快速上手(七) ref和reactive对比

一、ref和reactive对比 表格形式更加直观吧: 项目refreactive是否支持基本类型支持不支持是否支持对象类型支持支持对象类型是否支持属性直接赋值不支持,需要.value支持是否支持直接重新分配对象支持,因为操作的.value不支持,需…

2022长安杯复现

案件情况 某地警方接到受害人报案称其在某虚拟币交易网站遭遇诈骗,该网站号称使用“USTD 币”购买所谓的“HT 币”,受害人充 值后不但“HT 币”无法提现、交易,而且手机还被恶意软件锁定 勒索。警方根据受害人提供的虚拟币交易网站调取了对应…

类(接口)图几种箭头含义

导语 在平时的开发中,难免会遇到画UML图的时候,也就是我们所说的类图,但是UML图中的箭头多种多样,所代表的含义也是各不相同,今天我们就来说说这几种箭头所代表的含义。 1 泛化 概念:泛化表示一个更泛化的元…

K8S之运用污点、容忍度设置Pod的调度约束

污点、容忍度 污点容忍度 taints 是键值数据,用在节点上,定义污点; tolerations 是键值数据,用在pod上,定义容忍度,能容忍哪些污点。 污点 污点是定义在k8s集群的节点上的键值属性数据,可以决…

Android 15 第一个开发者预览版

点击查看:first-developer-preview-android15 点击查看:Get Android 15 2024年2月16日,谷歌发布 Android 15 第一个开发者预览版 翻译 由工程副总裁戴夫伯克发布 今天,我们发布了Android 15的首个开发者预览版,这样我们的开发者就…

软件测试理论

一、软件测试分类 1.按测试阶段划分 单元测试(模块测试) 针对软件设计中的最小单位(程序模块),进行正确性检查的测试工作。单元测试需要从程序内部结构出发设计测试用例。多个模块可以平行的独立进行单元测试。 单元…

挑战杯 地铁大数据客流分析系统 设计与实现

文章目录 1 前言1.1 实现目的 2 数据集2.2 数据集概况2.3 数据字段 3 实现效果3.1 地铁数据整体概况3.2 平均指标3.3 地铁2018年9月开通运营的线路3.4 客流量相关统计3.4.1 线路客流量排行3.4.2 站点客流量排行3.4.3 入站客流排行3.4.4 整体客流随时间变化趋势3.4.5 不同线路客…

用Locust做性能测试是一种什么样的体验

01 Locust介绍 Locust 一个开源性能测试工具,使用Python代码来定义用户行为,用它可以模拟百万计的并发用户访问你的系统。 性能工具对比: LoadRunner 是非常有名的商业性能测试工具,功能非常强大。使用也比较复杂,目…

【软考中级备考笔记】数据的表示和校验码

2024/2/18 – 数据的表示和校验码 天气:阴雨 春节假期结束后第一个工作日,开始备考中级软件工程师。 希望在今年5月底的软考中取得中级证书 视频地址:https://www.bilibili.com/video/BV1Qc411G7fB 1. 计算机的总体架构 从下图中可以看出&am…

【网站项目】155在线考试与学习交流网页平台

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

RocketMQ订阅关系不一致和不能消费时如何排查?

订阅关系不一致 调整任意一个实例的订阅关系和另一个保持一致 消费者不能消费消息 它是最常见的问题之一,也是每个消息队列服务都会遇到的问题 1.确认哪个消息未消费。在这时消费者至少需要手机消息id、消息key、消息发送时间段三者之一 2.确认消息是否发送成功…

6.s081 学习实验记录(九)lock parallelism

文章目录 一、Memory allocator简介提示实验代码实验结果 二、Buffer cache简介提示实验代码实验结果 该实验将重构某些代码以提高并发度。 首先切换到lock分支: git fetchgit checkout lockmake clean 一、Memory allocator 简介 user/kalloctest 这个程序会对…

安装 Windows 7

1.镜像安装 镜像安装:安装Windows 7 2.安装过程(直接以图的形式呈现) 等待安装成功即可

2.18作业

通过字符设备驱动分步注册过程实现LED驱动的编写,编写应用程序测试 头文件 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio…

Jetpack Compose 第 1 课:可组合函数

点击查看:Jetpack Compose 教程 点击查看:Composetutorial 代码 简介 Jetpack Compose 是用于构建原生 Android 界面的新工具包。它使用更少的代码、强大的工具和直观的 Kotlin API,可以帮助您简化并加快 Android 界面开发。 在本教程中&a…

视觉开发板—K210自学笔记(五)--按键控制LED

本期我们来遵循其他单片机的学习路线开始去用板子上的按键控制点亮LED。那么第一步还是先知道K210里面的硬件电路是怎么连接的,需要查看第二节的文档,看看开发板原理图到底是按键是跟哪个IO连在一起。然后再建立输入按键和GPIO的映射就可以开始变成了。 …

Instagram 账号被封怎么办?如何申诉拿回账号?

不知道各位在玩转海外社媒平台时有没有遇到过Instagram账号异常的情况,比如会出现账号受限、帖子发不出去、账号被封号等情况?Instagram账号如果被封不用马上弃用,我们可以先尝试一下申诉,看看能不能把账号解封。所以今天将会出一篇Instagra…