博客 / Linux/ Ansible 运维工具入门教程:CentOS 7 安装、配置与批量管理

Ansible 运维工具入门教程:CentOS 7 安装、配置与批量管理

Ansible 运维工具入门教程:CentOS 7 安装、配置与批量管理

Ansible 简介

Ansible 是一款开源的自动化运维工具,采用无代理架构,通过 SSH 协议对远程服务器进行批量配置管理、应用部署和任务执行。本教程将指导您在 CentOS 7 系统上完成 Ansible 的安装、基础配置和常用操作。

环境准备

本教程基于 CentOS 7 64 位操作系统。Ansible 主控节点(控制机)需要能够通过 SSH 连接到所有被管理节点(目标服务器)。

安装 Ansible

在 CentOS 7 上,可以通过 EPEL 仓库安装 Ansible。

yum install epel-release -y && yum install ansible -y

安装完成后,可以通过以下命令验证版本:

ansible --version

配置 Ansible 主机清单

Ansible 通过主机清单文件定义需要管理的服务器。默认配置文件位于 /etc/ansible/hosts

使用文本编辑器(如 vi)打开该文件:

vi /etc/ansible/hosts

在文件中,您可以按以下格式添加服务器 IP 地址或主机名,并可以进行分组。

示例配置

以下示例定义了一个名为 targets 的组,并添加了 localhost(本机)作为成员,同时指定其连接方式为本地连接。

[targets]
localhost ansible_connection=local

如果要管理多台远程服务器,可以这样添加:

[web_servers]
192.168.1.101
192.168.1.102

[db_servers]
192.168.1.201

配置 SSH 免密登录

为了让 Ansible 能够无缝连接远程服务器,建议在主控端配置 SSH 密钥对,并将公钥分发到所有被管理节点。

1. 生成 SSH 密钥对

在主控端执行以下命令生成密钥对(如果已有密钥可跳过):

ssh-keygen -t rsa -b 4096

生成过程中按提示操作,默认会将密钥保存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。

2. 分发公钥到远程服务器

使用 Ansible 的 authorized_key 模块可以批量推送公钥。以下命令将主控端的公钥添加到所有目标服务器 root 用户的授权密钥文件中:

ansible all -m authorized_key -a "user=root key='{{ lookup('file', '~/.ssh/id_rsa.pub') }}'"

注意: 执行此命令前,需要确保主控端可以通过密码 SSH 登录到目标服务器,或者目标服务器上已预先配置了其他方式的密钥认证。

测试连接

配置完成后,使用 ping 模块测试与所有被管理节点的连通性:

ansible all -m ping

如果返回 "pong",则表示连接成功。

执行远程命令

使用 shell 模块可以在远程服务器上执行 Shell 命令。

基本语法

ansible <主机或组名> -m shell -a "需要执行的命令"

示例:系统更新与安装软件

以下命令让所有被管理服务器执行系统更新,并安装 wget、curl 和 git:

ansible all -m shell -a "yum update -y && yum install wget curl git -y"

进阶使用说明

  • 目标选择: 命令中的 all 代表 /etc/ansible/hosts 文件中定义的所有主机。您可以替换为具体的组名(如 web_servers)来仅对该组服务器进行操作。
  • 模块化操作: Ansible 的强大之处在于其丰富的模块(如 copy, file, yum, service 等),建议后续使用 Playbook(YAML 剧本)来编排复杂的自动化任务,而非单纯使用 shell 模块。
  • 安全建议: 生产环境中,建议使用非 root 用户并配置 sudo 权限,同时结合 Ansible Vault 对敏感信息进行加密。

通过以上步骤,您已经完成了 Ansible 的基础环境搭建,并可以开始使用它来批量管理您的服务器了。

发表评论

您的邮箱不会公开。必填项已用 * 标注。