哇! 微软开源了 PowerShell

现今的客户们都活在多平台、多云、多 OS 的世界,这就是现实。新的世界带来了新的挑战,客户们须要工具来统筹全部工做中的事务。微软正致力于研发客户在任何地方均可以对整个公司各类平台、设备进行统一管理的工具,不管是在 Linux 仍是 Windows 平台上。这推进着一个更加开放,围绕客户的新变革,这使我天天更加满怀热情前往工做。
shell

你可能曾听 Satya Nadella 说过“微软爱 Linux “,目前看来,这句话已经变得不能再真了。 Azure 上面近乎三分之一的虚拟机运行着 Linux 。Azure 市场上有着 60% 的第三方 IaaS 提供的应用属于开源软件( OSS , Open Source Software )。咱们有着强大的虚拟第三方工业合做伙伴为用户扩展用户的可选择度。咱们在宣布开源 .NET 的同时也宣布了 SQL Server 能够直接运行在 Linux 上了。咱们将 Bash 添加到 Windows 10 上为的是提供一个更好的平台来研发开源软件。咱们也有大量的活跃开发者参与到各类跨领域的开源项目中( OpenSSH、FreeBSD、Mesos、Docker、Linux 等更多其余项目)。服务器

今天,咱们来开启漫漫旅途中的下一步。我十分激动于向你们分享 PowerShell 开源了这个消息!而且能在 Linux 上运行了!(咱们来回顾一下, PowerShell 是一个基于任务式的命令行 shell , 脚本语言构建在 .NET 框架之上。它能帮助 IT 专业人员手动或自动化的控制管理 Windows 操做系统以及运行在操做系统之上的应用程序。嗯!如今还包括 Linux 了。)接下来我将向你们分享咱们是怎样走过这段旅途的,以及告诉你们微软操做管理套件( Microsoft Operations Management Suite )是如何加强 PowerShell 体验的。架构

谈谈 PowerShell 开源的经历

让咱们开始 PowerShell on Linux 之旅吧。体验这个开源版本的故事…框架

个人客户很不高兴。编辑器

以前我向一个大客户演示了 Monad(PowerShell 以前的名字),他很喜欢它。可是如今他对我很生气。ide

他问我这是用什么语言实现的,而后他对个人回答感到不高兴:C#。我懵逼地问这有什么问题。他回答说:“ Monad 确实很不错,我也想让它普及到我整个公司,可是没办法, .NET 不支持 Linux 啊!”工具

过去,微软的业务焦点意味着 .NET 和 PowerShell 只能在 Windows 使用。可是如今的微软是个崭新的微软。Satya 的引导者和 Azure 让咱们变得更开放,更以客户为中心,这张图代表了咱们的倾向:post

微软想要博得客户在全部运行他们工做负荷的平台上的喜好,包括 Linux 和  Windows 。这个新想法容许 .NET Core 移植到 Linux ,也就使得 PowerShell 也能够移植到 Linux 。PowerShell on Linux 如今容许客户使用一样的工具,一样的人员来管理任何地方的任何事。它将首先支持 Ubuntu ,Centos 和 Red Hat ,同时还能够在 Mac OS X 上运行,将来咱们还会增长更多平台。你能够下载咱们的 Alpha builds ,还能够查看咱们在 GitHub 上的源代码。学习

如今,Windows 和 Linux 用户,如今的新用户,以及应用开发者们均可以体验一个能很好地配合你现有工具的功能丰富的交互式脚本语言以及异构自动化和配置管理。你的 PowerShell 技能将更有市场,并且你以往分离工做的 Windows 和 Linux 团队更容易共同工做了。测试

那么,咱们如今在这段旅途的什么地方呢?咱们还在开始的地方并且还处于学习模式。咱们经过开源 PowerShell 的小部分开始,而且告诉一些经历过开源的伙伴,以了解如何走向成功。咱们所学到的是,个别用户能在他们的电脑上用 Git 查看代码,作些修改,编译任何东西以及运行全部测试程序来验证这些变化不会破坏任何东西,这些是须要鉴定的。这须要在咱们的工程/构建/测试系统上有巨大的投入。咱们也致力于定义一套管理模型以便于咱们弄清楚咱们的任务,职责和进程,从而使社区的贡献能平稳地融入产品。

PowerShell 团队对本身是一个专一社区的团队而感到自豪,可是这个声明须要在下一个层次使源代码可被获取并采用开源开发模型,这样咱们就能够享受在 RFCs 和问题上与社区的深层联系,并直接接受社区贡献。咱们也须要在开源后扩大咱们的社区,像许多事同样,须要一个群体,由于群体是得到好经验的一把钥匙!咱们在和一些第三方公司合做,好比 Chef 、 Amazon Web Services 、 VMware 和 Google 等,在你知道或使用的平台上创造一个丰富的无缝体验。

当咱们把 PowerShell 移植到 Linux 时,咱们确信咱们是这个平台上的一等“公民”。咱们很适应那些架构,习语和现有的工具。这对有着很深的 Unix 背景的本来的 PowerShell 团队来讲至关容易, 这在咱们的设计里也体现了。咱们作出了不少改变,下面是两个大的变化:

  • 咱们建立了 PowerShell Editor Service 。它容许用户在一系列编辑器中选择( VS Code 、 Sublime 等),使用户在智能感知、调试上得到不错的用户体验,等等。

  • 咱们将扩展 PowerShell 远程协议( MS-PSRP )来使用 OpenSSH 做为本地传输工具。用户将能够设置用 SSH 仍是 WINRM 做为传输工具。

最初的版本是“alpha”和社区支持版。将来,咱们将发布一个基于开源的微软官方 release 版,使任何人能够在 Windows 或 *nix 上运行一个受支持的版本。这个微软官方版本届时将用于社区投入和商业需求。咱们但愿你能帮助咱们把它作好!

如何经过微软操做管理套件扩展 PowerShell 体验?

我还想告诉你们,现在的 PwerShell 能够在咱们的云管理解决方案下( OMS, Operations Management Suite ),经过扩展插件你已经能够作更多你想作的事了。 OMS 给你提供了一种可视化的方式控制你的应用以及跨云平台的工做负载。整个说来,客户在使用 PowerShell 时能够切换他们的云体验,不管是 Windows 服务器仍是 Linux 服务器。 OMS 自动化提高了 PowerShell 以及 DSC ( Desired State Configuration )的可用性、可扩展性。你能够在一个地方图形化的签署管理全部的 PowerShell 资源,包括运行手册、 DSC 配置以及 DSC 节点配置。

在 OMS 以及手册的帮助下,你能够扩展你的 OMS 自动化能力,并能在任何地方应用、监视、更新你的配置,甚至包括本地配置。现在咱们一样使得 OMS 可以监控 Linux了。一样,顾客能够得到丰富的观察信息以及实时的掌握 Linux 的工做负载。任何问题一旦出现,重启以后将会很快被修复。

咱们很是但愿你们都能花点时间在 Linux 上测试运行 PowerShell ,让咱们知道大家的想法!你能够从这里学习更多关于 OMS 自动化套件的知识。另外,请查看下周在 LinuxCon 关于咱们的内容。 Wim Coekaerts 将会给出一个地址,咱们将会展现 PowerShell , 而且作一场演示会话。

若是你刚开始接触 PowerShell ,一个不错的方式就是学习咱们在 Github上的 Learning PowerShell 仓库。咱们一样也提供了免费的微软虚拟学术(Microsoft Virtual Academy)在线课程: Getting Started with PowerShell 3.0 Jump Start 。若是想加入参与到 PowerShell 社区请看 powershell.org 以及  PowerShell Team blog 。咱们将会在将来更新相关内容以知足如 Linux 等社区的需求。

还有很长的路要走,这个过程乐趣十足,因此请加入咱们吧。咱们一块儿生产出更加捷利的工具。