Ansible 是一种开源的自动化配置管理工具,专为 Linux 系统管理员设计,它通过一个中心节点(即 Ansible 服务器)管理数百台服务器,不需要任何代理,并且可以工作在 SSH 和 Python 上,以下是关于 CentOS 和 Ansible 的详细介绍:
一、CentOS 简介
CentOS(Community Enterprise Operating System)是一个基于 Red Hat Enterprise Linux (RHEL) 源代码重新编译而成的免费操作系统,适用于各种环境和场景,CentOS 提供了企业级的稳定性和安全性,是许多企业和开发者的首选操作系统。

二、Ansible 简介
Ansible 是一种强大的自动化工具,用于配置管理、应用部署、任务执行和 IT 操作任务的协调,它使用简单的 YAML 语法来编写剧本(Playbooks),使得自动化任务变得直观而高效,Ansible 支持多种平台,包括 Windows、Linux 和 Unix 系统。
三、在 CentOS 上安装 Ansible
1. 更新系统并安装 EPEL 仓库
sudo dnf install epelrelease y
2. 安装 Ansible
sudo dnf install ansible y
3. 验证安装
ansible version
四、配置 Ansible 主机
Ansible 通过一个名为hosts 的文件来跟踪它所知道的所有服务器,编辑该文件以添加要管理的主机信息。

sudo vi /etc/ansible/hosts
示例配置:
[webservers] 192、168.1.10 ansible_ssh_user=root 192、168.1.11 ansible_ssh_user=root
五、使用简单的 Ansible 命令
1. 测试连接
使用ping 模块测试与所有主机的连接。
ansible m ping all
2. 运行命令
使用command 模块在远程主机上运行命令。
ansible webservers m command a "uname r"
六、高级用法:Playbooks
Playbooks 是 Ansible 的核心功能之一,用于定义一系列任务,这些任务将在目标主机上按顺序执行,以下是一个简单的 Playbook 示例:

name: Ensure httpd is installed and running
hosts: webservers
tasks:
name: Install httpd
yum:
name: httpd
state: present
name: Start and enable httpd
service:
name: httpd
state: started
enabled: true保存为site.yml,然后运行:
ansibleplaybook site.yml
七、常见问题及解答(FAQs)
Q1: Ansible 无法连接到远程主机怎么办?
A1: 确保 SSH 服务在远程主机上正常运行,并且防火墙允许 SSH 流量,检查hosts 文件中的主机名和 IP 地址是否正确,以及是否使用了正确的 SSH 用户。
Q2: Ansible 脚本执行失败,提示权限不足怎么办?
A2: 确保你有足够的权限来执行 Ansible 命令,通常需要以 root 用户或具有适当权限的用户身份运行,如果问题仍然存在,请检查目标主机上的权限设置,确保 Ansible 有权执行所需的操作。
Ansible 是一款功能强大且易于使用的自动化工具,适用于各种规模的 IT 环境,通过简单的配置和直观的语法,Ansible 可以帮助管理员高效地管理和维护大量服务器和设备。
