前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IT运维之路-从标准化到自动化(第一篇)

IT运维之路-从标准化到自动化(第一篇)

作者头像
魏新宇
发布2018-03-22 14:46:57
1.7K0
发布2018-03-22 14:46:57
举报

前言

笔者在上一篇文章《从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功能如下:

  • 可在裸金属,虚拟化和基于云的环境中进行操作系统以及应用的部署
  • 联邦式的内容分发
  • 支持基于build以及基于镜像的部署
  • 发现还未被部署的的主机

软件管理的功能如下:

  • 定义和管理标准的操作环境
  • 针对安全漏洞(Heartbleed/shellshock)快速的相应
  • 遵守组织内部的相关安全策略
  • 部署所有红帽相关的基础设施以及第三方软件

订阅管理的功能如下:

  • 集中的管理订阅使用
  • 维护准确的库存和利用率的相关信息
  • 按小组为单位的订阅消耗报告

配置管理的功能如下:

  • 定义系统所需的状态
  • 管理和修复配置状态漂移
  • 变更时的审核及报告

所以,红帽卫星第一件做的事情,就是让客户的操作环境标准化。然而,在数据中心,在实现标准化的基础上,更进一步的追求是自动化。

自动化的目的是,使用工具代替人工,尽量淡化人为操作。人在此过程中只起到启动服务和监控的作用。它的好处是:

  • 工具代替人工,提高工作效率。
  • 工具代替人工,避免人为失误。让操作员可以花更多精力在服务的运行质量和效率方面。

在红帽卫星的四大核心功能中,标准化和自动化的角色是相互依存,密不可分的。非严格意义上,可以认为:软件管理、订阅管理、配置管理更偏向于实现标准化,而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环境。

当然,在红帽卫星的主目录,也可以设置环境并指定一个环境所属的组织:

  • 内容视图(Content View)

内容视图,顾名思义,管理的对象是内容。内容视图是一个或者多个软件仓库(YUM、Puppet模块等)的集合,通过内容视图,可以很方便的将一组服务器与之映射,实现统一的内容和配置管理。内容视图有版本的概念,用户需要根据实际需要发布新的版本,只有发布的版本才可以被客户端看到。

查看一个内容视图:

查看其内容,依次查看,先看Yum内容:

查看puppet模块:

查看历史记录:

内容视图管理,需要和生命周期配合使用。

软件生命周期,可以自定义,也可以参照Satellite默认的周期。

生命周期与内容视图是相互配合进行使用的,假设视图david经过不断的开发和测试,已经发布了2个版本,我们期望将其中的version2 提升到Dev环境中,这样属于Dev的技术人员就可以在Dev环境部署david的这个版本了,步骤如下:

发布新版本的方法:

推广版本至Dev环境:

结合内容视图和生命周期管理,可以使客户的开发、运维、生产环境更加规范化和流程化。

总结:至此,笔者从架构角度介绍了Satellite的基本功能和内部一些架构。相信读者对此有了一定的了解。后续笔者会继续分享。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大魏分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档