開源項目

哇! 微軟開源了 PowerShell

現今的客戶們都活在多平台、多雲、多 OS 的世界,這就是現實。新的世界帶來了新的挑戰,客戶們需要工具來統籌所有工作中的事務。微軟正致力於研發客戶在任何地方都可以對整個公司各種平台、設備進行統一管理的工具,不論是在 Linux 還是 Windows 平台上。這推動著一個更加開放,圍繞客戶的新變革,這使我每天更加滿懷熱情前往工作。

你可能曾聽 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 之前的名字),他很喜歡它。但是現在他對我很生氣。

他問我這是用什麼語言實現的,然後他對我的回答感到不高興:C#。我懵逼地問這有什麼問題。他回答說:「 Monad 確實很不錯,我也想讓它普及到我整個公司,但是沒辦法, .NET 不支持 Linux 啊!」

過去,微軟的業務焦點意味著 .NET 和 PowerShell 只能在 Windows 使用。但是現在的微軟是個嶄新的微軟。Satya 的引導者和 Azure 讓我們變得更開放,更以客戶為中心,這張圖表明了我們的傾向:

ef4d0bc7-2c45-4d17-afb1-9cad8f293657

微軟想要博得客戶在所有運行他們工作負荷的平台上的喜愛,包括 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 等社區的需求。

還有很長的路要走,這個過程樂趣十足,所以請加入我們吧。我們一起生產出更加快捷、便利的工具。


LinuxStory 小編溫馨提示,更多詳細內容請訪問如下原文鏈接。另外感謝 Dawn 讀者對本文的翻譯貢獻。

原文鏈接:https://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/

本文鏈接:https://linuxstory.org/microsoft-open-sourced-powershell/

轉載請註明出處,否則必究相關責任!

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:開源項目

    開源新聞

    FTP 伺服器:Vsftpd vs ProFTPd

    FTP(文件傳輸協議)是用於傳輸文件的標準協議。像 Vsftpd 和 ProFTPd 這樣的 FTP 伺服器提供了一種訪問和傳輸遠程伺服器上存儲的文件的方法。 Vsftpd Vsftpd(Very S […]