在在Windows平台上实现云自动化平台上实现云自动化
对于如今的Windows自动化领域来说,可以以几种不同的方式来看待它的发展。一种方式是将Windows自动化目前的状况与
五年之前进行比较,这种方式或许会令人对于这门技术的发展深受鼓舞,并对未来的发展充满乐观。另一种方式是将如今的
Windows自动化生态系统与基于Linux的基础设施中所用的工具进行比较。一眼看上去它们似乎没什么不同,但随着你更深入
的观察与更多的实践之后,你开始意识到真实的情况,不可否认,Windows自动化的成熟度与Linux相比确实存在着差距。
这两种比较方式都与当前的Windows自动化状况背后的故事相关。在本文中,我将通过对当今实际应用中的Windows自动化
场景的观察,深入探索这两种比较方式的意义。Windows自动化在2014年的发展情况如何?痛点在哪里?它与Linux平台有着
怎样的不同?Windows和Linux是否会最终形成一种近似的自动化方式,还是说它们依旧水火不容,各自在自己的市场中占据
一席之地?
你采用的Windows自动化方式可能与我的不同
实现Windows自动化的方式多种多样,不过这些方式最终可以归结为这三类:
1.完全不采用自动化
2.企业级解决方案
3.开源(但未必是免费的)
首先看一下第一种方式,用户选择不断重复琐事并决定不采用自动化。第二种方式能够提供漂亮的报表,但要经过无数次的点
击,可能还会提供一个功能有限的可编程API界面。第三种方式通过原始代码的集成提供了极大的灵活性,但往往提供的文档
很有限,并且需要编写大量的自定义代码才能够创建一个完整的端到端解决方案。本文主要专注于第三种方式,因为我个人对
这种方式最有经验。
设置
首先让我们来讨论一下设置。虽然设置Windows环境的方式有很多,但我所展示的方式是我们在CenturyLink Cloud平台上所
应用的流程。由于我们的环境中混合使用了Linux与Windows服务器,因此需要一种能够集成这两种操作系统的解决方案。我
们最终决定使用Chef作为配置管理工具,并且成为它们的机器资源产品 —— Chef Metal的beta版本的早期使用者。我们所使
用的主要虚拟平台是VMware vSphere。现在让我们看一看这些技术是通过怎样的方式结合在一起,对Windows和Linux机器
进行设置的:
如图所示,我们通过一个设置器节点保存着某个数据中心所有服务器的目录(由Chef服务器提供),如果它察觉某个服务器
没有被正确设置,并且它存在于这个目录之中,那么设置器就会使用Chef Metal对该节点进行设置。Chef Metal为Chef生态环
境提供了一种新的“资源”,即机器资源。这种资源的定义包括核的数量、内存、VM镜像的模板等属性。
machine 'web' do
machine_options :memory_mb => 4096, :num_cpus => 2
recipe 'active_directory'
end
Chef Metal本身了解在Chef中的机器的通信情况,但它并不了解VMware的存在。使用者可以利用Chef Metal的插件模型创建
一个驱动程序,它知道如何与ruby vSphere SDK(rbvmomi)进行交互,并且能够将Chef Metal的高层次抽象转换为实际的
VM、数据存储、集群、操作系统自定义模板等等。
驱动程序代码在Chef Metal中表现为一种计算资源,Chef Metal从而了解如何在Chef客户端中引导这一实例,并将其转换为在