💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
本人主要分享计算机核心技术:系统维护、数据库、网络安全、自动化运维、容器技术、云计算、人工智能、运维开发、算法结构、物联网、JAVA 、Python、PHP、C、C++等。
不同类型针对性训练,提升逻辑思维,剑指大厂,非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。
运维加薪技术——Ansible
简介
Ansible是一个基于Python开发的自动化运维工具,它集合了众多运维工具的优点,如批量系统配置、批量程序部署、批量运行命令等。Ansible通过SSH与远程主机通信,不需要在被控端安装客户端或代理,因此部署简单且轻量级。Ansible使用YAML格式的Playbooks来定义自动化任务,这种语言简单易学,非常适合描述自动化作业。Ansible的特点包括模块化设计、支持自定义模块、基于SSH通信、无需客户端安装等,使其成为自动化运维领域中非常受欢迎的工具之一。本章详细介绍Ansible。
Ansible就像是IT界的魔法棒,让管理者可以轻松编排、自动化和管理大规模的计算机系统。它不仅简化了配置管理和部署流程,还提供了可扩展性和灵活性。想象一下,不再需要手动操作大量服务器,只需轻轻一点,Ansible就会像魔术师一样完成所有工作。这不仅提高了效率,还让我们的工作更有趣!
本文主要是以一个小白的角度,从无到有安装部署Ansible软件,并执行第一条Ansible指令,让小白踏入自动化运维的门槛。
注:安装示例是以Mac电脑进行,基本适用于Linux系统,Window 需要Linux 子系统中执行(相对复杂些)。所有安装操作均在Mac电脑上执行。
Ansible架构图
上图为ansible的基本架构,从上图可以了解到其由以下部分组成:
核心: ansible
核心模块(Core Modules): 这些都是ansible自带的模块
扩展模块(Custom Modules): 如果核心模块不足以完成某种功能,可以添加扩展模块
插件(Plugins): 完成模块功能的补充
剧本(Playbooks): ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
连接插件(Connectior Plugins): ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
主机群(Host Inventory): 定义ansible管理的主机
环境说明
Ansible主机(控制节点):Mac电脑
测试主机(被管节点):Centos7.9 /192.168.10.180
安装Python
Python官方地址:https://www.python.org
直接下载安装对应版本的Python即可。
安装过程不在赘述。
创建Python虚拟机环境
为什么要创建Python虚拟环境?
Python虚拟环境提供了一个干净的、隔离的工作环境,使开发者能够在同一台机器上同时管理多个项目,而无需担心不同项目之间的依赖冲突。这种隔离性不仅有助于避免版本混乱和包冲突,还可以提高项目的可移植性和可维护性。同时,虚拟环境也促进了Python生态系统的健康发展,为开发者提供了更便捷、更灵活的开发体验。
在终端中输入以下命令创建环境
# 创建名为testevnv的虚拟环境
python3 -m venv testvenv
# 激活此虚拟环境
source testvenv/bin/activate
后面操作均在虚拟环境中执行
升级pip
python3 -m pip install --upgrade pip
安装Ansible
pip install ansible
Ansible主机与客户端连接
Ansible主机与客户端之间可以通过一下方式实现:
-
SSH免密连接
-
配置Ansible hosts文件输入账号密码
可根据实际情况选择。
SSH免密连接
创建私钥和公钥,一路回车即可。
ssh-keygen
默认会在用户.ssh目录下生成id_rsa和id_rsa.pub两个文件
把公钥复制到测试主机
ssh-copy-id root@192.168.10.180
测试免密登录
ssh root@192.168.10.180
已成功免密登录
配置主机清单(Inventory)
vim /etc/ansible/hosts
#组名可任意
[test]
#IP地址列表(一个组下可有多个IP地址),并指定ssh用户名
192.168.10.180
保存后退出即可
Ansible命令测试
ping模块测试与受管理端的e连通性
# 目标使用IP地址或者组名均可
ansible -m ping 192.168.10.180
如果看到如下输出说明已经成功。
如果看到如下输出说明已经成功。
setup 模块可以查看受管理端相关的参数
ansible -m setup test
下图是输出详细信息
至此Ansible工具已经初步安装完成。