2023年8月26日土曜日

Az.StackHCI、Az.Resources、Az.ccountsを最新化するPowerShellスクリプト

Az.StackHCIモジュールのバージョン違いによる挙動なのか否か での気付き(凡ミスを繰り返したくない)をもとに、メンテナンスを簡素化することとしました。

元ネタは、Uninstall older versions of PowerShell after successful upgrade に記載がある古いPowerShellモジュールを削除するスクリプトです。

こちらをもとに、Update-Moduleをコードに追加、更新および古いモジュールを削除する対象としてAz.StackHCI、Az.ccounts、Az.Resourcesを指定した下記を作成しました。
※後ほどこの並びだとダメだと、スクリプトの動作確認で判明します。。。
太字部分が追加や変更したコードです。
$modules = @("Az.StackHCI", "Az.Accounts", "Az.Resources")
foreach($module in $modules)
{
    $current = Get-InstalledModule -Name $module -ErrorAction Ignore
    if (-not $current)
    {
        Write-Host $("[Module: $module] Is not installed, skipping")
        continue
    } else {
        update-module -Name $module -Force
    }
    Write-Host $("[Module: $module] Newest installed version is $($current.Version)")
    $versions = Get-InstalledModule -Name $module -AllVersions
    foreach($version in $versions)
    {
        if ($version.Version -eq $current.Version)
        {
            Write-Host $("[Module: $module] Skipping uninstall for version $($version.Version)")
            continue
        }
        Write-Host $("[Module: $module] Uninstalling version $($version.Version)")
        $version | Uninstall-Module -Force -Confirm:$false
    }
}

スクリプト実行前は、下記の通りでした。

スクリプト実行後は、下記の通りとなりました。Az.Resourcesのスペルミスを修正したので、2回実行しました。Az.Resourcesがデグレードしているので、まだ改良が必要かなぁ。。。

依存関係の関係で、"Az.StackHCI", "Az.Resources", "Az.Accounts"の順で処理しないとだめでした。あと"Az.Accounts"は、"Az.StackHCI"の依存関係に伴いインストールされますね。
でも、別環境では、下記の通り新しいバージョンを削除しているので、改良が必要です。。。

ということで現時点のコードを下記に貼っておきます。(上記の改良はまだ未反映)

$modules = @("Az.StackHCI", "Az.Resources", "Az.Accounts")
foreach($module in $modules)
{
    $current = Get-InstalledModule -Name $module -ErrorAction Ignore
    if (-not $current)
    {
        Write-Host $("[Module: $module] Is not installed, skipping")
        continue
    } else {
        update-module -Name $module -Force
    }
    Write-Host $("[Module: $module] Newest installed version is $($current.Version)")
    $versions = Get-InstalledModule -Name $module -AllVersions
    foreach($version in $versions)
    {
        if ($version.Version -eq $current.Version)
        {
            Write-Host $("[Module: $module] Skipping uninstall for version $($version.Version)")
            continue
        }
        Write-Host $("[Module: $module] Uninstalling version $($version.Version)")
        $version | Uninstall-Module -Force -Confirm:$false
    }
}

2023年8月19日土曜日

Az.StackHCIモジュールのバージョン違いによる挙動なのか否か

Register-AzStackHCIで同じようにAzure Stack HCIクラスターを登録したつもりが、リージョンで挙動が違った からの続き。
※後藤さんより、ご指摘いただきました。ありがとうございました。

East USリージョンに登録しているAzure Stack HCIクラスターのノードでGet-Moduleしてみました。


つづいてJapan Eastに登録しているAzure Stack HCIクラスターのノードでGet-Moduleしてみました。


East USリージョンに登録しているAzure Stack HCIクラスターは、Az.StackHCIモジュールのバージョンが古い。。。

East USリージョンに登録しているAzure Stack HCIクラスターは、Az.StackHCIモジュールを最新化しました。(Remove-Module、Uninstall-Module、Install-Moduleget-Module、Import-Module)

2.1.1と、さらに新しくなっているけど。。。

とりあえず、これでAzure Stack HCIを再登録しました。

Az.StackHCI V2系になったら、Azure Stack HCIクラスターもクラスターノードも同じAzureリソースグループに登録されました。

以上、見落としでお騒がせしました。Az.StackHCIのバージョン違いもちゃんと気にします。。。

Register-AzStackHCIで同じようにAzure Stack HCIクラスターを登録したつもりが、リージョンで挙動が違った

Azure Stack HCIのノードは、別のAzureリソースグループに登録された の続き。

その後、別のAzure Stack HCIクラスターを別リージョンに登録しました。

下記のように同じコマンド(テナントおよびサブスクリプションは同じだが、太字としたリージョンおよびリソースグループは違う)を使いました。

Register-AzStackHCI -SubscriptionId "サブスクリプションID" -ComputerName g2ashcios01 -Region "East US" -TenantId "テナントID" -ResourceGroupName armrg-east-us-arc-ashci-Sponsor1 -Verbose -UseDeviceAuthentication

Register-AzStackHCI -SubscriptionId "サブスクリプションID" -ComputerName g2ashcios03 -Region "Japan East" -TenantId "テナントID" -ResourceGroupName armrg-east-japan-arc-ashci-Sponsor2 -Verbose -UseDeviceAuthentication

結果は、下記のようになりました。

Azure Arc対応サーバーの観点で、状況を確認しました。選択したサーバーは、Azure Stack HCIクラスターのノードです。上二つが2ノードクラスターでEast USリージョンへ登録しています。下一つがAzure Stack HCIシングルノードで、Japan Eastリージョンンへ登録しています。

リージョンによってAPIバージョンが異なるのは、理解していました。が、こういう形で違いが出ると結構きついですね。。。

2023/08/19 追記
リージョンのAPIバージョン違いより、Az.StackHCIモジュールのバージョン違いが怪しそうなので、確認しなおしました。

Az.StackHCIモジュールのバージョン違いによる挙動なのか否か に続く。

Azure Stack HCIのノードは、別のAzureリソースグループに登録された

先ほど再登録したところ、Azure Stack HCIとは別のリソースグループへ、Azure Arc対応サーバーとしてノードが登録されました。登録時に-Verboseオプション付けていたので気づきました。。。

※7月22日ごろに再登録したときは、同じPowerShellを使いましたがこういう挙動ではなかったような。勘違いなのか否かというところで、記憶があいまいです。

明示的に同じAzureリソースグループにしたければ、Register-AzStackHCIにて-ArcServerResourceGroupNameオプションが必要です。
挙動が変わったと言い切れないので、Register-AzStackHCIのオプションは毎回確認します。

2023/08/19 追記
結果として、リージョンによるAPIの違いによる可能性かも。
Register-AzStackHCIで同じようにAzure Stack HCIクラスターを登録したつもりが、リージョンで挙動が違った に続く。

2023/08/19 追記2
リージョンのAPIバージョン違いより、Az.StackHCIモジュールのバージョン違いが怪しそうなので、確認しなおしました。

Az.StackHCIモジュールのバージョン違いによる挙動なのか否か に続く。

2023年8月13日日曜日

Windows Admin Center 2306のTool updates -> Improved Hyper-V virtual machine management その1

Windows Admin Center 2306というより、クラスターマネージャーなどの拡張として機能改良が図られていると理解しました。

ということで、

Windows Admin Center version 2306 is now generally available!

のTool updates -> Improved Hyper-V virtual machine managementの中から、下記についてみていきます。

  • Ability to download your VM list with the corresponding properties as a CSV file, so you are able to open and do data analysis to understand the usage of your VMs
  • Configure your un-clustered VM running on a cluster to be highly available


Ability to download your VM list with the corresponding properties as a CSV file, so you are able to open and do data analysis to understand the usage of your VMs

下向き矢印アイコンの[ダウンロード]をクリックすると、CSVファイルがダウンロードできます。

Configure your un-clustered VM running on a cluster to be highly available

仮想マシンツールについて日本語、英語の画面を見てみましたが、該当するメニューが見当たりません。クラスターへ仮想マシンをインポートする手順と仮に読み替えて確認します。読み替えが間違っていたらすみません。
※1 フェールオーバークラスターマネージャーから、高可用性ウィザードを使って仮想マシンを高可用性構成にする手順と同義のはず。しかしメニューが見あたらない。。。
※2 ここは都合により、英語表示でお届けします。
[Add]から[Import]をクリックします。
CSV上の仮想マシンフォルダーを指定します。
インポートするVMをプルダウンメニューから選択後、[Import]をクリックします。
フェールオーバークラスターマネージャーからも仮想マシンを確認できました。

Windows Admin Center 2306のTool updates -> Improved Hyper-V virtual machine management その2 に続く

2023年8月12日土曜日

Windows Admin Center 2306のPlatform updates->WDAC support for servers, client, and clusters is now GA

Windows Admin Center version 2306 is now generally available!

のPlatform updates->WDAC support for servers, client, and clusters is now GAを見ていきます。

いろいろ開設されているのですが、要約すると「当該ホストに対するPowerShellのセッション構成」をWindows Admin Centerのサーバーマネージャで表示しているということになりいます。

現状、下記画面ショットの赤枠内は"完全な言語"となっています。FullLanguageモードでは、セッション内のすべての言語要素が許可されていることを示します。つまりなんでもできますということですね。

このモードの意味については、PowerShell言語モード配下にあるリンクをクリックすると、下記のページに記載されている内容から確認できます。

about_Language_Modes

各モードについては、上記リンクから抜粋して転記します。

  • FullLanguage(日本語訳だと、完全な言語となっています)
    FullLanguageモードでは 、セッション内のすべての言語要素が許可されます。 FullLanguage は、すべてのバージョンの Windows の既定のセッションの既定の言語モードです。
  • RestrictedLanguage
    モードはRestrictedLanguage、サポートされなくなったWindows RT用に作成されました。 このモードは、 によって Import-Module読み込まれたモジュール マニフェストの処理にも使用されます。
    モードでは RestrictedLanguage 、ユーザーはコマンド (コマンドレット、関数、CIM コマンド、ワークフロー) を実行できますが、スクリプト ブロックを使用することはできません。
  • ConstrainedLanguage (PowerShell 3.0 で導入)
    ConstrainedLanguage mode は、ループ、条件、文字列展開、オブジェクト プロパティへのアクセスなどの基本的な言語要素を許可するように設計されています。 この制限により、悪意のあるアクターによって悪用される可能性のある操作が防止されます。
  • NoLanguage
    PowerShell NoLanguage モードでは、PowerShell スクリプト言語が完全に無効になります。 スクリプトを実行したり、変数を使用したりすることはできません。 ネイティブ コマンドとコマンドレットのみを実行できます。

      2023年8月5日土曜日

      Windows Admin Center 2306のTool updates -> File editor

      Windows Admin Center version 2306 is now generally available!

      に記載のTool updatesからFile Editorを見てみます。

      ファイルを選択すると「ファイルを編集」がアクティブになりました。

      「ファイルを編集」をクリックしてしばし待つと、編集画面になりました。
      .txtや.logといったテキストファイル系は、この機能で編集できますね。

      Windows Admin Center 2306のCluster management

      Windows Admin Center version 2306 is now generally available!

      に記載のCluster managementから、下記についてAzure Stack HCIクラスターを対象として確認します。
      ※Bringing consistency to deploying Azure hybrid services on Azure Stack HCIについて、Azure Hybridであるため別途で確認します。

      1. Cluster-aware event viewer
      2. Azure Stack HCI Cluster Updates tool
      3. Move a volume to another server
      4. Storage Spaces and pools settings

      Cluster-aware event viewer

      既定は、未設定の状態です。

      「空白のワークスペース」をクリック、「イベントの追加」をクリックします。
      シングルノードだと、下記の順でイベントログを表示できました。
      マルチノードは、このような表示になります。ノード別で時系列表示されています。時系列でノード混在表示ではないです。

      Azure Stack HCI Cluster Updates tool

      Windows Admin Center version 2306 is now generally available!に記載されている通り、single node 22H2 Azure Stack HCI clustersのサポートについて言及されています。ただ、https://sshzk.blogspot.com/2023/04/azure-stack-hci-single-server.html にまとめた通り、Single Nodeのクラスター対応更新は、2023年4月時点においてクラスターマネージャー拡張でサポートされていましたね。

      Move a volume to another server

      フェールオーバークラスターマネージャーやPowerShellで行えた操作がWindows Admin Centerのクラスターマネージャーからも可能になりました。実際の操作例は、下記のとおりです。

      Storage Spaces and pools settings

      Settingsに該当の設定があります。
      Single Node

      Multi Node
      Single Nodeとは異なり、記憶域の修復速度、キャッシュの状態といったパラメーターが異なります。

      Windows Admin Center 2306のTool updates -> Azure Arc status

      Windows Admin Center version 2306 is now generally available!

      に記載のTool Updatesから、Azure Arc statusを確認します。Azure Arc対応サーバーとして登録済みのサーバーは、下図の赤枠内に「接続済み」と表示されます。