演習 - DSC を設定し、必要な状態を構成する

完了

この演習では、Azure Automation アカウントを作成し、PowerShell DSC をアップロードします。 次に、既存の VM を Azure Automation にオンボードします。 最後に、VM に IIS がないかどうかを確認します。 その場合は、VM に IIS をインストールして構成するコードを実行します。

VM を作成する

まず、Windows Server 2022 イメージから新しい VM をデプロイします。

  1. 右側の Azure Cloud Shell ペインで、次のコマンドを実行してユーザー名を作成し、ランダムなパスワードを生成します。

    USERNAME=azureuser
    PASSWORD=$(openssl rand -base64 32)
    
  2. 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"
    }
    
  3. この出力から publicIpAddress をコピーして保存します。 演習の後半で、このアドレスを使用して VM にアクセスします。

  4. Cloud Shell で次のコマンドを実行して、Web トラフィック用に VM のポート 80 を開きます。

    az vm open-port \
      --port 80 \
      --resource-group "<rgn>[Sandbox resource group name]</rgn>" \
      --name myVM
    
  5. Web ブラウザーで、VM http://[public-ip]のパブリック IP アドレスに移動します。 ポート 80 は開いていますが、接続は This site can't be reached でタイムアウトになります。 このエラーは、IIS が VM にデプロイされていないために発生します。 この演習の後半で修正します。

Azure Automation アカウントを作成する

  1. サンドボックスのアクティブ化に使用したのと同じアカウントで Azure portal にサインインします。

  2. Azure portal のリソース メニューまたは ホーム ページで、[ リソースの作成] を選択します。 [ リソースの作成 ] ウィンドウが表示されます。

  3. [ 検索サービスとマーケットプレース ] テキスト ボックスに「 Automation」と入力し、Enter キーを して検索結果を表示します。

  4. Automation の検索結果で、Microsoft によって発行された Automation Azure サービスを選択します。

  5. 「作成」を選択します。 [ Automation アカウントの作成 ] ウィンドウが表示されます。

  6. 各設定に対して次の値を入力します。

    設定 価値
    サブスクリプション コンシェルジェ サブスクリプション
    リソースグループ ドロップダウン リストで既存のリソース グループを選択します
    名前 オートメーション アカウントの名前を入力します。 [あなたのイニシャル]-オートメーションアカウント を使用することをお勧めします。 この演習で [your-automation-account-name] が 表示されている場合は、この名前を使用します。
    リージョン 既定の場所をそのまま使用する
  7. [ 確認と作成] を選択し、[ 作成] を選択します。 オートメーション アカウントが展開されるまで待ってください。

  8. デプロイが完了したら 、[リソースに移動 ] を選択します。 リソースの Automation アカウント ペインが表示されます。

DSC 構成スクリプトを作成する

  1. Cloud Shell で、次のコマンドを実行して PowerShell セッションを開始します。

    pwsh
    
  2. PowerShell プロンプトで次のコマンドを実行し、コード エディターで MyDscConfiguration.ps1 という名前の新しいファイルを開きます。

    code $HOME/MyDscConfiguration.ps1
    
  3. ファイルに次のコード ブロックを入力します。 このコードでは、IIS がまだインストールされていない場合は、IIS をインストールする構成を作成します。 その後、コードによってスクリプトが実行され、構成がコンパイルされます。

    Configuration MyDscConfiguration {
      Node "localhost" {
        WindowsFeature MyFeatureInstance {
          Ensure = 'Present'
          Name = 'Web-Server'
        }
      }
    }
    
  4. Ctrl + S キーを押してホーム ディレクトリにファイルを保存し、Ctrl + Q キーを押してエディターを閉じます。

  5. 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 スクリプトをコンパイルする

  1. Azure portal では、Azure Automation アカウントの [概要 ] ウィンドウが引き続き表示されます。

  2. [Automation アカウント] メニューの [ 構成管理] で、[ 状態構成 (DSC)] を選択します。 Automation アカウントの 状態構成 (DSC) ウィンドウが表示されます。

  3. [構成] タブ 選択します。構成 MyDscConfiguration が表示されることを確認し、それを選択します。 MyDscConfiguration 構成ウィンドウが表示されます。

    [状態構成 (DSC)] ペインで使用可能な状態構成を示す Azure portal のスクリーンショット。

  4. コマンド バーで、[コンパイル] を選択 します

  5. [ DSC 構成のコンパイル ] ダイアログ ボックスで、[ はい] を選択します。

  6. 通知を確認します ( [通知 ] アイコンはページ ヘッダーのグローバル コントロールにあります)。 コンパイル ジョブの 状態[完了] と表示されるまで待ちます。これは数分かかる場合があります。

    状態の変化を確認するには、更新が必要な場合があります。 更新するには、Azure portal の左上の階層リンク パスで、Automation アカウントを選択します。 状態構成 (DSC) ウィンドウが表示されます。 上部のメニュー バーで、[ 最新の情報に更新] を選択します。 次に、一覧から MyDscConfiguration 構成 を選択して MyDscConfiguration ペインに戻ります。 [ コンパイル ジョブ ] タブの [ 状態 ] が [完了] と表示されます。

    構成のコンパイル ジョブの状態を示す Azure portal のスクリーンショット。

  7. コンパイルが完了したら、[ MyDscConfiguration ] ウィンドウを閉じます。 状態構成 (DSC) ウィンドウが表示されます。

Azure Automation アカウントに VM を登録する

  1. [your-automation-account-name] の状態構成 (DSC) ペインで、[ノード] タブを選択します。コマンド バーで、[追加] を選択します。 Automation アカウントの [仮想マシン ] ウィンドウが表示されます。

    [ノード] ペインを示す Azure portal のスクリーンショット。

  2. この演習の最初のタスク (myVM) で作成した VM を選択します。 構成と VM がネットワークに反映されるまでに最大 10 分かかる場合があります。 VM が一覧に表示されない場合は、数分待ってから、表示されるまでコマンド バーで [最新の情報に更新 ] を選択します。

  3. コマンド バーで 、[ 接続] を選択します。 [登録] ウィンドウが表示されます。

    [仮想マシン] ウィンドウが表示されている Azure portal のスクリーンショット。

  4. 各設定に対して次の値を入力します。

    設定 価値
    ノード構成名 ドロップダウン リストから MyDscConfiguration.localhost を選択します。
    更新頻度 30
    コンフィギュレーション モードの頻度 15
    構成モード ApplyAndMonitor
    モジュールのオーバーライドを許可する チェックボックスをオンにします
    必要に応じてノードを再起動する チェックボックスをオンにします
    再起動後のアクション 設定を続行
  5. [ OK] を選択します

  6. VM が接続されるまで待ちます。 このプロセスには数分かかる場合があります。 myVM が接続されたら、ポータルの左上にある階層リンク パスで、Automation アカウントを選択して [登録仮想マシン] ウィンドウを閉じます。 Automation アカウントの 状態構成 (DSC) ウィンドウが表示されます。

  7. コマンド バーで、更新 を選択します。

  8. ノード myVM が一覧に表示され、その状態が準拠していることを確認します。

    MyVM が登録されている [ノード] ウィンドウを示す Azure portal のスクリーンショット。

IIS が VM にインストールされていることを確認する

Web ブラウザーで、 http://[public-ip]に移動します。ここで、 [public-ip] は、この演習で前に記録したパブリック IP アドレスです。

既定の IIS Web ページが表示されます。 既定の IIS ウィンドウを示す Web ブラウザーのスクリーンショット。

おめでとうございます! IIS が正常にデプロイされました。 Azure Automation では、Azure Automation アカウントにアップロードした PowerShell DSC スクリプトを使用しました。