JavaScriptを有効にしてください

PowerShell を使って Azure Arc 対応サーバーを有効化し隊

 ·   3 分で読めます  ·   Kento

以前に Azure Portal から作成するスクリプトを使って Azure Arc 対応サーバーを作成しました
Azure Arc 対応サーバーのデモ環境を作り隊 – クラウドを勉強し隊

今回は PowerShell を使用してハイブリッド マシンを Azure に接続する - Azure Arc | Microsoft Learn に記載のある Az モジュールを使用した方法で試してみます

ざっくり手順

  1. Az モジュールのインストール
  2. コマンドの実行 (ローカル or リモート)

1. Az モジュールのインストール

今回は Azure Arc に登録するだけなので Az モジュール全体をインストールしないで試しました

1
Install-Module -Name Az.ConnectedMachine
ps01
Az モジュールのインストール:

2. コマンドの実行 (ローカル)

コマンドを実行しているサーバー (ローカル) を Azure Arc に登録してみます

---
title: コマンドの実行 (ローカル)
---
graph TB;
 
%%グループとサービス

PE1("操作するサーバー")

ST1{{"Azure Arc"}}

 
%%サービス同士の関係
PE1 -- "登録" --> ST1

 
%%グループのスタイル
 
%%サービスのスタイル 
classDef PEG fill:#e83,color:#fff,stroke:none
class PE1,PE2,PE3 PEG

classDef STG fill:#46d,color:#fff,stroke:#fff
class ST1,WA1 STG

まずは Azure にサインインします

1
Connect-AzAccount

次に リソース グループ名、マシン名、リージョンを指定して Connected Machine エージェントをインストールします

1
Connect-AzConnectedMachine -ResourceGroupName myResourceGroup -Name myMachineName -Location <region>

プロキシを利用する場合はこちらのコマンドを利用します

1
Connect-AzConnectedMachine -ResourceGroupName myResourceGroup -Name myMachineName -Location <region> -Proxy http://<proxyURL>:<proxyport>

インストールに成功して Azure Arc に登録出来たらこのように表示されます

ps02
Connected Machine エージェントのインストール: ローカル実行

Azure Portal 上でも確認できています

portal02
Azure Arc 対応サーバーの登録: ローカル実行

2. コマンドの実行 (リモート)

コマンドを実行しているサーバーとは別のサーバー (リモート) を Azure Arc に登録してみます
リモートで実行できるので複数のサーバーに一度に展開することができます

---
title: コマンドの実行 (リモート)
---
graph TB;
 
%%グループとサービス

PE1("操作するサーバー")
PE2("リモート サーバー01")
PE3("リモート サーバー02")

ST1{{"Azure Arc"}}

 
%%サービス同士の関係
PE1 -- "コマンドのリモート実行" --> PE2
PE1 -- "コマンドのリモート実行" --> PE3
PE2 -- "登録" --> ST1
PE3 -- "登録" --> ST1

 
%%グループのスタイル
 
%%サービスのスタイル 
classDef PEG fill:#e83,color:#fff,stroke:none
class PE2,PE3 PEG

classDef STG fill:#46d,color:#fff,stroke:#fff
class ST1,WA1 STG

事前にリモート サーバーで以下を実行しておきます

1
Enable-PSRemoting
ps0
PowerShell リモート コマンドの受信設定:

操作をするサーバー側で以下のコマンドを実行します
今回はドメインに参加していないサーバー間で実行します
そのため、リモートでコマンド実行できるように信頼されているホストとして登録しておきます

1
2
net start WinRM
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "remote server"
ps04
PowerShell リモート コマンドの送信設定:

次に Azure にサインインします

1
Connect-AzAccount

最後にリモート サーバーに Connected Machine エージェントをインストールします

1
2
$sessions = New-PSSession -ComputerName myMachineName
Connect-AzConnectedMachine -ResourceGroupName myResourceGroup -Location <region> -PSSession $sessions

一度に複数台を実行する場合は New-PSSession でサーバー名を複数記述します

1
2
$sessions = New-PSSession -ComputerName myMachineName1, myMachineName2, myMachineName3
Connect-AzConnectedMachine -ResourceGroupName myResourceGroup -Location <region> -PSSession $sessions

リモート コマンドが実行するとこのように表示されました

ps05
Connected Machine エージェントのインストール: リモート実行

Azure Portal 上でも確認できています

portal02
Azure Arc 対応サーバーの登録: ローカル実行

まとめ

Az モジュールを使って Azure Arc 対応サーバーに登録をしてみました
リモート実行ができる環境であれば一度にたくさんのマシンの登録ができるので、非常に便利そうです

参考

共有

Kento
著者
Kento
2020年に新卒で IT 企業に入社. インフラエンジニア(主にクラウド)として活動中