
它是什么
管理员编写一个 playbook,这是一个 YAML 文件,列出每台服务器应处于的状态:安装了哪些软件包、存在哪些用户、配置文件包含什么内容、哪些服务在运行。Ansible 读取 playbook,并让每台服务器与之保持一致。
它是无代理的。被管理的服务器上不需要额外安装任何东西;Ansible 通过 SSH 连接每台服务器,方式与管理员登录 Linux 服务器相同,并在上面运行一些小程序。这些程序大多用 Python 编写,因此服务器需要有可用的 Python。
运行是幂等的。如果服务器已经与 playbook 一致,Ansible 就不会动它,并报告没有变更,因此可以放心地重复运行同一个 playbook,来检查配置漂移或修复漂移。
主要组成部分
- Inventory(清单):Ansible 所管理服务器的列表,按角色或位置分组,例如 Web 服务器和数据库服务器。
- Playbook:描述要对哪个组执行什么操作的 YAML 文件。
- Role(角色):可复用的任务集合,例如标准的防火墙配置,多个 playbook 可以共用。
企业能从中获得什么
- 一致的服务器:由同一个 playbook 构建的每台服务器,最终配置都相同。
- 经过审阅的变更:playbook 是文本文件,因此可以存放在 Git 中,每次变更都有记录,并可在运行前审阅。
- 更快重建:出故障的服务器可以依据 playbook 替换并重新配置,而不必靠记忆。
Ansible 与 Terraform
两者经常配合使用。Terraform 创建基础设施,例如虚拟机、网络和云账户。然后由 Ansible 配置这些机器上运行的内容。两者的职责略有重叠,但通常是这样分工的。
KawaConnect 如何使用配置自动化
我们管理 Ubuntu、Debian 和 RHEL 系列服务器,并把基础设施即代码保存在版本控制中。Kubernetes 集群采用 GitOps 运行,集群的配置存放在 Git 仓库中。把配置保存在文件里,而不是某个人的脑子里,意味着构建可以重复,每次变更都有记录。
相关服务
了解更多
- Ansible 文档官方指南和模块参考,用于编写 inventory、playbook 和 role。
- Ansible 网站Red Hat 的 Ansible 站点,介绍开源项目和提供支持的 Ansible Automation Platform。
- 维基百科上的 Ansible对 Ansible 的工作原理及其如何成为 Red Hat 一部分的中立概述。