前言
笔者在上一篇文章《从Gartner IT成熟度模型谈Linux运维》中已经提到了红帽卫星。在这篇文章中,笔者主要介绍了如何通过红帽卫星提升客户OS 运维成熟度模型。但红帽卫星能做的事情不仅限于此,它是红帽SOE(Standard Operating Environment)架构的落地工具。本文主要从架构角度介绍红帽卫星的功能。由于内容较多,计划分三篇完成。
红帽卫星的核心,是围绕着生产运维标准化和自动化展开的。标准化的好处,笔者在上一篇文章已经做过介绍,本文不再赘述。至于红帽卫星如何通过自身功能,实现标准化和自动化,是本系列文章介绍的重点。
红帽卫星与开源项目的关系
笔者在之前的文章不断贯彻一个理念:红帽的企业级产品,在社区均有其对应的开源项目。红帽卫星也不例外,与它相关的开源项目有5个:
而红帽卫星的功能有四个,将它们对应起来的关系是:
Satellite | Provisioning | Configuration Management | Subscription Management | Software Management |
---|---|---|---|---|
开源项目 | FOREMAN | Puppet | Candlepin | Pulp+Katello |
需要注意的是,以上的对应关系是从架构角度考虑的,而非具体技术细节。例如,拿Foreman来说,Foreman是一个物理和虚拟服务器的完整的生命周期管理工具(Foreman is a complete lifecycle managementtool for physical and virtual servers),它是一个框架性的工具,在部署操作系统的时候,又可以调用Kickstart、jumpstart、Puppet等工具。由于篇幅有限,这里不一一详细展开讲述。
那么,红帽的几个核心功能分别是做什么用的呢?下面进行详细介绍。
红帽卫星核心功能介绍
从里往外顺时针看,红帽卫星的核心功能分别为:Provisioning, Configuration Management, Subscription Management,Software Management。
Provisioning功能如下:
软件管理的功能如下:
订阅管理的功能如下:
配置管理的功能如下:
所以,红帽卫星第一件做的事情,就是让客户的操作环境标准化。然而,在数据中心,在实现标准化的基础上,更进一步的追求是自动化。
自动化的目的是,使用工具代替人工,尽量淡化人为操作。人在此过程中只起到启动服务和监控的作用。它的好处是:
在红帽卫星的四大核心功能中,标准化和自动化的角色是相互依存,密不可分的。非严格意义上,可以认为:软件管理、订阅管理、配置管理更偏向于实现标准化,而Provisioning更偏向于自动化,它实现的是OS和应用安装部署的自动化。
红帽卫星的架构
红帽卫星的管理架构,分为两部分:Satellite Server、Satellite Capsule。
我们知道RHEL的服务是基于订阅的。RHEL购买订阅服务以后,需要进行注册,然后可以从红帽在线获取补丁包、升级包等。
RHEL注册的方法:
#subscription-manager register
而有了红帽卫星以后,由Satellite Server负责从红帽同步客户购买的产品订阅,集中存储起来,并进行管理,更新这些订阅相关的软件包或puppet模块,并把软件包或puppet模块按需同步到一个或多个capsule server;
关于红帽卫星中的Satellite Server和Capsule server,相对比较正式的说法如下:
Capsule server:主要负责与受管主机直接进行通信;它得到从Satellite server同步过来的软件包或puppet模块等内容,成为了一个远程的yum源以及puppet master,供受管主机进行软件包的安装及更新和系统配置的同步;它能够根据受管主机所属的组织机构和位置的不同扩展出多个节点,极大地分散了负载,受管主机的规模也能轻松扩展;另外,当需要系统部署功能时,它也提供了PXE环境和kickstart模板;
按照比较容易理解的方式讲:Satellite Server负责从红帽获取软件包、Puppet模块等,然后用它给受管操作系统使用(可以是物理机、虚拟机、云环境中的RHEL操作系统)。但是,如果在一个比较大的数据中心,一个Satellite Server是远远不够的。此外,有的客户想跨区域对多个数据中心统一管理,仅仅靠一个Satellite Server是不够的,这就需要Capsuleserver。
比如,一个客户有两个数据中心,一个在天津。两个数据中心要实现一体化标准运维。那么,就可以通过一套红帽卫星实现。将Satellite Server放置在一个数据中心,如北京,它管理北京数据中心并负责订阅产品的下载。Capsule server则放置在天津数据中心,它负责上海数据中心以及从北京数据中心的SatelliteServer同步内容。通过Satellite Server和Capsule server,既实现了多数据中心运维的统一性,又实现了管理模块的分布式。
红帽卫星深入分析
要深入了解红帽卫星的四大功能,首先要了解一些基本概念。
Organization组织:红帽卫星中租户的概念。我们先看一下,创建组织的步骤:
输入组织名称:
接下来,选择主机,也就是选择计算资源。点击“全部分配”:
可以看到组织中有一个主机:
接下来,可以编辑组织,可以设置很多项,这里面,我们重点关注几项:
媒体,它的作用是设置组织中可用的操作系统源。也就是说,在向红帽卫星中添加主机的时候,它能安装的操作系统,就是在这里选择的。这里我们选择RHEL
当然,我们也可以在安装介质的界面,设置某一个安装介质属于哪个组织:
模板,就是部署操作系统和应用时,能够调用的安装方式
主机组,主机组里包含一个或者多个主机。
环境,选择的是该组织能使用的puppet环境。
当然,在红帽卫星的主目录,也可以设置环境并指定一个环境所属的组织:
内容视图,顾名思义,管理的对象是内容。内容视图是一个或者多个软件仓库(YUM、Puppet模块等)的集合,通过内容视图,可以很方便的将一组服务器与之映射,实现统一的内容和配置管理。内容视图有版本的概念,用户需要根据实际需要发布新的版本,只有发布的版本才可以被客户端看到。
查看一个内容视图:
查看其内容,依次查看,先看Yum内容:
查看puppet模块:
查看历史记录:
内容视图管理,需要和生命周期配合使用。
软件生命周期,可以自定义,也可以参照Satellite默认的周期。
生命周期与内容视图是相互配合进行使用的,假设视图david经过不断的开发和测试,已经发布了2个版本,我们期望将其中的version2 提升到Dev环境中,这样属于Dev的技术人员就可以在Dev环境部署david的这个版本了,步骤如下:
发布新版本的方法:
推广版本至Dev环境:
结合内容视图和生命周期管理,可以使客户的开发、运维、生产环境更加规范化和流程化。
总结:至此,笔者从架构角度介绍了Satellite的基本功能和内部一些架构。相信读者对此有了一定的了解。后续笔者会继续分享。