Ansible自动化运维:基础与实践

在当今的IT运维领域,Ansible作为一款强大的自动化运维工具,正发挥着日益重要的作用。本文将详细介绍Ansible的相关知识,包括其作用、特点、安装配置以及常用模块的使用方法,旨在帮助读者快速上手并熟练运用Ansible进行自动化运维工作。

一、Ansible概述

(一)Ansible的作用

Ansible主要用于远程批量化执行命令和配置服务,是一套综合性的自动化管理工具集。通过它,运维人员能够高效地对多台计算机或者网络设备进行统一管理,极大地提高了工作效率,减少人工操作的繁琐与错误。

(二)Ansible的特点

它由Python语言开发,这使得其具有良好的可读性和扩展性。Python的丰富库和简洁语法为Ansibled功能实现提供了坚实基础

作为开源免费工具,Ansible吸引了大量开发者和用户参与贡献和使用,社区资源丰富,能获得到大量的模块和解决方案。

其模块化设计是一大亮点,每一个模块代表一个特定功能,如文件操作,服务管理等,方便用户根据需求灵活组合使用。

使用简单灵活,通过简答的命令行语法即可完成复杂的自动化任务,无需编写大量代码。

支持跨平台操作,可在多种操作系统上运行,包括Linux、Unix和windows等,适应多样化的IT环境。

(三)Ansible涉及的角色类型

使用者:主要是运维工程师,他们利用Ansible进行日常的系统管理和运维工作。同时,开发人员也可以基于Ansible进行二次开发,定制符合特定业务需求的模块。

Ansible工具:核心在于其模块设计,众多模块构成了丰富的功能库,用户通过调用这些模块实现各种自动化操作。

作用对象:Ansible可应用于指定的计算机或网络,对目标设备进行精准的配置和管理。

二、Ansible安装与配置

(一)安装Ansible

在Centos系统中,可通过以下命令安装Ansible:

yun -y install ansible

(二)查看版本

安装完成后,使用以下命令查看Ansible版本:

ansible -version

(三)配置ssh免交互式验证

1.首先生成密钥对:

ssh-keygen -t RSA

2.然后将公钥上传到远程执行命令的主机,例如:

ssh-copy-id -i root@192.168.100.10
ssh-copy-id -i root@192.168.100.20

(四)配置管理Ansible客户端

编辑/etc/ansible/hosts文件,定义客户端管理组和主机列表,示例如下:

[web]
192.168.100.10
192.168.100.20
192.168.100.30

三、Ansible模块的使用

(一)ping 模块

用于测试Ansible与目标主机的连通性,有以下两种测试方式:

ansible -i /etc/ansible/hosts web -m ping 
ansible web -m ping

(二)常用命令选项

-i:指定加载的主机列表文件路径,如/etc/ansible/hosts。

-v:输出详细信息,帮助用户了解任务执行的过程中的更多细节。

-m:为指定模块传递参数,根据不同模块的要求设置相应的参数值。

-a:为指定模块传递参数,根据不同模块的要求设置相应的参数值。

--private:指定密钥文件进行验证,确保连接的安全性。

--list-hosts:列出Ansible管理的计算机列表,方便查看和确认。

(三)command模块

1.作用:在远程计算机上执行命令,但不支持管道符和重定向操作。

2.选项:

chdir:用于切换远程主机的目录,在执行命令前进入指定目录。

creates:在创建文件时使用,若指定文件已存在则不执行后续命令。

removes:与creates相反,若指定文件存在则执行删除操作,然后执行后续命令。

3示例:

切换目录并列出文件:

ansible web -m command -a "chdir=/ ls./"

查看主机内存:

ansible web -m command -a "free -g"

查看主机硬盘使用情况:

ansible web -m command -a "df -Th"

(四)copy模块

1.作用:实现文件或目录的复制操作。

2.选项:

dest:指定目标目录或者文件的路径,及复制后的存放位置。

src:源目录或文件的路径,表明要复制的内容来源。

mode:设置复制后文件或目录的权限,如775

owner:修改复制数据的所有者,如test

group:修改复制数据所属组,如test

3.示例:

ansible web -m copy -a "src=/etchosts dest=/ mode=775 owner=test group=test"

(五)shell模块

1.作用:在远程主机上执行命令,支持管道符和重定向操作,功能比command模块更大。

2.示例:

将内容重定向到文件:

ansible web -m shell -a "echo "aaa" > /1.txx"

查看创建的文件:

ansible web -m shell -a "ls -ld /1.txx"

使用管道符查看进程:

ansible web -m shell -a "netstat -anptu | grep sshd"

(六)hostname模块

1.作用:用于修改计算机的名字

2.示例:

ansible 192.168.100.20 -m hostname -a "name=111"

(七)yum模块

1.作用:实现程序的批量化安装和卸载操作。

2.选项:

name:指定要安装或卸载的程序名字。

state: 有present(安装)liatest(安装最新版本)absent(卸载)等取值。

disablerepo:禁用指定的yum仓库。

enablerepo:启用指定的yum仓库。

3.示例:

删除系统yum仓库:

ansible web -m shell -a "rm -rf /etc/yum.repos.d/CentOS-*"

挂载光盘:

ansible web -m shell -a "mount /dev/cdrom/mnt"

安装httpd程序:

ansible web -m yum -a "name=httpd state=present"

检查程序安装是否成功:

ansible web -m shell -a "rpm -qa | grep httpd"

(八)user模块

1.作用:创建和管理用户账户信息

2.选项:

name:用户的名称。

state:present表示创建用户,absent表示删除用户。

system=yes | no:确定是否为系统用户。

uid:指定用户的ID。

group:用户所属的组。

shell:指定用户的默认shell。

home:指定用户的宿主目录。

move_host=yes|no:设置家目录是否存在。

password:用户的密码,需加密处理。

comment:对用户的说明信息。

remove=yes|no:删除用户时是否同时删除其家目录等相关文件。

3.示例:

ansible web -m user -a 'user=111 system=yes uid=520 group=root shell=/bin/bash password=密码 comment="aa"'

通过对Ansible这些基础内容的学习,读者可以初步掌握Ansible的核心功能和使用方法,为进一步深入学习和在实际工作的应用奠定坚实的基础。随着Ansible使用经验的积累,还可以探索其更高级的特性和应用场景,实现更复杂,高效的自动化运维任务。

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

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

相关文章

概率扩散去噪模型DDPM

文章目录 摘要abstract高斯噪声扩散模型正向过程逆向过程 论文阅读论文创新点解决的问题 总结参考文献 摘要 本周主要学习了高斯噪声在扩散模型中的应用及相关算法实现。扩散模型受到自然现象的启发,通过在图像中引入高斯噪声,模拟出扩散效果&#xff0…

Python操作Excel——openpyxl使用笔记(3)

3 单元格基本操作 3.1 访问单元格和读写其内容 在前面的例子中,已经简单演示过了向单元格中写入和读取数据。这里进一步提供访问单元格的一些方法。和前面一样,使用工作表的索引方式,可以快速定位一个单元格: import openpyxl w…

2025.1.18机器学习笔记:PINN文献精读

第三十周周报 一、文献阅读题目信息摘要Abstract创新点物理背景网络框架实验实验一:直道稳定流条件实验二:环状网络中的非稳定流条件 结论缺点及展望 二、代码实践总结 一、文献阅读 题目信息 题目:《Enhanced physics-informed neural net…

【学习笔记】Macbook管理多个不同的Python版本

在MacBook上管理不同项目的不同Python版本,可以使用多种方法。以下是一些常见的方法: 1. 使用 pyenv pyenv 是一个非常流行的工具,可以让你轻松安装和切换多个Python版本。以下是安装和使用 pyenv 的步骤: 安装 pyenv 安装依赖…

redhat安装docker 24.0.7

1、下载docker镜像包 wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz 2、解压 tar -xvf docker-24.0.7.tgz 3、解压的docker文件夹全部移动至/usr/bin目录 cd docker cp -p docker/* /usr/bin 4、注册服务 vi /usr/lib/systemd/syste…

CSS 的基础知识及应用

前言 CSS(层叠样式表)是网页设计和开发中不可或缺的一部分。它用于描述网页的视觉表现,使页面不仅实现功能,还能提供吸引人的用户体验。本文将介绍 CSS 的基本概念、语法、选择器及其在提升网页美观性方面的重要性。 什么是 CSS&…

Web开发 -前端部分-CSS-2

一 长度单位 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

Linux shell zip 命令实现不切换当前终端的工作目录打包另一个路径下的文件和文件夹

如图&#xff0c;我想在当前目录 ~/Bypasser 下打包 src 文件夹&#xff0c;使得生成的 zip 压缩包中具有 src 文件夹下的所有文件夹、所有文件夹中的所有子项目、所有文件&#xff0c;保留层次结构但压缩包中最外面不包含 src 这一层。执行命令时&#xff0c;不要改变当前终端…

Syncthing在ubuntu下的安装使用

以前安装这个软件的时候&#xff0c; 是在windows和mac上&#xff0c;都是图形化的安装方式&#xff0c;但是ubuntu不太一样&#xff0c;需要增加源&#xff0c;然后执行命令。安装的系统版本是2004。 参考链接1&#xff0c;主要命令包含下面几个部分&#xff1a; 第一步&…

QT跨平台应用程序开发框架(3)—— 信号和槽

目录 一&#xff0c;基本概念 二&#xff0c;connect函数使用 2.1 connect 2.2 Qt内置信号和槽 2.3 一些细节 三&#xff0c;自定义信号和槽 3.1 自定义槽函数 3.2 自定义信号 3.3 带参数的信号槽 四&#xff0c;信号和槽的意义 五&#xff0c;信号和槽断开连接 六&…

聊聊如何实现Android 放大镜效果

一、前言 很久没有更新Android 原生技术内容了&#xff0c;前些年一直在做跨端方向开发&#xff0c;最近换工作用重新回到原生技术&#xff0c;又回到了熟悉但有些生疏的环境&#xff0c;真是感慨万分。 近期也是因为准备做地图交互相关的需求&#xff0c;功能非常复杂&#x…

基于基础模型的下一代商业智能(BI)

IBM Cognos Analytics 长期以来一直被公认为商业智能&#xff08;BI&#xff09;领域的金标准。凭借其卓越的报告功能而闻名&#xff0c;IBM Cognos 为希望从数据中提取宝贵见解的组织提供了无与伦比的深度和灵活性。 但很多人可能不知道的是&#xff0c;Cognos Analytics 是如…

Python与PyTorch的浅拷贝与深拷贝

1.Python赋值操作的原理 在python中&#xff0c;x something&#xff0c; 这样的赋值操作&#xff0c;准确的理解是&#xff1a;给存储something建立一个索引x (即存储地址)&#xff0c; x通过访问something的存储内容&#xff0c;获得something的值。 在下面代码中&#xff…

一、1-2 5G-A通感融合基站产品及开通

1、通感融合定义和场景&#xff08;阅读&#xff09; 1.1通感融合定义 1.2通感融合应用场景 2、通感融合架构和原理&#xff08;较难&#xff0c;理解即可&#xff09; 2.1 感知方式 2.2 通感融合架构 SF&#xff08;Sensing Function&#xff09;&#xff1a;核心网感知控制…

golang标准库path/filepath使用示例

文章目录 前言一、常用方法示例1.将相对路径转换为绝对路径2.获取路径中最后一个元素3.获取路径中除去最后一个元素的部分4.路径拼接5.将路径拆分为目录和文件名两部分6.返回一个相对路径7.文件路径遍历8.根据文件扩展名过滤文件9.使用正则表达式进行路径匹配 前言 path/filep…

HBase实训:纸币冠字号查询任务

一、实验目的 1. 理解分布式数据存储系统HBase的架构和工作原理。 2. 掌握HBase表的设计原则&#xff0c;能够根据实际业务需求设计合理的表结构。 3. 学习使用HBase Java API进行数据的插入、查询和管理。 4. 实践分布式数据存储系统在大数据环境下的应用&#xff0c;…

HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (三、影视搜索页功能实现)

在HarmonyOS NEXT开发环境中&#xff0c;可以使用nutpi/axios库来简化网络请求的操作。本文将展示如何使用HarmonyOS NEXT框架和nutpi/axios库&#xff0c;从零开始实现一个简单的影视APP&#xff0c;主要关注影视搜索页的功能实现。 为什么选择nutpi/axios&#xff1f; nutpi…

网络IO与IO多路复用

一、网络IO基础 系统对象&#xff1a; 网络IO涉及用户空间调用IO的进程或线程以及内核空间的内核系统。例如&#xff0c;当进行read操作时&#xff0c;会经历两个阶段&#xff1a; 等待数据准备就绪。将数据从内核拷贝到进程或线程中。 多种网络IO模型的出现原因&#xff1a;…

天机学堂3-ES+Caffeine

文章目录 day05-问答系统表 用户端分页查询问题目标效果代码实现 3.6.管理端分页查询问题ES相关 管理端互动问题分页实现三级分类3.6.5.2.多级缓存3.6.5.3.CaffeineTODO&#xff1a;使用Caffeine作为本地缓存&#xff0c;另外使用redis或者memcache作为分布式缓存&#xff0c;构…

重拾Python学习,先从把python删除开始。。。

自己折腾就是不行啊&#xff0c;屡战屡败&#xff0c;最近终于找到前辈教我 第一步 删除Python 先把前阵子折腾的WSL和VScode删掉。还是得用spyder&#xff0c;跟matlab最像&#xff0c;也最容易入手。 从VScode上搞python&#xff0c;最后安装到appdata上&#xff0c;安装插…