欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 【Ansible自动化运维】一、初步了解,开启自动化运维之旅

【Ansible自动化运维】一、初步了解,开启自动化运维之旅

2025/5/10 14:32:12 来源:https://blog.csdn.net/qq_58611691/article/details/147072620  浏览:    关键词:【Ansible自动化运维】一、初步了解,开启自动化运维之旅

        在当今数字化时代,随着企业 IT 基础设施规模的不断扩大,传统的手工运维方式逐渐显得力不从心。自动化运维技术应运而生,其中 Ansible 凭借其简洁易用、功能强大的特点,成为众多运维工程师和开发人员的首选工具。本篇文章将从基础概念到简单的实际操作,让你快速上手自动化运维!

一、Ansible 是什么​

Ansible 是一个基于 Python 开发的自动化运维工具,它的设计理念是简单、高效、无代理。与其他一些自动化工具不同,Ansible 不需要在被管理的目标主机上安装额外的代理软件,这大大降低了部署和维护的复杂性。通过 SSH 协议,Ansible 可以直接与目标主机进行通信,执行各种管理任务,如配置管理、软件部署、任务编排等。​

Ansible 在自动化运维领域有着广泛的应用场景。例如,在一个拥有大量服务器的云计算环境中,使用 Ansible 可以快速实现所有服务器的统一配置,包括操作系统初始化、软件安装、安全设置等。对于开发团队来说,Ansible 可以帮助他们自动化应用的部署流程,确保开发、测试和生产环境的一致性。

二、安装与环境搭建​

2.1 在 Linux 系统上安装 Ansible​

大多数 Linux 发行版都可以通过包管理器轻松安装 Ansible。以 CentOS 为例,执行以下命令:

# 更新系统软件包
sudo yum update -y
# 安装Ansible
sudo yum install ansible -y

在 Ubuntu 系统上,安装命令如下:

# 更新系统软件包
sudo apt update
# 安装Ansible
sudo apt install ansible -y

2.2 在 Windows 系统上安装 Ansible(通过 WSL)​

如果你的 Windows 系统安装了适用于 Linux 的 Windows 子系统(WSL),也可以在 WSL 环境中安装 Ansible。首先,打开 Windows 应用商店,搜索并安装你喜欢的 Linux 发行版,如 Ubuntu。安装完成后,打开 WSL 终端,按照上述 Linux 系统的安装步骤进行安装。​

2.3 配置 Ansible 环境​

Ansible 的主要配置文件是ansible.cfg,通常位于/etc/ansible/目录下。虽然 Ansible 在安装后有默认配置,但根据实际需求,我们可能需要对其进行一些修改。例如,修改inventory参数,指定主机清单文件的路径。主机清单文件用于定义 Ansible 要管理的目标主机。默认情况下,Ansible 使用/etc/ansible/hosts作为主机清单文件。

[defaults]
# 指定主机清单文件路径
inventory = /etc/ansible/hosts

2.4 主机清单配置​

主机清单文件/etc/ansible/hosts用于列出 Ansible 要管理的所有目标主机。可以按组对主机进行分类,方便批量操作。例如,我们有一组 Web 服务器和一组数据库服务器,在hosts文件中可以这样配置(组名的合理编写更加有助于我们后期对节点的控制和修改):

[web_servers]
web1.example.com
web2.example.com[db_servers]
db1.example.com
db2.example.com

你还可以为每个主机指定连接参数,如 SSH 端口、用户名等。例如:

[web_servers]
web1.example.com ansible_port=22 ansible_user=ubuntu
web2.example.com ansible_port=22 ansible_user=ubuntu[db_servers]
db1.example.com ansible_port=22 ansible_user=centos
db2.example.com ansible_port=22 ansible_user=centos

三、Ansible 核心组件解析​

3.1 连接插件​

连接插件负责 Ansible 与目标主机之间的通信。默认情况下,Ansible 使用 SSH 连接插件,通过 SSH 协议与目标主机建立连接。这也是 Ansible 无需在目标主机安装代理的原因之一。除了 SSH,Ansible 还支持其他连接方式,如local(用于在本地主机执行任务)、docker(用于在 Docker 容器中执行任务)等。​

3.2 主机清单​

如前文所述,主机清单是 Ansible 管理目标主机的核心组件。通过主机清单,Ansible 可以知道要对哪些主机执行任务,并且可以按组对主机进行分类管理,大大提高了管理效率。​

3.3 模块​

模块是 Ansible 执行具体任务的工具。Ansible 内置了大量丰富的模块,涵盖了系统管理、软件安装、网络配置等各个方面。例如,ping模块用于检查目标主机的连通性,yum模块用于在 CentOS 等系统上安装软件包,apt模块用于在 Ubuntu 等系统上安装软件包。​

我们可以通过命令行直接调用模块。例如,使用ping模块检查web1.example.com的连通性:

ansible web1.example.com -m ping

上述命令中,ansible是 Ansible 的命令行工具,web1.example.com是目标主机(也可以是IP地址),-m参数指定要使用的模块为ping。

3.4 Playbook​

Playbook 是 Ansible 的核心组件之一,它是一个由 YAML 语言编写的文件,用于定义一系列的任务和执行这些任务的顺序。Playbook 可以理解为一个剧本,Ansible 按照剧本中的步骤依次在目标主机上执行任务。通过 Playbook,我们可以实现复杂的自动化流程,如应用的完整部署过程。

四、第一个 Ansible 任务​

现在,我们来尝试执行第一个 Ansible 任务,使用ping模块检查目标主机的连通性。假设我们的主机清单文件/etc/ansible/hosts中已经配置了web1.example.com主机。​

执行以下命令:

ansible web1.example.com -m ping

执行结果如下:

web1.example.com | SUCCESS => {"changed": false,"ping": "pong"
}

结果说明:​

  • web1.example.com:目标主机名。​
  • SUCCESS:表示任务执行成功。​
  • "changed": false:表示该任务没有对目标主机进行任何修改,只是检查连通性。​
  • "ping": "pong":这是ping模块返回的结果,证明目标主机可达。

 接下来,我们使用shell模块在目标主机上执行一个简单的命令,如查看当前目录下的文件列表。命令如下:

ansible web1.example.com -m shell -a "ls -l"

上述命令中,-a参数用于传递模块的参数,这里传递给shell模块的参数是要在目标主机上执行的命令ls -l。​

执行结果类似如下:

web1.example.com | CHANGED | rc=0 >>
total 0
-rw-r--r-- 1 ubuntu ubuntu 0 Apr  8 10:00 file1.txt
-rw-r--r-- 1 ubuntu ubuntu 0 Apr  8 10:01 file2.txt

结果说明:​

  • CHANGED:表示任务执行后目标主机的状态发生了改变(这里执行了一个命令,虽然只是查看文件列表,但也算状态改变)。​
  • rc=0:表示命令执行成功,返回码为 0。​
  • >>后面的内容是命令在目标主机上的执行结果,即当前目录下的文件列表。

通过以上简单的示例,你已经初步体验了 Ansible 的使用流程。从安装配置到执行简单任务,Ansible 展现出了其简洁易用的特点。随着对 Ansible 的深入学习,你将发现它在自动化运维领域的强大功能,能够帮助你轻松应对各种复杂的运维场景。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词