Azure Cloud Shellの「PowerShell(プレビュー)」は、これまでWindowsベースのAzure PowerShell利用環境をプレビュー提供してきました。これが2018年7月、LinuxのPowerShell Core 6ベースに切り替わりました。
「Azure Cloud Shell」は、Azureポータルから素早く開始できる、Webブラウザベースのシェル/端末環境であり、「Bash」と「PowerShell(プレビュー)」の2種類が用意されています。前者は主にAzure CLI 2.0の利用環境を、後者はAzure PowerShellの利用環境を提供しますが、BashまたはPowerShellのシェルを提供するOSが備えるコマンド(sshやopensslなど)も使用できます。
Azure Cloud Shellは「Docker」のコンテナ技術をベースにした環境で、開始するたびにユーザー専用のコンテナが準備されます。これまで、BashはUbuntu 16.04 LTSベースの「Linuxコンテナー」、PowerShellはWindows Server 2016のServer Core(microsoft/nanoserver:sac2016)ベースの「Windowsコンテナー」で提供されていました。
Azure CLI 2.0はマルチプラットフォーム対応であるため、Linuxコンテナーとして提供できましたが、Azure PowerShellの利用環境を提供するにはWindowsコンテナーが必要でした(画面1)。
2018年7月、PowerShellの環境はLinuxコンテナーに変更されました(画面2)。その理由は、2018年1月にマルチプラットフォーム対応のPowerShell Core 6が正式版として一般提供されたこと、そしてLinuxコンテナーの方が素早くデプロイでき、すぐに利用可能になるという利点があるからです。今回の変更は、本連載第54回でお伝えしたものです。
ただし、以前のPowerShellはプレビュー提供ではありましたが、Windowsコンテナーであったため、ネイティブな最新のWindows PowerShell 5.1上で最新のAzure PowerShellモジュールを利用できました。
しかし、新しいPowerShellは2018年8月初めの時点で、Ubuntu 16.04 LTSベースのLinuxコンテナーに、PowerShell Core 6.1.0-preview.4と.NET Core版のAzure PowerShellモジュールがインストール済みの環境になっており、両方ともプレビュー版(PowerShell Core 6の正式版は6.0の方)であることに注意が必要です。
特に、.NET Core版のAzure PowerShellモジュールでは、最新のAzure PowerShellモジュールが提供する全てのコマンドレットが利用できるわけではなく、まだ実装されていないものが幾つかあります。また、Windowsのコマンドが利用できなくなることや、PowerShellの一部のエイリアスが変更になることも、Windowsユーザーにとっては戸惑うことになるでしょう。詳しくは、以下のドキュメントを参照してください。
2018年7月からBashとPowerShell(プレビュー)の両方がLinuxコンテナーに統一されたわけですが、実は、両者は同じUbuntu 16.04 LTSのベースOSイメージで作成されており、開始するシェルが異なるだけです。
Bashでは「/bin/bash」が開始し、PowerShellでは「/usr/bin/pwsh(/opt/microsoft/powershell/6-preview/pwsh)」が開始するようになっています。また、Bashで「pwsh」を利用することもできれば、PowerShellでAzure CLI 2.0(azコマンド)を利用することも可能です(画面3)。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.