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に設定しておくと複数プラットフォーム、複数ノードに一括でコマンドが発行できて、一覧で参照できて便利ですという話でした。

channel9.msdn.com

PowerShell Core とは

PowerShellは、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語です。. NET Frameworkを基盤としていたのでWindowsの管理に利用することが今でも主要な用途だと思います。

基盤として利用していた、.NET Framework が、.NET Coreとなりクロスプラットフォームで動作することができるようになりました。それを受けて、PowerShellも基盤を.NET Coreに移行し、クラスプラットフォーム(Windows, macOS, Linux)で動作できるようにした新しいエディションが、「PowerShell Core」です。また、PowerShellのリモートコマンドを、OpenSSH を利用して接続できるような改善も行われています。

実行方法

  1. 管理対象のホストやサーバへ、「PowerShell Core」をインストール

    Windows への PowerShell Core のインストールInstalling PowerShell Core on Windows | Microsoft Docs

    macOS および Linux への PowerShell Core のインストールInstalling PowerShell Core on macOS and Linux | Microsoft Docs

  2. 管理対象のホストやサーバで、「OpenSSH」のセットアップを行う

    SSH 経由の PowerShell リモート処理PowerShell Remoting Over SSH | Microsoft Docs

  3. Azure CloudShellで各サーバとOpenSSHでセッションを確立する
  4. コマンドを実行する
    3, 4は以下の動画を見て頂くとイメージをつかめます。(4:30からスタート)

    channel9.msdn.com

まとめ

各ホストへコマンドを同時に流して、結果を集約して参照することができるのは便利ですね。

データセンターやこういったものがなかった時代は、踏み台用にサーバを準備していたりしました。CloudShellでは、Azure Filesにファイルやデータを保存することができるので、サーバ操作をするときは基本的にはCloudShellから行うようにしていけるとメンテナンスフリーでいいで助かりますね。

Portalへのログインのセキュリティ、操作ログ、GUIで操作したいといったものから、自動化できないのか?など、いろいろでてくるのですが、操作する対象の違いや優先度によって、どこから何ができるようにするのかは改めて考える必要があり、そこにもクラウドを利用するメリットがあると思います。