Using PowerShell Core with Azure
Azure Friday Using PowerShell Core with Azure の概要
2018/3/9のAzure Fridayの内容は「Using PowerShell Core with Azure」です。PowerShell CoreがAzure Cloud Shell上で利用できるようになっていて、Windows Server はもちろんのこと、PowerShell CoreをLinuxに設定しておくと複数プラットフォーム、複数ノードに一括でコマンドが発行できて、一覧で参照できて便利ですという話でした。
PowerShell Core とは
PowerShellは、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語です。. NET Frameworkを基盤としていたのでWindowsの管理に利用することが今でも主要な用途だと思います。
基盤として利用していた、.NET Framework が、.NET Coreとなりクロスプラットフォームで動作することができるようになりました。それを受けて、PowerShellも基盤を.NET Coreに移行し、クラスプラットフォーム(Windows, macOS, Linux)で動作できるようにした新しいエディションが、「PowerShell Core」です。また、PowerShellのリモートコマンドを、OpenSSH を利用して接続できるような改善も行われています。
実行方法
- 管理対象のホストやサーバへ、「PowerShell Core」をインストール
Windows への PowerShell Core のインストールInstalling PowerShell Core on Windows | Microsoft Docs
- 管理対象のホストやサーバで、「OpenSSH」のセットアップを行う
SSH 経由の PowerShell リモート処理PowerShell Remoting Over SSH | Microsoft Docs
- Azure CloudShellで各サーバとOpenSSHでセッションを確立する
- コマンドを実行する
3, 4は以下の動画を見て頂くとイメージをつかめます。(4:30からスタート)
まとめ
各ホストへコマンドを同時に流して、結果を集約して参照することができるのは便利ですね。
データセンターやこういったものがなかった時代は、踏み台用にサーバを準備していたりしました。CloudShellでは、Azure Filesにファイルやデータを保存することができるので、サーバ操作をするときは基本的にはCloudShellから行うようにしていけるとメンテナンスフリーでいいで助かりますね。
Portalへのログインのセキュリティ、操作ログ、GUIで操作したいといったものから、自動化できないのか?など、いろいろでてくるのですが、操作する対象の違いや優先度によって、どこから何ができるようにするのかは改めて考える必要があり、そこにもクラウドを利用するメリットがあると思います。