Ansible

什么是 Ansible?

Ansible 是一款开源自动化工具,根据纯文本指令来配置和维护服务器。它由 Red Hat 开发,Red Hat 也销售提供技术支持的版本。

与工程师沟通 知识库
数据中心里成排带有状态指示灯的黑色服务器机架

它是什么

管理员编写一个 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 仓库中。把配置保存在文件里,而不是某个人的脑子里,意味着构建可以重复,每次变更都有记录。

相关服务

Linux 服务器支持

管理 Ubuntu、Debian 和 RHEL 系列服务器。

Kubernetes 咨询

配置保存在 Git 中的集群。

Proxmox 咨询

许多服务器所运行的虚拟机。

了解更多

  • Ansible 文档官方指南和模块参考,用于编写 inventory、playbook 和 role。
  • Ansible 网站Red Hat 的 Ansible 站点,介绍开源项目和提供支持的 Ansible Automation Platform。
  • 维基百科上的 Ansible对 Ansible 的工作原理及其如何成为 Red Hat 一部分的中立概述。

服务器是手工配置的?

告诉我们您的服务器目前是如何搭建和变更的。我们会说明把这些配置保存到文件中需要做什么。

开始沟通