本书提供了一系列有价值的过程、方法和工具,用于在企业级精简和高效管理Linux部署。本书将为你提供使用Ansible、AWX(Ansible Tower)、Pulp、Katello和OpenSCAP等开源工具所需的知识和技能,以标准化Linux资产并进行大规模管理。你将了解标准操作环境的创建,以及如何使用Ansible定义、记录、管理和维护这些标准。此外,你还将了解安全加固标准,如CIS基准。本书将提供一些实际的例子供你尝试,你可以在此基础上构建自己的代码,并演示所涉及的原则。
本书适合需要设计、实现和管理Linux环境的人阅读。它旨在吸引广泛的开源人才——从基础架构师到系统管理员,包括高级人才。
读者需要精通Linux服务器的实现和维护,熟悉构建、修补和维护Linux服务器基础设施所涉及的概念。读者无须具有Ansible和其他自动化工具的先验知识,但具备这些知识更有助于阅读本书。
第1章 详细介绍了标准化的操作环境,这是一个贯穿全书的核心概念,是学习后续知识的基础。
第2章 提供了Ansible剧本(playbook)实际操作的详细分解,包括清单、角色、变量以及开发和维护剧本的最佳实践。你将学习到大量的Ansible知识来开始自动化之旅。
第3章 通过实例探讨了AWX的安装和使用,以便围绕Ansible自动化基础设施构建良好的业务流程。
第4章 带你了解与Linux环境中的大规模部署相关的各种方法,以及如何利用这些方法来最大限度地发挥企业的优势。
第5章 通过构建虚拟机模板来探索部署Linux的最佳实践,虚拟机模板将以实际操作的方式大规模部署在虚拟机管理程序上。
第6章 介绍了PXE引导的过程,带你了解何时可能无法使用模板化的方法构建服务器(例如,仍在使用裸机服务器),以及如何编写脚本以通过网络构建标准服务器映像。
第7章 提供了实例,说明如何在基础架构投入使用后对其进行管理,以确保一致性不限制创新。
第8章 介绍如何以受控的方式执行修补,以防止在使用Pulp工具的过程中把不一致性重新引入非常仔细地标准化后的环境。
第9章 在涉及Pulp工具的工作的基础上向你介绍Katello,提供了对存储库的更多控制,同时提供了一个用户友好的图形用户界面。
第10章 详细介绍了使用Ansible作为编排工具的用户账户管理,以及集中式身份验证系统(如LDAP目录)的用法。
第11章 介绍了如何在Linux服务器上使用Ansible来自动部署数据库和执行日常数据库管理任务。
第12章 探讨了Ansible可以在Linux服务器上执行的一些更高级的日常维护。
第13章 深入研究了CIS服务器加固基准测试以及如何在Linux服务器上应用它们。
第14章 介绍了如何使用Ansible以高效、可重复的方式在整个Linux服务器上推出安全加固策略。
第15章 提供了一个安装和使用OpenSCAP来持续审计Linux服务器违反策略的实践,因为最终用户可能会推翻安全标准。
第16章 给出了一些提示和技巧,使你的Linux自动化进程在面对企业不断变化的需求时能够平稳运行。
要想学习本书中的示例,你需要准备至少两台Linux机器进行测试。不过,要想更全面地开发这些示例,你可能需要更多的Linux机器。这些机器可以是物理机,也可以是虚拟机——所有示例都是在一组Linux虚拟机上开发的,但在物理机上也同样适用。在第5章中,我们在KVM虚拟机上使用嵌套虚拟化来构建Linux映像,该章开头列出了具体的技术要求。这将需要访问具有适当CPU的物理机来运行示例,或者访问支持嵌套虚拟化的虚拟机管理程序(例如,VMware或Linux KVM)。
注意,书中的一些示例可能会破坏网络上的其他服务。如果存在此类风险,则在每章的开头都会强调这一点。建议你在一个隔离的测试网络中尝试这些示例,除非你确信它们不会对你的操作产生任何影响。
尽管本书中提到了其他Linux发行版,但我们还是将重点放在两个关键的Linux发行版上——CentOS 7.6(如果你具备条件,欢迎使用Red Hat Enterprise Linux 7.6,它在大多数示例中也能正常工作)和Ubuntu Server 18.04。所有的测试机器都是从官方的ISO映像构建的,使用最小的安装配置文件。
如果需要其他软件,我们将带你完成安装所需的步骤,以便你完成示例。如果你选择完成所有示例,那么需要安装AWX、Pulp、Katello和OpenSCAP等软件。唯一的例外是FreeIPA,它在第10章中提及。为企业安装目录服务器是一个庞大的主题,遗憾的是,本书现有的篇幅不足以讲透它,因此,你可以借助其他资源研究这个主题。
本书假设你将从一台Linux测试机器上运行Ansible,但实际上Ansible可以在任何安装了Python 2.7或Python 3(3.5及更高版本)的机器上运行[控制机器支持Windows,但只有在较新版本的Windows上,通过运行在Windows Subsystem for Linux(WSL)层上的Linux发行版才能使用]。Ansible支持的操作系统包括(但不限于)Red Hat、Debian、Ubuntu、CentOS、macOS和FreeBSD。
本书使用了Ansible 2.8.x.x系列发行版本,但也有一些示例是针对Ansible 2.9.x.x的,后者是在本书编写过程中发布的。Ansible的安装说明参见https://docs.ansible.com/ansible/intro_installation.html。
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
本书的代码包也托管在GitHub上,网址是https://github.com/PacktPublishing/Hands-On-Enterprise-Automation-on-Linux。如果代码有更新,也将在现有的GitHub存储库中更新。
本书中使用以下排版约定。
代码体:表示文中穿插的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。例如:“首先,让我们创建一个名为loadmariadb的角色。”
代码块如下所示:
命令行输入或输出的表示方式如下所示:
加粗 :表示新术语、重要词语或你在屏幕上看到的内容。例如,菜单或对话框中的词语。示例:“从 管理面板 中选择 系统信息 。”
表示警告或重要信息。
表示提示和技巧。