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

前言

笔者在上一篇文章《从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的基本功能和内部一些架构。相信读者对此有了一定的了解。后续笔者会继续分享。

原文发布于微信公众号 - 大魏分享(david-share)

原文发表时间:2016-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯大数据的专栏

全民拥抱Docker云--Lhotse系统经验分享

前言 “只要站在风口,猪也能飞起来”,这碗心灵鸡汤不知道激励了多少英雄豪杰踏上寻风口之路。而现如今,Docker这阵龙卷风呼啸来袭,更让众人生起迎风而上、直冲云...

28590
来自专栏大魏分享(微信公众号:david-share)

RHEV--基于开源的企业级虚拟化解决方案

本文主要介绍Red Hat基于开源的企业级虚拟化解决方案RHEV。RHEV虽然是开源虚拟化解决方案,但是其易用性,可维护性是很高的。文中笔者通过与vSphere...

641130
来自专栏Timhbw博客

小白搭建博客教程-购买域名(1)

2016-06-0923:38:55 发表评论 438℃热度 上一回说道:小白搭建博客教程之流程,这次趁着端午节写完它,也算是一个了结。 ? 教程有4篇: 购...

1.2K80
来自专栏吉浦迅科技

NVIDIA Jetson开发压箱底的秘密都在这里,很多人还不知道(一)

经常有人在群里问我各种“小”问题: Jetson TX2 显存是多大? Jetson TX2 开发板的尺寸是多大?给我个孔位图纸 Jetson TX2 支持最...

82280
来自专栏编程微刊

百度地图API的使用示例

刚刚工作的时候写过百度地图API文档,那时候没有记录到技术博客里面,今天在群里看见有个姑娘在问这个问题,重温了一遍,这个API还算好用。百度地图API,集成简单...

11140
来自专栏跨界架构师

如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文

  前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西。比如促销、会员价等,在我们的第一篇文章(如何一步一步用DDD设计一个电商网站(一)—...

14620
来自专栏张善友的专栏

IISWeb应用防火墙WAF

随着Web应用的爆炸式成长,传统的IDS设备对于应用层尤其是HTTP应用层就显得越来越力不从心了。2008年,大规模SQL自动注入让Web安全越来越被人们所关注...

39450
来自专栏知无涯

建立自己安全可靠好记的网络密码体系!个人密码安全设置策略建议与技巧

54870
来自专栏Java社区

十个Java实战开发中必备的小策略

为什么开发要用GIT呢?因为要给自己一颗后悔药吃。只要经常commit,文件就可以随时回退到某个时刻的内容,再也不担心别人改了自己的文件,自己误删了文件,特别是...

32770
来自专栏MessageQueue

2017上海QCon之旅总结(下)

本来这个公众号的交流消息中间件相关的技术的。十月去上海参加了QCon,第一次参加这样的技术会议,感受挺多的,所以整理一下自己的一些想法接公众号和大家交流一下。

11920

扫码关注云+社区

领取腾讯云代金券