基于Linux的企业自动化实践:服务器的构建、部署与管理_【美】詹姆斯·弗里曼_AZW3_MOBI_EPUB_PDF_电子书(无页码)_【美】詹姆斯·弗里曼
内容节选
8.2 安装Pulp用于修补程序管理 在研究Pulp的实际安装方面之前,让我们更深入地了解一下为什么要使用它。在本书中,我们一直在主张构建一个标准化的Linux环境,它具有高度的可重复性、可审计性和可预测性。这些不仅是自动化的基础,而且是企业的良好实践。 假设你构建了一个服务器,并使用Ansible为其部署了一个新的服务,正如我们在本书前面所述。到目前为止,Ansible剧本提供了关于构建标准的文档,并确保以后可以准确地重复构建。然而,这里有一个陷阱。假设几个月后,你返回来创建另一台服务器,可能是为了扩展应用程序或用于灾难恢复(Disaster Recovery,DR)场景。 根据软件包的来源,将发生以下两种情况之一: · 如果从面向Internet的公共存储库安装,则两个版本都将具有在构建之日安装的所有软件包的最新版本。这种差异可能是显著的,如果已经花费了时间在给定的Linux版本上通过了软件测试和鉴定,你可能无法在不同的软件包版本上保证这一点。当然,一切都是最新的,你会拥有所有最新的安全修补程序和对bug的修复,但每次你在不同的日子执行这个构建时,你很容易得到不同的软件包版本。这会导致可重复性问题,特别是要确保在一个环境中测试过的代码在另一个环境中正常工作时。 · 尺度的另一极端是ISO构建存储库,我们在第6章中使用了它。它们永远不会改变(除非有人下载一个较新的ISO并提取它,覆盖了旧的ISO的内容),因此,尽管它生成的版本完全已知(因此支持我们的可重复性目标),但它们永远不会收到任何安全更新。这本身可能是个问题。 当然,妥协是在这两个极端之间找到一个中间立场。如果有可能创建我们自己的软件包存储库,这些软件包是公共存储库的给定时间点的快照,那么当我们需要它们时,它们仍然是静态的(从而确保构建的一致性),而且如果出现重要的安全修复程序,还可以根据需要进行更新。我们在这里需要借助Pulp项目,它完全有能力做这些事情。它也是一些更复杂的基础设施管理解决方案(如Katello)中的一个组件,我们将在下一章中介绍。 然而,对于不需要图形用户界面(Graphical User Interface,GUI)的安装,Pulp完全满足了我们的需求。让我们看看如何安装它。 安装Pulp 正如我们在第1章中所讨论的那样,在本书中,即使你可能已经围绕给定的Linux发行版(如Ubuntu服务器)构建了标准化的操作环境,但有时你也必须创建一个例外情况。Pulp就是这样一种情况,因为尽管它可以支持管理.rpm和.deb包(因此可以处理各种Linux发行版的存储库需求),但它只基于CentOS、Fedora和RHEL的操作系统被打包,因此最容易安装在这些操作系统上。仍然可以用Pulp管理Ubuntu服务器,只需要把它安装在CentOS(或者你喜欢的Red Hat变种)上。 Pulp的安装有几个方面。例如,Pulp依赖于MongoDB安装,如果需要,它可以是外部的。类似地,它也依赖于消息总线,并且可以优先使用RabbitMQ或Qpid。大多数组织对此都有自己的标准,因此定义最适合你的企业的体系结构留作练习。在本章中,我们将在一台服务器上执行一个非常简单的Pulp安装,以演示所涉及的步骤。 考虑到安装Pulp的相对复杂性,建议为Pulp安装创建一个Ansible剧本。因为Pulp的安装没有普适的,所以在本章中,我们将手动完成安装,以演示所涉及的工作,安装步骤如下: 1.在开始安装之前,构建一个虚拟(或物理)服务器来承载Pulp仓库。对于示例,我们将以CentOS 7.6为基础,它是在编写本书时支持的最新版本。另外,请注意以下文件系统要求: · /var/lib/mongodb:我们将在同一主机上使用MongoDB构建示例Pulp服务器。MongoDB数据库的大小可以增长到10GB以上,建议将此路径挂载到一个专用的LVM备份文件系统上,以便在需要时可以轻松地扩容它,并且如果它确实填满了,它不会造成系统的其余部分停止工作。 · /var/lib/pulp:这个目录是Pulp存储库所驻留的地方,同样,它应该位于一个专用的LVM支持的文件系统上。此目录大小将由你希望创建的存储库大小决定。例如,如果要镜像20 GB的上游存储库,则/var/lib/pulp的大小至少需要为20 GB。这个文件系统也必须是基于XFS的,如果是在ext4上创建的,就有耗尽inode的风险。 2.一旦满足了这些要求,就必须安装EPEL存储库,因为Pulp安装将从下面提取软件包: $ sudo yum install epel-release 3.安装Pulp存储库文件,代码如下: $ sudo wget -O /etc/yum.repos.d/rhel-pulp.repo https://......
- 信息
- 推荐序一
- 推荐序二
- 前言
- 作者简介
- 审校者简介
- 第一部分 核心概念
- 第1章 在Linux上构建标准操作环境
- 1.1 了解Linux环境扩展的挑战
- 1.2 什么是SOE
- 1.3 探索SOE的好处
- 1.4 知道何时偏离标准
- 1.5 SOE的持续维护
- 1.6 小结
- 1.7 思考题
- 1.8 进一步阅读
- 第2章 使用Ansible实现IT基础设施自动化
- 2.1 技术要求
- 2.2 探索Ansible的剧本结构
- 2.3 探索Ansible中的清单
- 2.4 理解Ansible中的角色
- 2.5 理解Ansible变量
- 2.6 理解Ansible模板
- 2.7 把Ansible和SOE结合起来
- 2.8 小结
- 2.9 思考题
- 2.10 进一步阅读
- 第3章 使用AWX优化基础设施管理
- 3.1 技术要求
- 3.2 AWX简介
- 3.3 安装AWX
- 3.4 从AWX运行剧本
- 3.5 使用AWX自动化日常任务
- 3.6 小结
- 3.7 思考题
- 3.8 进一步阅读
- 第二部分 标准化Linux服务器
- 第4章 部署方法
- 4.1 技术要求
- 4.2 了解你的环境
- 4.3 保持构建的高效
- 4.4 保证Linux映像的一致性
- 4.5 小结
- 4.6 思考题
- 4.7 进一步阅读
- 第5章 使用Ansible构建部署的虚拟机模板
- 5.1 技术要求
- 5.2 执行初始构建
- 5.3 使用Ansible构建和标准化模板
- 5.4 使用Ansible清理构建
- 5.5 小结
- 5.6 思考题
- 5.7 进一步阅读
- 第6章 带有PXE引导的自定义构建
- 6.1 技术要求
- 6.2 PXE引导基础知识
- 6.3 执行无人值守的构建
- 6.4 将自定义脚本添加到无人值守的引导配置中
- 6.5 小结
- 6.6 思考题
- 6.7 进一步阅读
- 第7章 使用Ansible进行配置管理
- 7.1 技术要求
- 7.2 安装新软件
- 7.3 使用Ansible进行配置更改
- 7.4 管理企业级规模的配置
- 7.5 小结
- 7.6 思考题
- 7.7 进一步阅读
- 第三部分 日常管理
- 第8章 使用Pulp进行企业存储库管理
- 8.1 技术要求
- 8.2 安装Pulp用于修补程序管理
- 8.3 在Pulp中构建存储库
- 8.4 使用Pulp进行修补
- 8.5 小结
- 8.6 思考题
- 8.7 进一步阅读
- 第9章 使用Katello进行修补
- 9.1 技术要求
- 9.2 Katello简介
- 9.3 安装Katello服务器
- 9.4 使用Katello进行修补
- 9.5 小结
- 9.6 思考题
- 9.7 进一步阅读
- 第10章 在Linux上管理用户
- 10.1 技术要求
- 10.2 执行用户账户管理任务
- 10.3 使用LDAP集中管理用户账户
- 10.4 强制执行配置和审计配置
- 10.5 小结
- 10.6 思考题
- 10.7 进一步阅读
- 第11章 数据库管理
- 11.1 技术要求
- 11.2 使用Ansible安装数据库
- 11.3 导入和导出数据
- 11.4 执行日常维护
- 11.5 小结
- 11.6 思考题
- 11.7 进一步阅读
- 第12章 使用Ansible执行日常维护
- 12.1 技术要求
- 12.2 整理磁盘空间
- 12.3 监控配置漂移
- 12.4 使用Ansible管理进程
- 12.5 使用Ansible滚动更新
- 12.6 小结
- 12.7 思考题
- 12.8 进一步阅读
- 第四部分 保护Linux服务器
- 第13章 使用CIS基准
- 13.1 技术要求
- 13.2 了解CIS基准
- 13.3 明智地应用安全策略
- 13.4 服务器加固的脚本化部署
- 13.5 小结
- 13.6 思考题
- 13.7 进一步阅读
- 第14章 使用Ansible进行CIS加固
- 14.1 技术要求
- 14.2 编写Ansible安全策略
- 14.3 使用Ansible应用企业范围的策略
- 14.4 使用Ansible测试安全策略
- 14.5 小结
- 14.6 思考题
- 14.7 进一步阅读
- 第15章 使用OpenSCAP审计安全策略
- 15.1 技术要求
- 15.2 安装OpenSCAP服务器
- 15.3 评估和选择策略
- 15.4 使用OpenSCAP扫描企业环境
- 15.5 解释扫描的结果
- 15.6 小结
- 15.7 思考题
- 15.8 进一步阅读
- 第16章 提示和技巧
- 16.1 技术要求
- 16.2 脚本的版本控制
- 16.3 清单——维护单一的事实来源
- 16.4 使用Ansible运行一次性任务
- 16.5 小结
- 16.6 思考题
- 16.7 进一步阅读
- 参考答案