演習 - 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 のパブリック IP アドレス
http://[public-ip]
に移動します。 ポート 80 は開いていますが、接続はThis site can't be reached
でタイムアウトします。 このエラーは、IIS が VM にデプロイされていないことが原因で発生します。 この問題は、この演習で後ほど修正します。
Azure Automation アカウントを作成する
サンドボックスのアクティブ化に使用したものと同じアカウントを使って、Azure portal にサインインします。
Azure portal のリソース メニューまたはホーム ページで、[リソースの作成] を選択します。 [リソースの作成] ウィンドウが表示されます。
[サービスとマーケットプレースの検索] テキスト ボックスに「Automation」と入力し、Enter キーを選択して検索結果を表示します。
Automation の検索結果から、Microsoft が発行している Automation の Azure サービスを選択します。
[作成] を選択します。 [Automation アカウントの作成] ウィンドウが表示されます。
各設定に対して次の値を入力します。
設定 値 サブスクリプション コンシェルジェ サブスクリプション リソース グループ ドロップダウン リストで、既存のリソース グループを選択します 名前 自分の Automation アカウントの名前を入力します。 [自分のイニシャル]-automation-account を使用することをお勧めします。 この演習では、[your-automation-account-name] と書かれているところではすべて、この名前を使用します。 リージョン 既定の場所のまま [確認および作成] を選択し、 [作成] を選択します。 Automation アカウントがデプロイされるまで待ちます。
デプロイが完了したら、[リソースに移動] を選択します。 リソースの [Automation アカウント] ウィンドウ。
DSC 構成スクリプトを作成する
Cloud Shell で、次のコマンドを実行して PowerShell セッションを開始します。
pwsh
PowerShell プロンプトで次のコマンドを実行して、コード エディターで MyDscConfiguration.ps1 という名前の新しいファイルを開きます。
code $HOME/MyDscConfiguration.ps1
ファイルに次のコード ブロックを入力します。 このコードでは、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 アカウント リソースの名前に置き換えて、Azure Automation アカウントに DSC スクリプトをアップロードします。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 アカウント メニューの [構成管理] で、[State Configuration (DSC)] を選択します。 Automation アカウントの [State Configuration (DSC)] ペインが表示されます。
[構成] タブを選択します。構成 MyDscConfiguration が表示されていることを確認して、それを選択します。 [MyDscConfiguration] 構成ペインが表示されます。
コマンド バーの [コンパイル] を選択します。
[DSC 構成のコンパイル] ダイアログ ボックスで、[はい] を選択します。
通知を確認します ([通知] アイコンはページ ヘッダーのグローバル コントロールに表示されます)。 コンパイル ジョブの [状態] が [完了] と表示されるまで待ちます。これには数分かかる場合があります。
Note
状態の変化を確認するには、更新が必要になる場合があります。 更新するには、Azure portal の左上の階層リンク パスで、Automation アカウントを選択します。 [State Configuration (DSC)] ペインが表示されます。 上部のメニュー バーで、[更新] を選択します。 一覧から [MyDscConfiguration] 構成を選択し、[MyDscConfiguration] ウィンドウに戻ります。 [コンパイル ジョブ] タブの [状態] に "完了" と表示されます。
コンパイルが完了したら、[MyDscConfiguration] ウィンドウを閉じます。 State Configuration (DSC) ウィンドウが表示されます。
Azure Automation アカウントに VM を登録する
[your-automation-account-name] の [State Configuration (DSC)] ペインで、[ノード] タブを選択し、コマンド バーで [追加] を選択します。 Automation アカウントの [仮想マシン] ウィンドウが表示されます。
この演習の最初のタスクで作成した VM (myVM) を選択します。 構成と VM がネットワークに伝達されるには、最大で 10 分かかる場合があります。 この VM が一覧に表示されない場合は、数分待ってから、それが表示されるまで、コマンド バーの [更新] を選択します。
コマンド バーの [接続] を選択します。 [登録] ペインが表示されます。
各設定に対して次の値を入力します。
設定 値 ノード構成名 ドロップダウン リストから、[MyDscConfiguration.localhost] を選択します 更新頻度 30 構成モードの頻度 15 構成モード ApplyAndMonitor モジュールのオーバーライドを許可する チェックボックスをオンにします 必要に応じてノードを再起動する チェックボックスをオンにします 再起動後の操作 ContinueConfiguration [OK] を選択します。
VM が接続されるまで待ちます。 この処理には数分かかることがあります。 myVM が接続されたら、ポータルの左上の階層リンク パスで、自分の Automation アカウントを選び、[登録] と [Virtual Machines] ペインを閉じます。 Automation アカウントの [State Configuration (DSC)] ペインが表示されます。
コマンド バーの [更新] を選択します。
ノード myVM が一覧に表示され、その状態が [準拠] になっていることを確認します。
IIS が VM にインストールされていることを確認する
Web ブラウザーで、http://[public-ip]
に移動します。ここで、[public-ip]
はこの演習の前半で記録したパブリック IP アドレスです。
既定の IIS Web ページが表示されます。
おめでとうございます。 IIS が正常にデプロイされました。 Azure Automation では、自分の Azure Automation アカウントにアップロードした PowerShell DSC スクリプトが使用されました。