PowerShell 5.0 以降で構成 ID を使用してプル クライアントを設定する

適用対象: Windows PowerShell 5.0

Important

プル サーバー (Windows 機能 DSC-Service) は Windows Server のサポートされているコンポーネントですが、新しい機能を提供する予定はありません。 新しいバージョンの DSC が一般提供され、 ゲスト構成という名前の Azure Policy の機能によって管理されることをお知らせします。 ゲスト構成サービスは、DSC 拡張機能、Azure Automation State Configuration、およびお客様からのフィードバックから最も要望の多かった機能を組み合わせたものです。 ゲスト構成には、 Arc 対応サーバーを介したハイブリッド マシンのサポートも含まれます。

プルクライアントを設定する前に、プルサーバーを設定する必要があります。 この順序は必須ではありませんが、トラブルシューティングに役立ち、登録が成功したことを確認するのに役立ちます。 プルサーバーを設定するには、次のガイドを使用できます。

各ターゲットノードは、構成やリソースをダウンロードし、そのステータスを報告するように構成できます。 以下のセクションでは、SMB 共有または HTTP DSC プル サーバーを使用してプル クライアントを構成する方法を示します。 ノードのLCMが更新されると、設定された場所に到達して、割り当てられた設定をダウンロードします。 必要なリソースがノードに存在しない場合は、設定された場所から自動的にダウンロードされます。 ノードが レポート サーバーで構成されている場合は、操作の状態が報告されます。

注

このトピックは、PowerShell 5.0 に適用されます。 PowerShell 4.0 でのプル クライアントの設定については、「PowerShell 4.0 での構成 ID を使用したプル クライアントの設定」を参照してください

プル クライアント LCM を構成する

以下の例のいずれかを実行すると、 PullClientConfigID という名前の新しい出力フォルダーが作成され、そこにメタ構成 MOF ファイルが配置されます。 この場合、メタ構成 MOF ファイルの名前は localhost.meta.mof になります。

構成を適用するには、 Set-DscLocalConfigurationManager コマンドレットを呼び出し、 パスを メタ構成 MOF ファイルの場所に設定します。 例えば次が挙げられます。

Set-DSCLocalConfigurationManager –ComputerName localhost –Path .\PullClientConfigId –Verbose.

構成 ID

次の例では、LCM の ConfigurationID プロパティを、この目的のために以前に作成された Guid に設定します。 ConfigurationID は、LCM がプル サーバーで適切な構成を見つけるために使用するものです。 プル サーバー上の構成 MOF ファイルには ConfigurationID.mof という名前を付ける必要があります。ここで、 ConfigurationID はターゲット ノードの LCM の ConfigurationID プロパティの値です。 詳細については、「 プル・サーバーへの構成の公開 (v4/v5)」を参照してください。

ランダムな Guid は、次の例を使用するか、 New-Guid コマンドレットを使用して作成できます。

[System.Guid]::NewGuid()

環境での Guid の使用の詳細については、「 Guid の計画」を参照してください。

構成をダウンロードするためのプルクライアントの設定

各クライアントは プル モードで設定し、その設定が格納されているプルサーバーURLを指定する必要があります。 これを行うには、必要な情報を使用してローカル構成マネージャー (LCM) を構成する必要があります。 LCM を構成するには、 DSCLocalConfigurationManager 属性で修飾された特別なタイプの構成を作成します。 LCM の構成の詳細については、「 ローカル構成マネージャーの構成」を参照してください。

HTTP DSC プル サーバー

次のスクリプトは、"CONTOSO-PullSrv" という名前のサーバーから構成をプルするように LCM を構成します。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }
    }
}
PullClientConfigID

スクリプトでは、 ConfigurationRepositoryWeb ブロックがプル サーバーを定義します。 ServerUrl は、DSC プルの URL を指定します。

SMBシェア

次のスクリプトは、SMB 共有 \\SMBPullServer\Pullから構成を取得するように LCM を構成します。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryShare SMBPullServer
        {
            SourcePath = '\\SMBPullServer\Pull'
        }
    }
}
PullClientConfigID

スクリプトでは、 ConfigurationRepositoryShare ブロックがプル サーバー (この場合は単なる SMB 共有) を定義します。

リソースをダウンロードするためのプル・クライアントのセットアップ

LCM 構成で ConfigurationRepositoryWeb ブロックまたは ConfigurationRepositoryShare ブロックのみを指定すると (前の例のように)、プル クライアントは構成を取得するのと同じ場所からリソースをプルします。 リソースに個別の場所を指定することもできます。 リソースの場所を別のサーバーとして指定するには、 ResourceRepositoryWeb ブロックを使用します。 リソースの場所を SMB 共有として指定するには、 ResourceRepositoryShare ブロックを使用します。

注

ConfigurationRepositoryWeb と ResourceRepositoryShare を組み合わせたり、ConfigurationRepositoryShare を ResourceRepositoryWeb と組み合わせたりすることができます。 この例は以下に示されていません。

HTTP DSC プル サーバー

次のメタ構成では、 CONTOSO-PullSrv から構成を取得し、 CONTOSO-ResourceSrv からリソースを取得するようにプル クライアントを構成します。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }

        ResourceRepositoryWeb CONTOSO-ResourceSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

SMBシェア

次の例は、SMB 共有 \\SMBPullServer\Configurationsから構成をプルし、SMB 共有 \\SMBPullServer\Resourcesからリソースを取得するようにクライアントを設定するメタ構成を示しています。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryShare SMBPullServer
        {
            SourcePath = '\\SMBPullServer\Configurations'
        }

        ResourceRepositoryShare SMBResourceServer
        {
            SourcePath = '\\SMBPullServer\Resources'
        }
    }
}
PullClientConfigID

プッシュモードでのリソースの自動ダウンロード

PowerShell 5.0 以降では、プル クライアントは、 プッシュ モード用に構成されている場合でも、SMB 共有からモジュールをダウンロードできます。 これは、プル サーバーを設定したくないシナリオで特に便利です。 ResourceRepositoryShare ブロックは、ConfigurationRepositoryShare を指定せずに使用できます。 次の例は、SMB 共有 \\SMBPullServer\Resourcesからリソースを取得するようにクライアントを設定するメタ構成を示しています。 ノードが構成を プッシュ されると、指定された共有から必要なリソースが自動的にダウンロードされます。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Push'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
        }

        ResourceRepositoryShare SMBResourceServer
        {
            SourcePath = '\\SMBPullServer\Resources'
        }
    }
}
PullClientConfigID

ステータスを報告するためのプルクライアントの設定

デフォルトでは、ノードは構成されたプルサーバーにレポートを送信しません。 構成、リソース、およびレポートには 1 つのプル サーバーを使用できますが、レポートを設定するには ReportRepositoryWeb ブロックを作成する必要があります。

HTTP DSC プル サーバー

次の例は、構成とリソースをプルし、レポート データを 1 つのプル サーバーに送信するようにクライアントを設定するメタ構成を示しています。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }

        ReportServerWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

レポート サーバーを指定するには、 ReportRepositoryWeb ブロックを使用します。 レポート サーバーを SMB サーバーにすることはできません。 次のメタ構成では、 CONTOSO-PullSrv から構成を取得し、 CONTOSO-ResourceSrv からリソースを取得し、状態レポートを CONTOSO-ReportSrv に送信するようにプル クライアントを構成します。

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }

        ResourceRepositoryWeb CONTOSO-ResourceSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }

        ReportServerWeb CONTOSO-ReportSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

SMBシェア

レポート サーバーを SMB 共有にすることはできません。

次のステップ

プルクライアントが構成されたら、次のガイドを使用して次の手順を実行できます。

こちらもご覧ください