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 可以帮助管理员高效地管理和维护大量服务器和设备。