演習 - DSC を設定し、必要な状態を構成する
この演習では、Azure Automation アカウントを作成し、PowerShell DSC をアップロードします。 次に、既存の VM を Azure Automation にオンボードします。 最後に、VM に IIS がないかどうかを確認します。 その場合は、VM に IIS をインストールして構成するコードを実行します。
VM を作成する
まず、Windows Server 2022 イメージから新しい VM をデプロイします。
右側の Azure Cloud Shell ペインで、次のコマンドを実行してユーザー名を作成し、ランダムなパスワードを生成します。
USERNAME=azureuser PASSWORD=$(openssl rand -base64 32)
Cloud Shell で次のコマンドを実行して VM を作成します。
az vm create \ --resource-group "<rgn>[Sandbox resource group name]</rgn>" \ --name myVM \ --image win2019datacenter \ --admin-username $USERNAME \ --admin-password $PASSWORD
VM とサポートするリソースを作成するには数分かかります。 VM が正常に作成されると、次のような出力が表示されます。
{ "fqdns": "", "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM", "___location": "eastus", "macAddress": "00-0D-3A-36-BA-28", "powerState": "virtual machine running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "104.40.69.56", "resourceGroup": "myResourceGroup" }
この出力から
publicIpAddress
をコピーして保存します。 演習の後半で、このアドレスを使用して VM にアクセスします。Cloud Shell で次のコマンドを実行して、Web トラフィック用に VM のポート 80 を開きます。
az vm open-port \ --port 80 \ --resource-group "<rgn>[Sandbox resource group name]</rgn>" \ --name myVM
Web ブラウザーで、VM
http://[public-ip]
のパブリック IP アドレスに移動します。 ポート 80 は開いていますが、接続はThis site can't be reached
でタイムアウトになります。 このエラーは、IIS が VM にデプロイされていないために発生します。 この演習の後半で修正します。
Azure Automation アカウントを作成する
サンドボックスのアクティブ化に使用したのと同じアカウントで Azure portal にサインインします。
Azure portal のリソース メニューまたは ホーム ページで、[ リソースの作成] を選択します。 [ リソースの作成 ] ウィンドウが表示されます。
[ 検索サービスとマーケットプレース ] テキスト ボックスに「 Automation」と入力し、Enter キーを 押 して検索結果を表示します。
Automation の検索結果で、Microsoft によって発行された Automation Azure サービスを選択します。
「作成」を選択します。 [ Automation アカウントの作成 ] ウィンドウが表示されます。
各設定に対して次の値を入力します。
設定 価値 サブスクリプション コンシェルジェ サブスクリプション リソースグループ ドロップダウン リストで既存のリソース グループを選択します 名前 オートメーション アカウントの名前を入力します。 [あなたのイニシャル]-オートメーションアカウント を使用することをお勧めします。 この演習で [your-automation-account-name] が 表示されている場合は、この名前を使用します。 リージョン 既定の場所をそのまま使用する [ 確認と作成] を選択し、[ 作成] を選択します。 オートメーション アカウントが展開されるまで待ってください。
デプロイが完了したら 、[リソースに移動 ] を選択します。 リソースの Automation アカウント ペインが表示されます。
DSC 構成スクリプトを作成する
Cloud Shell で、次のコマンドを実行して PowerShell セッションを開始します。
pwsh
PowerShell プロンプトで次のコマンドを実行し、コード エディターで MyDscConfiguration.ps1 という名前の新しいファイルを開きます。
code $HOME/MyDscConfiguration.ps1
ファイルに次のコード ブロックを入力します。 このコードでは、IIS がまだインストールされていない場合は、IIS をインストールする構成を作成します。 その後、コードによってスクリプトが実行され、構成がコンパイルされます。
Configuration MyDscConfiguration { Node "localhost" { WindowsFeature MyFeatureInstance { Ensure = 'Present' Name = 'Web-Server' } } }
Ctrl + S キーを押してホーム ディレクトリにファイルを保存し、Ctrl + Q キーを押してエディターを閉じます。
Azure Cloud Shell の PowerShell セッションで、次のコードを入力し、
[your-automation-account-name]
を Automation アカウント リソースの名前に置き換えて、DSC スクリプトを Azure Automation アカウントにアップロードします。Import-AzAutomationDscConfiguration ` -Published ` -ResourceGroupName <rgn>[Sandbox resource group name]</rgn> ` -SourcePath $HOME/MyDscConfiguration.ps1 ` -Force ` -AutomationAccountName [your-automation-account-name]
このコマンドでは、次のような出力が生成されます。
ResourceGroupName : <rgn>[Sandbox resource group name]</rgn> AutomationAccountName : [your-automation-account-name] Location : eastus State : Published Name : MyDscConfiguration Tags : {} CreationTime : 6/25/21 5:44:36 PM +00:00 LastModifiedTime : 6/25/21 5:44:36 PM +00:00 Description : Parameters : {} LogVerbose : False
必要なモジュールを追加する (省略可能)
DSC 構成スクリプトをアップロードしたら、DSC プロセスに必要な PowerShell モジュールをインポートします。 この構成には他のモジュールは必要ないため、この手順は省略できます。 Automation アカウントにモジュールをインポートまたは追加する必要がある場合は、Azure portal で Automation アカウントに移動します。 そこから、左側の [共有リソース] 見出しで [モジュール] を選択し、[モジュールの追加] を選択します。
DSC スクリプトをコンパイルする
Azure portal では、Azure Automation アカウントの [概要 ] ウィンドウが引き続き表示されます。
[Automation アカウント] メニューの [ 構成管理] で、[ 状態構成 (DSC)] を選択します。 Automation アカウントの 状態構成 (DSC) ウィンドウが表示されます。
[構成] タブ を 選択します。構成 MyDscConfiguration が表示されることを確認し、それを選択します。 MyDscConfiguration 構成ウィンドウが表示されます。
コマンド バーで、[コンパイル] を選択 します。
[ DSC 構成のコンパイル ] ダイアログ ボックスで、[ はい] を選択します。
通知を確認します ( [通知 ] アイコンはページ ヘッダーのグローバル コントロールにあります)。 コンパイル ジョブの 状態 が [完了] と表示されるまで待ちます。これは数分かかる場合があります。
注
状態の変化を確認するには、更新が必要な場合があります。 更新するには、Azure portal の左上の階層リンク パスで、Automation アカウントを選択します。 状態構成 (DSC) ウィンドウが表示されます。 上部のメニュー バーで、[ 最新の情報に更新] を選択します。 次に、一覧から MyDscConfiguration 構成 を選択して MyDscConfiguration ペインに戻ります。 [ コンパイル ジョブ ] タブの [ 状態 ] が [完了] と表示されます。
コンパイルが完了したら、[ MyDscConfiguration ] ウィンドウを閉じます。 状態構成 (DSC) ウィンドウが表示されます。
Azure Automation アカウントに VM を登録する
[your-automation-account-name] の状態構成 (DSC) ペインで、[ノード] タブを選択します。コマンド バーで、[追加] を選択します。 Automation アカウントの [仮想マシン ] ウィンドウが表示されます。
この演習の最初のタスク (myVM) で作成した VM を選択します。 構成と VM がネットワークに反映されるまでに最大 10 分かかる場合があります。 VM が一覧に表示されない場合は、数分待ってから、表示されるまでコマンド バーで [最新の情報に更新 ] を選択します。
コマンド バーで 、[ 接続] を選択します。 [登録] ウィンドウが表示されます。
各設定に対して次の値を入力します。
設定 価値 ノード構成名 ドロップダウン リストから MyDscConfiguration.localhost を選択します。 更新頻度 30 コンフィギュレーション モードの頻度 15 構成モード ApplyAndMonitor モジュールのオーバーライドを許可する チェックボックスをオンにします 必要に応じてノードを再起動する チェックボックスをオンにします 再起動後のアクション 設定を続行 [ OK] を選択します。
VM が接続されるまで待ちます。 このプロセスには数分かかる場合があります。 myVM が接続されたら、ポータルの左上にある階層リンク パスで、Automation アカウントを選択して [登録と仮想マシン] ウィンドウを閉じます。 Automation アカウントの 状態構成 (DSC) ウィンドウが表示されます。
コマンド バーで、更新 を選択します。
ノード myVM が一覧に表示され、その状態が準拠していることを確認します。
IIS が VM にインストールされていることを確認する
Web ブラウザーで、 http://[public-ip]
に移動します。ここで、 [public-ip]
は、この演習で前に記録したパブリック IP アドレスです。
既定の IIS Web ページが表示されます。
おめでとうございます! IIS が正常にデプロイされました。 Azure Automation では、Azure Automation アカウントにアップロードした PowerShell DSC スクリプトを使用しました。