DSC を使用して Azure Automation を実装する

完了

Contoso では、Azure Automation State Configuration を使用すると、VM を一貫した状態に維持できるようになります。 その状態には、特定のアプリケーションと構成が含まれる場合があります。 Contoso では、PowerShell DSC を使用して、PowerShell スクリプトとオペレーティング システムの機能を組み合わせて宣言型の構成管理を実装できます。

注意

宣言型プログラミング言語では、意図 ("行うこと") が実行 ("行う方法") から切り離されています。

DSC を使用した Azure Automation の概要

Windows ベースの DSC は、Local Configuration Manager (LCM) コンポーネントに依存しています。 このコンポーネントは、Windows PowerShell DSC スクリプトの実行エンジンとして機能します。

LCM とは

LCM には、DSC スクリプトで定義された設定の実装を調整し、その進行状況を監視する役割があります。 DSC と同様に、LCM は、現在サポートされているすべてのバージョンの Windows オペレーティング システムに不可欠な部分です。 LCM には、目的の状態と一致するように VM などのマネージド マシン (ノード) の状態を更新する役割があります。 LCM では、実行するたびに次の手順が行われます。

  1. 取得: ノードの現在の状態を取得します。
  2. テスト: コンパイル済みの DSC スクリプト (.mof ファイル) を使用して、ノードの現在の状態を望ましいと比較します。
  3. 設定: .mof ファイルに記述されている望ましい状態と一致するようにノードを更新します。

VM を Azure Automation にオンボードで登録するときに LCM を構成します。

DSC のデプロイ オプション

次の表で説明するように、DSC 構成はプッシュ モードまたはプル モードのいずれかでデプロイできます。

モード 説明
プッシュ このモードでは、1 つ以上のマネージド コンピューターに対して、望ましい構成を手動で送信 (つまり、"プッシュ") します。 LCM コンポーネントは、各マネージド コンピューターの状態が、構成に指定されているものと一致するようにします。
プル このモードでは、"プル サーバー" に構成情報が保持されます。 各マネージド コンピューター上の LCM コンポーネントは、プル サーバーを定期的に (既定では 15 分間隔で) ポーリングして、最新の構成詳細を取得します。 その後、プル サーバーによって構成変更に関する詳細が各マネージド コンピューターに送信されます。

ヒント

Azure Automation には、DSC 構成を保存し、これらの構成を適用する必要のあるマネージド コンピューターをオンボードできる、マネージド Azure 常駐 DSC プル サーバーが含まれています。

Note

マネージド コンピューターには、オンプレミスのコンピューターや他のクラウド プロバイダーがホストする VM を含めることができます。

Windows コンピューターでの DSC の要件

Windows で DSC を使用するために、環境で満たす必要がある要件がいくつかあります。 次のとおりです。

  • オペレーティング システム。 マネージド コンピューターでは Windows 8.1 以降または Windows Server 2012 R2 以降が実行されている必要があります。

  • Windows リモート管理。 マネージド コンピューターで Windows リモート管理 (WinRM) を有効にする必要があります。

  • ネットワーク。 マネージド コンピューターがプライベート ネットワーク内にある場合、DSC が Azure Automation と通信するには、次のポートと URL が必要です。

    • ポート: 送信インターネット アクセスには TCP 443 のみが必要です。
    • グローバル URL: *.azure-automation.net
    • エージェント サービス: https://.agentsvc.azure-automation.net

Azure Automation に VM を登録する

DSC を使用して VM を制御するには、まず VM、つまり "ノード" を Azure Automation でオンボードする必要があります。 これを行うには、次の手順に従います。

  1. Azure portal を開き、[仮想マシン] を選択します。

  2. 適切な VM (実行中である必要があります) を選択します。

  3. ナビゲーション ペインの [操作] セクションで、[構成管理] を選択します。

  4. [構成管理] ブレードで、適切な [Log Analytics ワークスペース] (およびその場所)、[Automation アカウントのサブスクリプション][Automation アカウント] を選択します。

    ヒント

    新しい Log Analytics ワークスペースを作成できます。

    A screenshot of the Configuration management blade in the Azure portal. The administrator has selected the appropriate Log Analytics workspace and left all other values at default.

    Note

    Automation アカウントが 1 つしかない場合は、関連する Log Analytics ワークスペースを選択する際に、[Automation アカウントのサブスクリプション][Automation アカウント] が暗黙的に使用されます。

  5. 次の値を構成してから、[有効] を選択します。

    • [更新頻度]。 最新のノード構成をダウンロードするために PS DSC LCM から Azure Automation DSC プル サーバーにアクセスする頻度 (分単位) を示します。
    • [構成モードの頻度]。 DSC のバックグラウンド アプリケーションがターゲット ノードで現在のノード構成の実装を試みる頻度 (分単位) を示します。
    • [構成モード]。 PS DSC の構成モード。 次のモードを使用できます。
      • ApplyOnly。 LCM により、スクリプトが 1 回だけ実行されます。
      • ApplyAndMonitor。 LCM により、スクリプトが 1 回だけ実行されますが、結果の構成が監視され、構成のドリフトがログに記録されます。
      • ApplyAndAutoCorrect。 LCM により、定期的にスクリプトが実行され、構成のドリフトが自動的に修正されます。
    • [モジュールのオーバーライドを許可する]。 Azure Automation DSC プル サーバーからダウンロードされた新しい構成でターゲット ノードの既存のモジュールを上書きするかどうかを制御します。
    • [必要に応じてノードを再起動する]。 構成を完全に適用するために必要に応じてノードを再起動する場合に選択します。
    • [再起動後の操作]。 再起動後に実行する以下のアクション。
      • ContinueConfiguration
      • StopConfiguration

Note

VM のオンボードには約 15 分かかります。

DSC の使用方法

適切な VM を DSC にオンボードしたら、DSC を使用して VM の目的の状態を管理できるようになります。

A screenshot of the State configuration (DSC) blade in the Azure portal. The administrator has onboarded a single VM: ContosoVM4.

DSC では、次のものについて望ましい状態を定義できます。

  • オペレーティング システム
  • アプリケーション

ヒント

また、DSC と Azure Resource Manager テンプレートを使用して、標準の構成で VM をデプロイすることもできます。 詳細については、「Azure Resource Manager テンプレートを使用した Desired State Configuration 拡張機能」を参照してください。

スクリプトを使用して DSC を定義するか、Azure portal を使用して DSC を作成することができます。 構成を作成してコンパイルしたら、それをノードに割り当てて、その構成を受け取ることができます。

スクリプトをアップロードして DSC を実装する

多くの場合、DSC の実装は、望ましい状態が記述された構成スクリプト (.ps1) の作成から開始します。 次の例は、単純な構成の例です。 この場合、スクリプトではインターネット インフォメーション サービス (IIS) の存在を確認し、必要に応じてインストールします。

configuration IISInstall
{
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

Note

または、各 Azure Automation アカウントに含まれている "コンポジット" と呼ばれる事前に定義された構成ブロックを組み合わせて構成を作成することもできます。

Azure portal または Azure PowerShell を使用して、構成を Automation アカウントに追加することができます。 ポータルを使用してスクリプトを追加するには、次の手順を実行します。

  1. Azure portal で、Automation アカウントに移動します。
  2. [State configuration (DSC)](状態の構成 (DSC)) を選択し、次に [構成] タブで、[+ 追加] を選択します。
  3. [構成ファイル] フィールドで、スクリプトを参照して選択します。
  4. 説明を入力し、[OK] を選択します。

ヒント

構成スクリプトから、Automation 資産を参照することができます。

A screenshot of the Import blade in the Azure portal. The administrator has uploaded a script called iis.ps1.

Azure Automation DSC で管理できる機能の範囲は、Automation アカウントで使用できる DSC リソースによって異なります。 組み込みのリソース セットは、標準の PowerShell DSC と同じですが、定義を含む PowerShell 統合モジュールをアップロードすることで、追加のリソースをインポートすることもできます。 アップロード機能は、Azure portal で使用できます。 Azure PowerShell を使用してモジュールをアップロードすることもできます。

構成のコンパイル

構成スクリプトを作成したら、コンパイルする必要があります。これは Azure portal で実行します。 コンパイルによって、ターゲット ノードに適用される構成が含まれた 1 つ以上の .mof ファイルが生成されます。 これらのファイルは、DSC プル サーバーに自動的にアップロードされます。 構成をコンパイルするには、次の手順を実行します。

  1. Azure portal で、Automation アカウントに移動します。
  2. [State configuration (DSC)](状態の構成 (DSC)) を選択し、[構成] タブでアップロードした構成を選択します。
  3. [構成] ブレードで、[コンパイル] を選択します。
  4. メッセージが表示されたら [はい] を選択します。

A screenshot of the Configuration blade in the Azure portal. The administrator is about to compile a configuration called IISInstall.

Azure portal で構成を作成する

スクリプトを使用する必要はありません。 代わりに、Azure portal を使用して構成を作成できます。 Azure portal を使用して構成を作成するには、次の手順を実行します。

  1. [ホーム] ページで、[Automation アカウント] を選択します。
  2. 適切な Automation アカウントを選択します。
  3. ナビゲーション ペインの [構成管理] セクションで、[State configuration (DSC)](状態の構成 (DSC)) を選択します。
  4. [State configuration (DSC)](状態の構成 (DSC)) ブレードで、[構成の作成] を選択します。
  5. [構成の作成] ブレードの [基本] タブで、構成の名前を入力します。 たとえば、「Install_Components」と入力します。
  6. [複合リソース] リストで、事前に定義された構成を 1 つ以上選択します。 たとえば、WindowsFeatureSet を選択してから [次へ] を選択します。
  7. [ソース コード] タブで、必要に応じて PowerShell スクリプトを変更して目的の構成を実行し、[次へ] を選択します (たとえば、PowerShell コードを変更して、必要な Windows 機能をインストールできます)。
  8. [パラメーター] タブで、必要なパラメーターを入力し、[Save and compile](保存してコンパイル) を選択します。

構成を割り当てる

コンパイルされた構成を割り当てるには、作成方法に関係なく、次の手順を実行します。

  1. ポータルの [State configuration (DSC)](状態の構成 (DSC)) ブレードで、構成するノードを選択します。

  2. [VM_name] ブレードで、[ノード構成の割り当て] を選択します。

  3. 構成の一覧で適切な構成を選択し、[OK] を選択します。

    A screenshot of the Assign Node Configuration blade in the Azure portal. The administrator has selected one of the listed configurations.

  4. [VM_name] ブレードを閉じ、[State configuration (DSC)](状態の構成 (DSC)) ブレードから割り当てを監視します。

    A screenshot of the State configuration (DSC) blade in the Azure portal. The administrator has onboarded a single VM: ContosoVM4. It's status displays as Pending.