第 11 章 作为代码构建服务器 将服务器作为代码来构建
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
基础架构即代码 "最初是作为一种配置服务器的方式出现的。系统管理员编写 shell、批处理和 Perl 脚本。CFEngine 率先使用声明式、惰性 DSL 在服务器上安装软件包和管理配置文件,Puppet 和 Chef 也紧随其后。这些工具假定你是从现有的服务器开始的--通常是机架上的物理服务器,有时是使用 VMware 的虚拟机,后来是云实例。
现在,我们要么专注于基础设施堆栈,而服务器只是其中的一部分,要么我们使用容器集群,而服务器是其中的一个底层细节。
但服务器仍然是大多数应用程序运行环境的重要组成部分。大多数运行了几年以上的系统都至少在服务器上运行一些应用程序。即使是运行集群的团队,通常也需要为主机节点构建和运行服务器。
与 Network+ 和存储等其他类型的基础设施相比,服务器更为复杂。它们有更多的活动部件和变化,因此大多数系统团队仍然要花费大量时间研究操作系统、软件包和配置文件。
本章介绍以代码形式构建和管理服务器配置的方法。本章首先介绍服务器的内容(需要配置的内容)和服务器生命周期(配置活动发生的时间)。然后介绍服务器配置代码和工具。本章的主要内容包括创建服务器实例的不同方法、如何预构建服务器以便创建多个一致的实例,以及在服务器生命周期中应用服务器配置的方法。
如图 11-1 所示,将服务器的生命周期视为几个过渡阶段可能会有所帮助。
图 11-1. 服务器的基本生命周期
这里显示的基本生命周期有三个过渡阶段:
-
创建和配置服务器实例
-
更改现有服务器实例
-
销毁服务器实例
本章介绍创建和配置服务器。第 12 章介绍如何对服务器进行更改,第 13 章讨论创建和更新服务器映像,您可以使用这些映像创建服务器实例。
服务器上有什么
思考一下服务器上的各种东西以及它们的来源是非常有用的。
将服务器上的内容分为软件、配置和数据是一种思路。如表 11-1 所述,这些类别有助于理解配置管理工具应如何处理特定文件或文件集。
配置与数据的区别在于自动化工具是否会自动管理文件中的内容。因此,即使系统日志对基础架构至关重要,自动化配置工具也会将其视为数据。同样,如果应用程序将账户和用户偏好等内容存储在服务器上的文件中,服务器配置工具也会将该文件视为数据。
| 事物类型 | 说明 | 配置管理如何处理 |
|---|---|---|
软件 |
应用程序、库和其他代码。这些文件不一定是可执行文件,几乎可以是任何静态文件,而且不会因系统不同而变化。Linux 系统上的时区数据文件就是一个例子。 |
确保在每个相关服务器上都是一样的;不在乎里面有什么。 |
配置 |
用于控制系统和/或应用程序工作方式的文件。根据服务器的角色、环境、实例等不同,其内容也会有所不同。这些文件作为基础架构的一部分进行管理,而不是由应用程序本身管理配置。例如,如果一个应用程序有一个管理用户配置文件的用户界面,那么从基础架构的角度来看,存储用户配置文件的数据文件就不属于配置,而属于数据。但是,存储在文件系统中并由基础架构管理的应用程序配置文件在这个意义上就属于配置。 |
在服务器上生成文件内容;确保内容一致。 |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access