Azure コマンド ライン インターフェイス (Azure CLI) 2.0 プレビューを発表
執筆者: Jason R. Shaver (Senior Program Manager)
このポストは、9 月 26 日に投稿された Announcing Azure Command-Line Interface (Azure CLI) 2.0 Preview の翻訳です。
Azure が進化するにつれ、Windows PowerShell ツールや Azure クロス プラットフォーム コマンド ライン インターフェイス (CLI) などのコマンド ライン ツールを使用するお客様が増えてきました。これらのツールを使うことで生産性が向上したという声を多数いただいている一方、特に Linux ユーザーの皆様からは、マイクロソフトのクロス プラットフォーム CLI と Linux の主なコマンド ライン ツールの統合が不十分であることや、Node 環境のインストールや保守が難しい (ツール自体がこの環境を基盤としている) ことが指摘されています。
こうしたご意見を受けて、Azure Resource Manager ベースの構成モデルの拡張と併せて CLI エクスペリエンスを改良し、Azure 向けに優れたエクスペリエンスを提供することにしました。そして本日、新たな CLI である Azure コマンド ライン インターフェイス (Azure CLI) 2.0 プレビューがベータ版として GitHub (英語) で提供されました。こちら (英語) をお試しのうえ、ご意見をお寄せいただければ幸いです。
以降のセクションでは、このプロジェクトに対する取り組みと、皆様への影響やメリットについてご説明します。
次世代コマンド ライン ツールの開発を始めるにあたり、マイクロソフトは以下の原則を定めました。
インストール手順に無理がなく簡単であること: MacBook の場合は “brew install azure-cli”、Bash on Windows (近日リリース予定) の場合は “apt-get install azure-cli” というように、使用しているプラットフォームを問わずどこからでも CLI をインストールできるべきであると考えます。
POSIX ツールとの整合性を確保すること: 十分に理解された標準を実装し、使用しやすく予測可能であることが、優秀なコマンド ライン ツールの条件であると言えます。
オープン ソース エコシステムの一員となること: オープン ソースであればコミュニティからの協力が得られます。また、DevOps ソリューション (Chef や Ansible) やクエリ言語 (JMESPath) など、コミュニティが開発したすばらしい機能を利用したり統合したりできるというメリットがあります。
常に Azure の最新状態に対応すること: 日々更新が配信される今の時代では、サービスをデプロイすればそれで終わりというわけにはいきません。常にツールを最新の状態にし、ユーザーが最新のサービスをすぐに利用できるようにする必要があります。
これらの原則に従うには、抜本的な変更を伴う機能強化が必要になることがわかりました。また、クロス プラットフォーム CLI に関するご意見と併せて検討した結果、CLI をゼロから作り直すべきであるという判断に至りました。このため、新しい CLI では ARM での管理にのみ焦点を当てることとし、ご指摘を多数いただいていたクロス プラットフォーム CLI の ASM と ARM の “config mode” の切り替えに関する問題に対処しました。
現在、主要な Azure サービスのサポートの開発も進めているところですが、ここではまず次世代コマンド ライン ツールである Azure CLI 2.0 プレビューについてご説明したいと思います。
運用担当者も開発者も、ツールは簡単にインストールして利用できるようにしたいと考えています。Azure CLI 2.0 プレビューは、もうまもなくすべての主要プラットフォーム パッケージ サービスで利用できるようになる予定です。
CLI は、コマンド ライン ツールと組み合わせて使用することでその生産性が最大限に発揮されます。Azure CLI 2.0 プレビューでは、grep、cut、jq などの広く利用されているコマンド ライン ツールと連携できるように、パイプに対応したわかりやすい出力が可能です。
クラウドを使用する場合、さまざまな種類のツールやオプションが利用できることがかえって大きな負担になることがありますが、Azure CLI 2.0 プレビューでは一般的なコマンドのサンプルや学習用コンテンツを提供し、クラウドへの移行を支援します。今回のリリースではツール内のヘルプが改良され、ヘルプ システムが全面的に刷新されています。
今後のリリースではさらにドキュメントを拡充し、詳細なマニュアルやオンライン ドキュメントを主要なリポジトリで公開して行く予定です。
コマンドやパラメーター名の入力に「タブ補完」を使用できます。これにより、スムーズに作業を進めながらコマンドやパラメーターを正しく入力できます。タブ補完では、過去に選択したパラメーター値やリソース グループ、リソース名などが提示され、適切な値を探して入力できます。
以降は、これまでクロス プラットフォーム CLI を使用していたユーザーにどのような影響があるのか、予想される質問を踏まえて説明します。
変更の必要なし: クロス プラットフォーム CLI は今後もご利用いただくことが可能で、スクリプトも正常に動作します。従来の CLI のサポートは継続され、新機能の追加も行われます。
両方の CLI を共存させることができる: 資格情報や、既定のサブスクリプションなどの一部の既定の設定を両方の CLI で共有できます。このため、既存の Azure クロス プラットフォーム CLI のインストール環境をそのまま残しながら CLI 2.0 プレビューをお試しいただけます。
Azure CLI 2.0 プレビューでは ASM/クラシック モードはサポートされない: リソース グループやテンプレートなど、ARM の基本要素に基づいた設計になっています。ASM/クラシック モードは引き続きクロス プラットフォーム CLI でサポートされます。
移行をサポート: お客様に代わってスクリプトの変換を行うことはできませんが、両方の CLI のコマンドの対応を示した変換表 (英語) など、移行をサポートするオンライン ガイドを作成しました。
注: Azure クロス プラットフォーム CLI との資格情報の共有は、バージョン 0.10.5 以降で対応しています。
お試しください
新しい CLI は GitHub (英語) で提供中ですが、Docker でも公開しています。最新リリースを入手するには “$ docker run -it azuresdk/azure-cli-python” というコマンドを実行してください。
フィードバックは、CLI で "az feedback" というコマンドを実行するとお送りいただけます。ぜひお気軽にご意見をお聞かせください。
2016 年 9 月 26 ~ 30 日にアトランタで開催される Microsoft Ignite カンファレンスでは Azure ツール ブースでデモを披露する予定です。また、セッション「Azure のオープンで柔軟なツールを使用してクラウド対応アプリを構築する (英語)」へのご参加もお待ちしています。
クロス プラットフォーム CLI は今後もご利用いただくことが可能で、スクリプトも正常に動作します。それぞれの CLI では、異なるトップ レベル コマンド ("azure" と "az") をサポートしていますが、同一のシナリオに対して両方の CLI を使用できます。資格情報や一部の既定の設定 (既定のサブスクリプションなど) は両方の CLI で共有されるため、既存の CLI のインストール環境をそのまま残しながら Azure CLI 2.0 プレビューをお試しいただけます。従来のクロス プラットフォーム CLI のサポートは継続され、新機能の追加も行われます。
Azure クロス プラットフォーム CLI 用に構築されたスクリプト (“azure” コマンドを使用するもの) は、Azure CLI 2.0 プレビューでは動作しません。ほとんどのコマンドは類似した命名規則に従っていますが、入力と出力の構造は変更されています。このため、Azure クロス プラットフォーム CLI で必要となる「回避策」をスクリプトに適用するか、または両方のツールを共存させて利用してください。
現行のクロス プラットフォーム CLI はすべての ASM/クラシック ベースのサービスで必要なため、提供とサポートが継続されます。新しい Azure CLI 2.0 はしばらくの間はプレビューが継続され、皆様からいただいたフィードバックに基づいて改良を行った後に最終版をリリースします (期日未定)。
今回のリリースで .NET Core と PowerShell のサポートが変更されることはなく、提供と完全なサポートが継続されます。PowerShell や POSIX ベースの CLI は対象ユーザーが異なっており、コマンド ラインによる自動化シナリオやスクリプト実行シナリオに最適です。両方とも複数のプラットフォームで利用でき、現在はオープンソース プロジェクトとなっています。マイクロソフトはこの両方に対して投資を行っています。