PowerShell をオープン ソース化、Linux で利用可能に

執筆者: Jeffrey Snover (Technical Fellow, Microsoft Enterprise Cloud Group)

このポストは、8 月 18 日に投稿された PowerShell is open sourced and is available on Linux の翻訳です。

 

今日、マルチ プラットフォーム、マルチ クラウド、マルチ OS が当たり前の世の中になっていることは紛れもない事実です。そうした中で、新たな課題としてあらゆる作業を共同で行えるツールが求められていますが、マイクロソフトは全社をあげて、あらゆる場所やデバイスから、また、Linux や Windows といったどのプラットフォーム上でも使用できる管理ツールを開発しようと取り組んでいます。このイノベーションに、オープンにユーザー視点でアプローチすることは、私の大きなやりがいの 1 つとなっています。

Satya Nadella は以前から「Microsoft loves Linux」というメッセージを発信していますが、今それが本当に現実のものになろうとしています。事実、Azure 上の VM の約 3 分の 1 は Linux であり、Azure Marketplace でサードパーティが提供している IaaS の約 60% が、オープン ソース ソフトウェア (OSS) となっています。マイクロソフトはお客様に豊富な選択肢を提供するために業界パートナーと強力な関係を築いており、これまで SQL Server on Linux やオープン ソース化した .NET を提供してきました。また、Windows 10 に Bash (英語) を追加し、OSS の開発プラットフォームとしてご利用いただけるようにしました。さらに、業界全体にわたる多数のオープン ソース プロジェクト (OpenSSH や FreeBSD、Mesos、Docker、Linux、その他多数) にも積極的に参加しています。

そしてこのたびマイクロソフトはさらに次のステップへと踏み出し、PowerShell (英語) をオープン ソース化し、Linux に対応させました。このことは私自身たいへん嬉しく思っています。あまりなじみのない方のためにご説明すると、PowerShell とはタスク ベースのコマンド ライン シェルおよびスクリプト言語であり、.NET Framework を基盤としています。これを使用することで、Windows (今後は Linux も) とその OS 上で実行されるアプリケーションの管理を制御、自動化できます。この記事では、これまでの経緯についてと、Microsoft Operations Management Suite で PowerShell エクスペリエンスがどのように強化されるかについて詳しくお伝えします。

PowerShell のオープン ソース化の道のり

まずは、PowerShell の Linux 対応とオープン ソース化の経緯について説明したいと思います。

ずっと前に次のような経験をしたので、それをご紹介します。

PowerShell の前身である Monad の時代に、私は大企業のお客様の経営陣向けにデモを行いました。その際、Monad を気に入っていただけたのですが、同時にお叱りの声もいただきました。

実装されている言語が何か聞かれたので、C# であると答えると、それがご不満のようでした。不満の理由がわからなかったので尋ねてみると、「Monad はアプローチとして実に正しいし、全社で標準化したいのだが、.NET が Linux で使えないので採用は無理だ」ということでした。

かつてのマイクロソフトは、.NET、PowerShell の動作対象として Windows のみに焦点を当てていました。しかし、私たちは変わりました。次の写真が表すように、Satya Nadella の考えと Azure の方針は、よりオープンで顧客を中心としたものへと変わりました。

Microsoft loves Linux_2

マイクロソフトは、Windows と同様に Linux もお客様のすべてのワークロードを実行できるプラットフォームとして選んでいただけるようにしたいと考えています。.NET チームはこの新たな考えに基づいて、.NET Core を Linux に対応させ、さらに PowerShell も Linux に対応させました。Linux 版 PowerShell により、同一のユーザーが同一のツールを使用してあらゆるものをあらゆる場所から管理できるようになります。PowerShell はまず Ubuntu、CentOS、Red Hat で使用可能になり、Mac OS X でも実行できます。今後はさらに対応プラットフォームを広げていく予定です。アルファ版ビルドは GitHub (英語) からダウンロード可能です。ソース コードもご確認いただけます。

これからは Windows ユーザーも Linux ユーザーも、既に PowerShell をお使いの方もこれから使用するという方も、ひいてはアプリケーション開発者の皆様も、高機能でインタラクティブなスクリプト言語を使用しながら、既存のツールで異種混在環境の自動化や構成管理を行えます。また、これまで別々に作業を行っていた Windows チームと Linux チームがより簡単に共同作業を行えるようになるため、今後 PowerShell のスキルはよりいっそう価値あるものとなります。

PowerShell の取り組みは始まったばかりであり、私たちにはまだまだ学ぶことがたくさんあります。当初は PowerShell の一部のみをオープン ソース化することから始め、成功させるには何が必要なのか、オープン ソース化の経験のある多数のパートナー様に相談しました。そこから学んだのは、個々のユーザーが Git を使用してコードの確認や変更を行え、すべてのコンパイルを各自のコンピューターで実行でき、すべてのテストを実施して変更による悪影響がないことを確認できるようにすることがとても重要だということです。それには、マイクロソフトのエンジニアリング、開発、テストの各システムに大きな投資を行う必要がありました。また、コミュニティの協力の成果がスムーズに製品に反映されるように、ガバナンス モデルを定めて、役割、責任、プロセスを明確化しました。

PowerShell チームは常にコミュニティに寄り添っていることを自負していますが、今回ソース コードを公開してオープン ソース開発モデルを採用したことでさらに次のレベルへと進歩し、RFC やさまざまな問題についてコミュニティとよりいっそう緊密に連携し、協力の成果をダイレクトに受けられるようになります。また、オープン ソース化によってコミュニティが拡大し、その結果、共同体が形成されています。何事においてもそうですが、エクスペリエンスを向上させるには、この共同体の存在が欠かせないのです。マイクロソフトは Chef、Amazon Web Services、VMware、Google、その他数多くのサードパーティ企業とパートナーシップを提携し、現在普及しているプラットフォーム全体にわたる高機能でシームレスなエクスペリエンスを開発するべく取り組んでいます。

PowerShell を Linux に対応させるにあたっては、私たち自身がこのプラットフォームの第一のユーザーであるように努め、アーキテクチャ、イディオム、既存のツールについて十分に熟知するようにしました。もともと PowerShell チームのメンバーのほとんどには Unix の使用経験がかなりあったので、それはさほど難しいことではなくその知識が設計に活かされました。PowerShell には細かな変更が多数行われ、次の 2 点は大きな変更となりました。

  1. PowerShell Editor Service (英語) を新たに作成しました。これにより、ユーザーはさまざまな種類のエディター (VS Code や Sublime など) で、Intellisense やデバッグ機能などによる優れた PowerShell スクリプト作成エクスペリエンスを得られます。
  2. PowerShell Remoting Protocol (MS-PSRP、英語) を拡張して、ネイティブな転送プロトコルとして OpenSSH ( 英語 ) を使用できるようにする予定です。これにより、転送プロトコルを SSH と WINRM から選択できるようになります。

初回リリースは「アルファ版」であり、コミュニティによりサポートされます。将来的にはオープン ソースをベースとしたマイクロソフト公式リリース バージョンの PowerShell を提供し、サポート対象となっている Windows または Unix 系 OS でご利用いただけるようにする予定です。マイクロソフト公式バージョンのリリース時期は、コミュニティからの意見や企業のニーズに応じて決定されます。皆様のご協力をよろしくお願いいたします。

Microsoft Operations Management Suite での PowerShell エクスペリエンスを拡張

今回の PowerShell のニュースに伴い、クラウド管理ソリューションである Operations Management Suite (OMS) でも機能が拡張されます。OMS では、Azure およびその他のクラウド全体のアプリケーションやワークロードを視覚化、制御できます。これに不可欠な機能として、Linux と Windows Server の両方で PowerShell を使用する場合のクラウド エクスペリエンスが進化します。OMS Automation (英語) では、PowerShell と Desired State Configuration (DSC) がさらに強化され、Azure の高可用性を備えたスケーラブルな管理サービスを利用できるようになります。ユーザーは Runbook、DSC 構成、DSC ノード構成などのあらゆる PowerShell リソースの作成や管理を、1 か所からまとめて視覚的に行うことができます。

OMS ハイブリッド Runbook ワーカーを使用すると、OMS Automation 機能を拡張して、オンプレミス環境を含むあらゆる環境の構成を適用、監視、更新することができます。今回は、Linux 用 OMS 監視エージェントの一般提供が開始されました。これらを併用すると、豊富なインサイトに基づいて Linux ワークロードをリアルタイムに把握でき、発生した問題をすばやく解決することができます。

ぜひ Linux で PowerShell をお試しいただき、ご意見やご感想をお聞かせください。OMS Automation の詳細については、こちら (英語) をご覧ください。また、来週開催される LinuxCon では、Wim Coekaerts 氏の基調講演があります。マイクロソフトも PowerShell を展示するブースを設けます。私もデモを交えたセッションを行う予定です。ぜひご注目ください。

PowerShell をまだご利用になったことがない方は、まず GitHub の learning-powershell リポジトリをご覧になることをお勧めします。また Microsoft Virtual Academy では無料のオンライン トレーニング コース「PowerShell 3.0 をすぐに始める (英語)」を公開しています。PowerShell コミュニティへの参加をご希望の方は、powershell.org (英語)PowerShell チームのブログ (英語) をご利用ください。今後は、Linux コミュニティの要望 (サンプル提供など) にお応えしながら、これらを更新していく予定です。

ここまでの道のりは長いものでしたが、これからもすばらしいニュースをたくさんお届けできるよう全力で取り組んでいきたいと思います。また、便利なツールを生み出せるのは皆様のご協力があってこそです。今後ともどうぞよろしくお願いいたします。