现在,多平台已经成为IT基础设施的标准。为了解决这一问题,微软将其关键的配置工具引入Linux和Mac OS,这样做的目的是为了方便客户和合作伙伴处理他们的工作负载,这也使操作管理套件成为配置管理的未来。

微软的关键.NET脚本和管理框架现在是开源的,Linux(最初是Ubuntu、RedHat和CentOS)和Mac OS都可以使用,而且云和传统的基础设施公司都在加强对它的支持。
在微软总经理Satya Nadella的领导下,微软的开源、Linux和Mac OS的公告已经成为惯例,但让PowerShell完全开源并使其跨平台这一点尤为重要——不仅仅是因为Linux的PowerShell是客户长期以来一直在要求的东西。
Jeffrey Snover参加了2009年的PDC小组讨论
微软的企业云集团的首席架构师Jeffrey Snover告诉CIO.com,客户想要的是对企业所拥有的异构基础设施的更多支持,这些基础设施现在包括云服务,并能够从他们希望使用的任何客户端完成他们的工作。我们的利益是,既要让计算机的使用变得超级简单,又要让他们拥有足够的计算能力,而PowerShell可以使他们轻松地使用管理堆栈来管理所有的东西——Windows或Linux——并可以从他们想要的任何客户端进行操作。他们可以从Windows管理,可以从Linux管理,也可以从Mac OS管理。他们确实可以使用同样的工具和同样的人来管理来自世界各地的任何事情。”
PowerShell为陌生伙伴创造
Azure是微软对Linux越来越多的支持的主要推动因素之一;在大概有三分之一的虚拟机在Azure上运行Linux。但是,Linux的PowerShell远远超出了这个范围。
构建第三方连续监控计划的3个重要步骤
Snover指出:“PowerShell是一种管理产品在它上面构建的框架。”“厨师在上面构建,木偶在上面构建,我们有自己的云管理解决方案,操作管理套件,OMS也将在上面构建。OMS的任务是帮助客户管理他们的工作负载;不管是在Azure、AWS或谷歌云引擎上,还是在使用Hyper-V或VMware的前提下,他们拥有的任何工作负载、Windows或Linux,都可以在任何地方使用。Linux上的PowerShell提供了框架和基础设施来实现这一目标。PowerShell确实是任何与Windows有关的人管理数据中心和云的方式,现在我们希望把它扩展到可以处理一切的方式。”
也许会令人惊讶,VMware是一个主要的PowerShell用户,已经移植了他们的PowerCLI工具,拥有超过400个用于管理和自动化vSphere、vCloud和vRealize操作管理器,到Linux的PowerShell 命令。“当Satya说要去做客户需要完成的事情时,做客户需要做的事情需要和一些奇怪的合作伙伴合作,”Snover开玩笑说,但接着他又指出,“他们是最早的PowerShell的使用者之一。”
VMware产品经理Alan Renouf说,这对消费者来说是两极分化的。“长期以来,我们的客户都与PowerShell有一种爱恨交织的关系。客户喜欢这样的事实:我们拥有所有这些针对他们环境的命令,并从头到尾自动化它们的基础设施。但是我们的Mac和Linux客户并没有感受到这种爱;他们无法利用这一技术,因为到目前为止,这是一项Windows技术。Renouf相信客户会欢迎服务器的支持,以及从一台机器上做任何事情的能力。无论您在哪里编写脚本,现在您都可以在任何地方运行它。我可以把它写在Mac上,然后在Linux上运行它,然后使用Docker来部署所有的虚拟机。”
AWS是用于Linux的PowerShell的另一个启动伙伴,它移植了现有的PowerShell命令。“猜猜怎么样?一群客户在AWS上运行工作负载,AWS是一个非常活跃的PowerShell社区,”Snover解释说,然后他继续说道,“现在谷歌刚刚宣布他们已经有了PowerShell项目。”
早期的PowerShell
微软在慢慢地把PowerShell的部分功能引入Linux。Linux的理想状态配置和SSH支持的承诺在2014实现(在Microsoft开源之前的几个月,引入网络核心到Linux)。Snover指出,不同之处是,“您必须在Windows平台上编写脚本,还有必须在Windows平台上配置东西,然后将所需的配置交付到Linux系统并将其配置;现在您可以在Linux上完成这些事情了。”
去年,微软还宣布它将会支持OpenSSH——Linux将对PowerShell给出承诺。Snover解释说:“我们的团队正在接受OpenSSH,并将客户和服务器都移植到Windows上。”“这并不是某种武器长度的整合。我们将它整合到PowerShell的核心;它将是PowerShell remoting协议的本地传输。顾客拥有选择权;当使用这些机器的时候,我想通过WinRM与它们对话,当我使用这些机器的时候,就需要越过OpenSSH。”
Linux的PowerShell与Windows的PowerShell并不完全相同,尽管两者可以同时使用源代码。在Linux端口,他们有明显的区别,比如对Linux增加大小写敏感性。“在Linux的上下文中,有一组命令是没有作用的,比如事件日志,所以我们删除了这些命令。随着时间的推移,我们将会开发更多的本地Linux命令来支持Linux的等价物。”他解释说。
Snover说,能在GitHub上有效运用的PowerShell代码是一个alpha版本。“我们处于学习模式,我们对自己的技术充满信心,同时也很谦虚,了解Linux社区需要什么,并帮助我们优先安排待办事项。”我们希望人们能够坚定地认为Linux将是一流的系统,我们将同时在这两个平台上发布PowerShell更新。”
为了解决这个问题,在VS代码中提供PowerShell编辑支持的PowerShell服务也将支持Linux上的升华编辑器。“展望未来,这项技术将点亮Emacs、Vim和其他许多编辑器。
PowerShell会成为Linux管理员的一种工具,而不是试图成为一种特殊的,微软使用的Linux操作方法。“纯粹的Linux用户会看着它说,这只是我的工具架上的另一个工具。有很多工具和脚本语言,一般来说,Linux倾向于使用多语言。Linux的PowerShell将是另外一个shell。它的优点是,我们拥有比很多人都更丰富的脚本语言,而且我们有更广泛的动态范围;一开始您可以随意和草率,然后变得非常正式。”
他相信,这将是对越来越多的REST APIs和JSON对象在Linux上的一种很好的匹配。当您得到结构化数据时,PowerShell就会启动。许多Linux世界不是结构化的,但它变得越来越多。越来越多的Linux可以通过结构化对象来使用,因为它们通过REST API呈现了一些内容,而在Linux上,PowerShell的最大优点之一就是能够处理结构化对象。当这种情况发生时,PowerShell就不再使用它。您会得到传统的PowerShell体验,您可以像读英语句子一样阅读它,所以您知道它在做什么。Snover认为,由于有太多的文本文件配置了Linux选项,这很容易出错,他相信PowerShell的错误检查将会很有吸引力。“我乐观看待,他们会喜欢这样,因为犯错的后果会很严重。”这让它变得简单易行。”
依赖开放源码
PowerShell不仅仅是用于管理每个微软服务器产品的脚本工具,从Windows服务器到Exchange。Windows Server 2016,微软希望通过Windows Server 2016中的Nano Server 选项,将高度自动化和标准化的服务器运行方式转换到企业数据中心,,这是该模式的重要组成部分。(无论你您上面使用什么管理工具,PowerShell remoting都是您在Nano服务器上工作的方式。)将PowerShell引入Linux和Mac OS是建立在微软为这些平台和PowerShell Core所做的工作的基础上的,Windows Server团队为Nano Server创建了Windows服务器团队,这是PowerShell的Linux端口的基础。
如果您考虑Windows Server 2016支持容器的方式,那么对于微软来说。这依赖于来源的方式是前所未有的::在安装Windows Server 2016之后,您仍然需要从Docker安装第三方开源码软件,以此获得完整的解决方案,但您可以使用PowerShell for Docker进行管理,该程序可用于Windows或Linux上的Docker容器。
这就是微软认识到devops和开源在商业中的现实(利用其资源来帮助改进它;例如,它正在与OpenSSH项目合作,以帮助改进协议的安全性。)但关键受益者的其中之一可能是微软的新云管理服务。“OMS在平台上提供了高可用性、图形创作、完整的端到端解决方案,”Snover解释。“我们在OMS上的任务是能够创建、配置和管理所有的工作负载。”
因为OMS构建在PowerShell之上,这也可以帮助它在系统中心停止的地方重新定位,微软已经将设备管理转移到云上;现在服务器和云管理也在移动,在任何地方获得PowerShell都是微软如何实现这一工作的重要部分。
上述内容是由dreamhost中文指南(http://dreamhost.cn/)为大家提供的,如果您想了解更多信息,请继续关注dreamhost中文指南,如果您想转载此内容,请注明出处。