Ansible 是一个开源的自动化工具,用于 IT 任务的配置管理、应用部署和任务自动化。它通过简单的 YAML 格式(称为 Playbooks)定义自动化任务,支持跨多台服务器执行配置、部署和服务编排。Ansible 的特点包括:
- 无代理架构:无需在目标主机上安装客户端软件,仅通过 SSH 或 WinRM 连接。
- 简单易用:使用 YAML 编写,易于阅读和维护,适合初学者。
- 模块化:提供丰富的模块,覆盖系统配置、云服务、网络设备等。
- 幂等性:确保重复执行任务不会导致意外更改。
- 跨平台:支持 Linux、Windows、云平台(如 AWS、Azure)和网络设备。
Ansible 广泛用于 DevOps 流程,简化服务器管理、应用部署和基础设施即代码(IaC)的实现。它由 Red Hat 维护,社区活跃,适用于从小型项目到企业级环境的自动化需求。
Ansible 的特点
- 无代理(Agentless):只需要目标机器能通过 SSH 访问,不需要在目标机器上安装专门的客户端。
- 声明式配置:用 YAML 写 playbook(剧本),描述想要的最终状态,Ansible 会自动完成步骤。
- 可扩展:支持大量模块(安装软件、管理用户、操作云资源等)。
一个简单例子
如果你要在 10 台服务器上安装 nginx
,可以写一个 playbook:
- hosts: webservers
become: yes
tasks:
- name: 安装 nginx
apt:
name: nginx
state: present
执行时,只要一条命令:
ansible-playbook install_nginx.yml
Ansible 就会自动在所有 webservers 主机组里的机器上安装 nginx。