PowerShell-Desired State Configuration részleges konfigurációk

A következőkre vonatkozik: Windows PowerShell 5.0-s és újabb verziók.

A PowerShell 5.0-ban a Desired State Configuration (DSC) lehetővé teszi a konfigurációk töredékekben és több forrásból történő kézbesítését. A célcsomópont Helyi Configuration Manager (LCM) összehozza a töredékeket, mielőtt egyetlen konfigurációként alkalmazva tenné őket. Ez a képesség lehetővé teszi a konfigurációk csapatok vagy személyek közötti megosztását. Ha például két vagy több fejlesztőcsapat közösen dolgozik egy szolgáltatáson, előfordulhat, hogy mindegyik konfigurációt szeretne létrehozni a szolgáltatás egy részének kezeléséhez. Ezek a konfigurációk különböző lekéréses kiszolgálókról kérhetők le, és a fejlesztés különböző szakaszaiban adhatók hozzá. A részleges konfigurációk azt is lehetővé teszik, hogy a különböző személyek vagy csapatok egyetlen konfigurációs dokumentum szerkesztése nélkül szabályozhatják a csomópontok konfigurálásának különböző aspektusait. Előfordulhat például, hogy az egyik csapat felelős egy virtuális gép és operációs rendszer üzembe helyezéséért, míg egy másik csapat más alkalmazásokat és szolgáltatásokat helyez üzembe a virtuális gépen. Részleges konfigurációk esetén minden csapat létrehozhat saját konfigurációt anélkül, hogy bármelyikük szükségtelenül bonyolult lenne.

Részleges konfigurációkat leküldéses módban, lekéréses módban vagy a kettő kombinációjában is használhat.

Részleges konfigurációk leküldéses módban

Ha részleges konfigurációkat szeretne használni leküldéses módban, konfigurálja a célcsomópont LCM-ét a részleges konfigurációk fogadásához. Minden részleges konfigurációt le kell küldeni a célhoz a Publish-DSCConfiguration parancsmag használatával. A célcsomópont ezután egyetlen konfigurációban egyesíti a részleges konfigurációt, és a Start-DscConfiguration parancsmag meghívásával alkalmazhatja a konfigurációt.

Az LCM konfigurálása leküldéses módú részleges konfigurációkhoz

Ha leküldéses módban szeretné konfigurálni az LCM-et részleges konfigurációkhoz, hozzon létre egy DSCLocalConfigurationManager konfigurációt egy Részleges konfigurációs blokktal minden egyes részleges konfigurációhoz. Az LCM konfigurálásáról további információt a Windows Helyi Configuration Manager konfigurálása című témakörben talál. Az alábbi példa egy LCM-konfigurációt mutat be, amely két részleges konfigurációt vár – az egyik az operációs rendszert telepíti, a másik pedig a SharePointot telepíti és konfigurálja.

[DSCLocalConfigurationManager()]
configuration PartialConfigDemo
{
    Node localhost
    {

        PartialConfiguration ServiceAccountConfig
        {
            Description = 'Configuration to add the SharePoint service account to the Administrators group.'
            RefreshMode = 'Push'
        }
           PartialConfiguration SharePointConfig
        {
            Description = 'Configuration for the SharePoint server'
            RefreshMode = 'Push'
        }
    }
}

PartialConfigDemo

Az egyes részleges konfigurációk RefreshMode tulajdonsága "Leküldés" értékre van állítva. A PartialConfiguration blokkok nevének (ebben az esetben a "ServiceAccountConfig" és a "SharePointConfig") pontosan meg kell egyeznie a célcsomópontra leküldett konfigurációk nevével.

Megjegyzés

Az egyes PartialConfiguration blokkok neve megegyezik a konfiguráció tényleges nevével, mivel a konfigurációs szkriptben van megadva, nem pedig az MOF-fájl nevével, amely lehet a célcsomópont neve vagy localhost.

Részleges leküldéses módú konfigurációk közzététele és indítása

Ezután meghívja a Publish-DSCConfiguration parancsot az egyes konfigurációkhoz, és elérésiút-paraméterekként adja át a konfigurációs dokumentumokat tartalmazó mappákat. Publish-DSCConfigurationA a konfigurációs MOF-fájlokat a célcsomópontokra helyezi. Mindkét konfiguráció közzététele után meghívhatja Start-DSCConfiguration –UseExisting a célcsomópontot.

Ha például a következő konfigurációs MOF-dokumentumokat állította össze a szerzői csomóponton:

Get-ChildItem -Recurse
    Directory: C:\PartialConfigTest

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        8/11/2016   1:55 PM                ServiceAccountConfig
d-----       11/17/2016   4:14 PM                SharePointConfig

    Directory: C:\PartialConfigTest\ServiceAccountConfig

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        8/11/2016   2:02 PM           2034 TestVM.mof

    Directory: C:\PartialConfigTest\SharePointConfig

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       11/17/2016   4:14 PM           1930 TestVM.mof

A konfigurációkat a következőképpen teheti közzé és futtathatja:

Publish-DscConfiguration .\ServiceAccountConfig -ComputerName 'TestVM'
Publish-DscConfiguration .\SharePointConfig -ComputerName 'TestVM'
Start-DscConfiguration -UseExisting -ComputerName 'TestVM'
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
17     Job17           Configuratio... Running       True            TestVM            Start-DscConfiguration...

Megjegyzés

A Publish-DSCConfiguration parancsmagot futtató felhasználónak rendszergazdai jogosultságokkal kell rendelkeznie a célcsomóponton.

Részleges konfigurációk lekéréses módban

A részleges konfigurációk lekérhetők egy vagy több lekéréses kiszolgálóról (a lekéréses kiszolgálókról további információt a Windows PowerShell Desired State Configuration lekéréses kiszolgálók című témakörben talál. Ehhez konfigurálnia kell az LCM-et a célcsomóponton a részleges konfigurációk lekéréséhez, és el kell neveznie és megfelelően kell megkeresnie a konfigurációs dokumentumokat a lekérési kiszolgálókon.

Az LCM konfigurálása lekérési csomópont konfigurációihoz

Ha úgy szeretné konfigurálni az LCM-et, hogy részleges konfigurációkat kérjen le egy lekéréses kiszolgálóról, a lekéréses kiszolgálót a ConfigurationRepositoryWeb (HTTP lekéréses kiszolgálóhoz) vagy a ConfigurationRepositoryShare (SMB lekéréses kiszolgálóhoz) blokkban kell meghatároznia. Ezután a ConfigurationSource tulajdonság használatával részleges konfigurációs blokkokat hozhat létre, amelyek a lekérési kiszolgálóra hivatkoznak. Létre kell hoznia egy Beállítások blokkot is annak megadásához, hogy az LCM lekéréses módot használ-e, valamint meg kell adnia a ConfigurationNames vagy ConfigurationID azonosítót , amelyet a lekéréses kiszolgáló és a célcsomópont használ a konfigurációk azonosításához. Az alábbi metakonfiguráció egy CONTOSO-PullSrv nevű HTTP-lekérési kiszolgálót és két részleges konfigurációt határoz meg, amelyek ezt a lekéréses kiszolgálót használják.

További információ az LCM ConfigurationNames használatával történő konfigurálásáról: Lekéréses ügyfél beállítása konfigurációnevek használatával. További információ az LCM ConfigurationID használatával történő konfigurálásáról: Lekéréses ügyfél beállítása konfigurációazonosító használatával.

Az LCM konfigurálása lekéréses módú konfigurációkhoz konfigurációnevek használatával

[DscLocalConfigurationManager()]
Configuration PartialConfigDemoConfigNames
{
        Settings
        {
            RefreshFrequencyMins            = 30;
            RefreshMode                     = "PULL";
            ConfigurationMode               ="ApplyAndAutocorrect";
            AllowModuleOverwrite            = $true;
            RebootNodeIfNeeded              = $true;
            ConfigurationModeFrequencyMins  = 60;
        }
        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL                       = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
            RegistrationKey                 = 5b41f4e6-5e6d-45f5-8102-f2227468ef38
            ConfigurationNames              = @("ServiceAccountConfig", "SharePointConfig")
        }

        PartialConfiguration ServiceAccountConfig
        {
            Description                     = "ServiceAccountConfig"
            ConfigurationSource             = @("[ConfigurationRepositoryWeb]CONTOSO-PullSrv")
        }

        PartialConfiguration SharePointConfig
        {
            Description                     = "SharePointConfig"
            ConfigurationSource             = @("[ConfigurationRepositoryWeb]CONTOSO-PullSrv")
            DependsOn                       = '[PartialConfiguration]ServiceAccountConfig'
        }
}

Az LCM konfigurálása lekéréses módú konfigurációkhoz a ConfigurationID használatával

[DSCLocalConfigurationManager()]
configuration PartialConfigDemoConfigID
{
    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'

        }

           PartialConfiguration ServiceAccountConfig
        {
            Description                     = 'Configuration for the Base OS'
            ConfigurationSource             = '[ConfigurationRepositoryWeb]CONTOSO-PullSrv'
            RefreshMode                     = 'Pull'
        }
           PartialConfiguration SharePointConfig
        {
            Description                     = 'Configuration for the Sharepoint Server'
            ConfigurationSource             = '[ConfigurationRepositoryWeb]CONTOSO-PullSrv'
            DependsOn                       = '[PartialConfiguration]ServiceAccountConfig'
            RefreshMode                     = 'Pull'
        }
    }
}
PartialConfigDemo

Több lekéréses kiszolgálóról is lekérhet részleges konfigurációkat – csak minden egyes lekérési kiszolgálót meg kell határoznia, majd az egyes Részleges konfigurációs blokkokban a megfelelő lekérési kiszolgálóra kell hivatkoznia.

A metakonfiguráció létrehozása után futtatnia kell azt egy konfigurációs dokumentum (MOF-fájl) létrehozásához, majd meg kell hívnia a Set-DscLocalConfigurationManager parancsot az LCM konfigurálásához.

A konfigurációs dokumentumok elnevezése és elhelyezése a lekérési kiszolgálón (ConfigurationNames)

A részleges konfigurációs dokumentumokat a lekérési kiszolgáló fájljában configurationPath néven megadott mappába web.config kell helyezni (általában C:\Program Files\WindowsPowerShell\DscService\Configuration).

Konfigurációs dokumentumok elnevezése a lekérési kiszolgálón a PowerShell 5.1-ben

Ha csak egy részleges konfigurációt kér le egy adott lekérési kiszolgálóról, a konfigurációs dokumentumnak bármilyen neve lehet. Ha több részleges konfigurációt kér le egy lekérési kiszolgálóról, a konfigurációs dokumentum neve <ConfigurationName>.moflehet , ahol a ConfigurationName a részleges konfiguráció neve, vagy <ConfigurationName>.<NodeName>.mof, ahol a ConfigurationName a részleges konfiguráció neve, a NodeName pedig a célcsomópont neve. Ez lehetővé teszi a konfigurációk lekérését Azure Automation DSC lekérési kiszolgálóról.

Konfigurációs dokumentumok elnevezése a lekérési kiszolgálón a PowerShell 5.0-ban

A konfigurációs dokumentumokat a következőképpen kell elnevezni: ConfigurationName.mof, ahol a ConfigurationName a részleges konfiguráció neve. Példánkban a konfigurációs dokumentumokat a következőképpen kell elneveznünk:

ServiceAccountConfig.mof
ServiceAccountConfig.mof.checksum
SharePointConfig.mof
SharePointConfig.mof.checksum

A konfigurációs dokumentumok elnevezése és elhelyezése a lekérési kiszolgálón (ConfigurationID)

A részleges konfigurációs dokumentumokat a lekérési kiszolgáló fájljában configurationPath néven megadott mappába web.config kell helyezni (általában C:\Program Files\WindowsPowerShell\DscService\Configuration). A konfigurációs dokumentumokat a következőképpen kell elnevezni: <ConfigurationName>.<ConfigurationID>.mof, ahol a ConfigurationName a részleges konfiguráció neve, a ConfigurationID pedig a célcsomópont LCM-ben definiált konfigurációazonosítója. Példánkban a konfigurációs dokumentumokat a következőképpen kell elneveznünk:

ServiceAccountConfig.1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof
ServiceAccountConfig.1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof.checksum
SharePointConfig.1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof
SharePointConfig.1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof.checksum

Részleges konfigurációk futtatása lekéréses kiszolgálóról

Miután a célcsomóponton konfigurálta az LCM-et, és a konfigurációs dokumentumok létrejöttek és megfelelően el lettek nevezve a lekérési kiszolgálón, a célcsomópont lekéri a részleges konfigurációkat, kombinálja őket, és az eredményül kapott konfigurációt az LCM RefreshFrequencyMins tulajdonsága által meghatározott rendszeres időközönként alkalmazza. Ha kényszeríteni szeretne egy frissítést, meghívhatja az Update-DscConfiguration parancsmagot a konfigurációk lekéréséhez és alkalmazásához.

Részleges konfigurációk vegyes leküldéses és lekéréses módban

A részleges konfigurációk leküldéses és lekéréses módjait is keverheti. Ez azt is jelentheti, hogy rendelkezhet egy részleges konfigurációval, amelyet lekér egy lekéréses kiszolgálóról, míg egy másik részleges konfigurációt. Adja meg az egyes részleges konfigurációk frissítési módját az előző szakaszokban leírtak szerint. Az alábbi metakonfiguráció például ugyanezt a példát írja le, a ServiceAccountConfig részleges konfigurációt lekéréses módban, a részleges konfigurációt SharePointConfig pedig leküldéses módban.

Vegyes leküldéses és lekéréses módok ConfigurationNames használatával

[DscLocalConfigurationManager()]
Configuration PartialConfigDemoConfigNames
{
        Settings
        {
            RefreshFrequencyMins            = 30;
            RefreshMode                     = "PULL";
            ConfigurationMode               = "ApplyAndAutocorrect";
            AllowModuleOverwrite            = $true;
            RebootNodeIfNeeded              = $true;
            ConfigurationModeFrequencyMins  = 60;
        }
        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL                       = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
            RegistrationKey                 = 5b41f4e6-5e6d-45f5-8102-f2227468ef38
            ConfigurationNames              = @("ServiceAccountConfig", "SharePointConfig")
        }

        PartialConfiguration ServiceAccountConfig
        {
            Description                     = "ServiceAccountConfig"
            ConfigurationSource             = @("[ConfigurationRepositoryWeb]CONTOSO-PullSrv")
            RefreshMode                     = 'Pull'
        }

        PartialConfiguration SharePointConfig
        {
            Description                     = "SharePointConfig"
            DependsOn                       = '[PartialConfiguration]ServiceAccountConfig'
            RefreshMode                     = 'Push'
        }

}

Vegyes leküldéses és lekéréses módok a ConfigurationID használatával

[DSCLocalConfigurationManager()]
configuration PartialConfigDemo
{
    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'

        }

           PartialConfiguration ServiceAccountConfig
        {
            Description             = 'Configuration for the Base OS'
            ConfigurationSource     = '[ConfigurationRepositoryWeb]CONTOSO-PullSrv'
            RefreshMode             = 'Pull'
        }
           PartialConfiguration SharePointConfig
        {
            Description             = 'Configuration for the Sharepoint Server'
            DependsOn               = '[PartialConfiguration]ServiceAccountConfig'
            RefreshMode             = 'Push'
        }
    }
}
PartialConfigDemo

Vegye figyelembe, hogy a Beállítások blokkban megadott RefreshMode értéke "Lekérés", de a SharePointConfig részleges konfiguráció RefreshMode értéke "Leküldés".

Nevezze el és keresse meg a konfigurációs MOF-fájlokat a fent leírt módon a megfelelő frissítési módokhoz. Hívja Publish-DSCConfiguration meg a SharePointConfig részleges konfiguráció közzétételét, és várja meg, amíg lekéri a ServiceAccountConfig konfigurációt a lekérési kiszolgálóról, vagy kényszerítse a frissítést az Update-DscConfiguration meghívásával.

Példa ServiceAccountConfig részleges konfigurációra

Configuration ServiceAccountConfig
{
    Param (
        [Parameter(Mandatory,
                   HelpMessage="Domain credentials required to add domain\sharepoint_svc to the local Administrators group.")]
        [ValidateNotNullOrEmpty()]
        [pscredential]$Credential
    )

    Import-DscResource -ModuleName PSDesiredStateConfiguration

    Node localhost
    {
        Group LocalAdmins
        {
            GroupName           = 'Administrators'
            MembersToInclude    = 'domain\sharepoint_svc',
                                  'admins@example.domain'
            Ensure              = 'Present'
            Credential          = $Credential
        }

        WindowsFeature Telnet
        {
            Name                = 'Telnet-Server'
            Ensure              = 'Absent'
        }
    }
}
ServiceAccountConfig

Példa SharePointConfig részleges konfigurációra

Configuration SharePointConfig
{
    Param (
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [pscredential]$ProductKey
    )

    Import-DscResource -ModuleName xSharePoint

    Node localhost
    {
        xSPInstall SharePointDefault
        {
            Ensure      = 'Present'
            BinaryDir   = '\\FileServer\Installers\Sharepoint\'
            ProductKey  = $ProductKey
        }
    }
}
SharePointConfig

Lásd még:

lekéréses kiszolgálók Windows PowerShell Desired State Configuration

A Helyi Configuration Manager konfigurálása a Windowsban