A DSC SMB-lekérési kiszolgálójának beállítása

A következőkre vonatkozik: Windows PowerShell 4.0, Windows PowerShell 5.0

Fontos

A Lekéréses kiszolgáló (Windows feature DSC-Service) a Windows Server egyik támogatott összetevője, de nem tervez új funkciókat vagy képességeket kínálni. Szeretnénk tudni, hogy a DSC újabb verziója már általánosan elérhető, amelyet Azure Policy nevű vendégkonfiguráció egyik funkciója felügyel. A vendégkonfigurációs szolgáltatás egyesíti a DSC-bővítmény, a Azure Automation State Configuration és az ügyfél visszajelzései által leggyakrabban kért funkciókat. A vendégkonfiguráció a hibrid gépek Arc-kompatibilis kiszolgálókon keresztüli támogatását is magában foglalja.

A DSC SMB lekéréses kiszolgáló egy SMB-fájlmegosztásokat üzemeltető számítógép, amely elérhetővé teszi a DSC-konfigurációs fájlokat és DSC-erőforrásokat a célcsomópontok számára, amikor ezek a csomópontok kérik őket.

Az SMB lekéréses kiszolgáló DSC-hez való használatához a következőt kell használnia:

  • SMB-fájlmegosztás beállítása PowerShell 4.0-s vagy újabb verzióját futtató kiszolgálón
  • Konfiguráljon egy PowerShell 4.0-s vagy újabb verziót futtató ügyfelet az SMB-megosztásból való lekéréshez

SMB-fájlmegosztás létrehozása az xSmbShare erőforrással

Az SMB-fájlmegosztások beállításának számos módja van, de nézzük meg, hogyan teheti ezt meg a DSC használatával.

Az xSmbShare erőforrás telepítése

Hívja meg az Install-Module parancsmagot az xSmbShare modul telepítéséhez.

Megjegyzés

Install-Module része a PowerShellGet modulnak, amely a PowerShell 5.0 része. Az xSmbShare tartalmazza az xSmbShare DSC-erőforrást, amely SMB-fájlmegosztás létrehozásához használható.

A könyvtár és a fájlmegosztás létrehozása

A következő konfiguráció a Fájl erőforrás használatával hozza létre a megosztás könyvtárát és az xSmbShare erőforrást az SMB-megosztás beállításához:

Configuration SmbShare
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName xSmbShare

    Node localhost
    {

        File CreateFolder
        {
            DestinationPath = 'C:\DscSmbShare'
            Type = 'Directory'
            Ensure = 'Present'
        }

        xSMBShare CreateShare
        {
            Name = 'DscSmbShare'
            Path = 'C:\DscSmbShare'
            FullAccess = 'administrator'
            ReadAccess = 'myDomain\Contoso-Server$'
            FolderEnumerationMode = 'AccessBased'
            Ensure = 'Present'
            DependsOn = '[File]CreateFolder'
        }
    }
}

A konfiguráció létrehozza a könyvtárat C:\DscSmbShare, ha még nem létezik, majd ezt a könyvtárat használja SMB-fájlmegosztásként. A FullAccess szolgáltatást minden olyan fióknak meg kell adni, amelybe írnia vagy törölnie kell a fájlmegosztást. ReadAccess-et minden olyan ügyfélcsomópontnak meg kell adni, amely konfigurációkat és/vagy DSC-erőforrásokat kap a megosztástól.

Megjegyzés

A DSC alapértelmezés szerint rendszerfiókként fut, így magának a számítógépnek hozzá kell férnie a megosztáshoz.

Fájlrendszer-hozzáférés biztosítása a lekéréses ügyfélhez

A ReadAccess ügyfélcsomóponthoz való megadása lehetővé teszi, hogy a csomópont hozzáférjen az SMB-megosztáshoz, de a megosztáson belüli fájlokhoz vagy mappákhoz nem. Explicit módon hozzáférést kell adnia az ügyfélcsomópontoknak az SMB-megosztási mappához és az almappákhoz. Ezt a DSC-vel a CNtfsAccessControl modulban található cNtfsPermissionEntry erőforrás hozzáadásával teheti meg. A következő konfiguráció hozzáad egy cNtfsPermissionEntry blokkot , amely ReadAndExecute hozzáférést biztosít a lekéréses ügyfélhez:

Configuration DSCSMB
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName xSmbShare
    Import-DscResource -ModuleName cNtfsAccessControl

    Node localhost
    {

        File CreateFolder
        {
            DestinationPath = 'C:\DscSmbShare'
            Type = 'Directory'
            Ensure = 'Present'
        }

        xSMBShare CreateShare
        {
            Name = 'DscSmbShare'
            Path = 'C:\DscSmbShare'
            FullAccess = 'administrator'
            ReadAccess = 'myDomain\Contoso-Server$'
            FolderEnumerationMode = 'AccessBased'
            Ensure = 'Present'
            DependsOn = '[File]CreateFolder'
        }

        cNtfsPermissionEntry PermissionSet1
        {
            Ensure = 'Present'
            Path = 'C:\DscSmbShare'
            Principal = 'myDomain\Contoso-Server$'
            AccessControlInformation = @(
                cNtfsAccessControlInformation
                {
                    AccessControlType = 'Allow'
                    FileSystemRights = 'ReadAndExecute'
                    Inheritance = 'ThisFolderSubfoldersAndFiles'
                    NoPropagateInherit = $false
                }
            )
            DependsOn = '[File]CreateFolder'
        }
    }
}

Konfigurációk és erőforrások elhelyezése

Mentse azokat a konfigurációs MOF-fájlokat és/vagy DSC-erőforrásokat, amelyeket az ügyfélcsomópontok az SMB-megosztási mappába szeretnének lekérni.

Minden konfigurációs MOF-fájlt el kell nevezni <ConfigurationID>.mof, ahol <ConfigurationID> a célcsomópont LCM-jének ConfigurationID tulajdonságának értéke. A lekéréses ügyfelek beállításával kapcsolatos további információkért lásd: Lekéréses ügyfél beállítása konfigurációazonosítóval.

Megjegyzés

Ha SMB lekéréses kiszolgálót használ, konfigurációs azonosítókat kell használnia. A konfigurációnevek nem támogatottak az SMB-hez.

Az egyes erőforrásmodulokat az alábbi minta {Module Name}_{Module Version}.zipszerint kell tömöríteni és elnevezni. Egy xWebAdminstration nevű modul például a 3.1.2.0-s modulverzióval lesz elnevezve xWebAdministration_3.2.1.0.zip. A modul minden verzióját egyetlen zip-fájlban kell tárolni. A zip-fájlokban lévő modulok különálló verziói nem támogatottak. A lekéréses kiszolgálóhoz használható DSC-erőforrásmodulok csomagolása előtt egy kis módosítást kell végeznie a címtárszerkezeten.

A WMF 5.0-s verziójában DSC-erőforrást tartalmazó modulok alapértelmezett formátuma a .{Module Folder}\{Module Version}\DscResources\{DSC Resource Folder}\

A lekéréses kiszolgáló csomagolása előtt egyszerűen távolítsa el a {Module version} mappát, hogy az elérési út legyen {Module Folder}\DscResources\{DSC Resource Folder}\. Ezzel a módosítással tömörítse a mappát a fent leírtak szerint, és helyezze ezeket a zip-fájlokat az SMB megosztási mappájába.

Az MOF ellenőrzőösszeg létrehozása

A konfigurációs MOF-fájlt egy ellenőrzőösszegfájllal kell párosítani, hogy a célcsomópont LCM-je érvényesíthesse a konfigurációt. Ellenőrzőösszeg létrehozásához hívja meg a New-DSCCheckSum parancsmagot. A parancsmag egy paramétert Path vesz fel, amely megadja azt a mappát, ahol a konfigurációs MOF található. A parancsmag létrehoz egy ellenőrzőösszegfájlt ConfigurationMOFName.mof.checksum, ahol ConfigurationMOFName a konfigurációs mof fájl neve. Ha egynél több konfigurációs MOF-fájl található a megadott mappában, a rendszer ellenőrzőösszeget hoz létre a mappában lévő összes konfigurációhoz.

Az ellenőrzőösszeg-fájlnak ugyanabban a könyvtárban kell lennie, mint a konfigurációs MOF-fájlnak ($env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration alapértelmezés szerint), és ugyanazzal a névvel kell rendelkeznie, amelyhez hozzá van fűzve a .checksum bővítmény.

Megjegyzés

Ha bármilyen módon módosítja a konfigurációs MOF-fájlt, újra létre kell hoznia az ellenőrzőösszeg-fájlt is.

Lekéréses ügyfél beállítása SMB-hez

Ha olyan ügyfelet szeretne beállítani, amely konfigurációkat és/vagy erőforrásokat kér le egy SMB-megosztásból, konfigurálja az ügyfél Helyi Configuration Manager (LCM) a ConfigurationRepositoryShare és a ResourceRepositoryShare blokkokkal, amelyek meghatározzák azt a megosztást, amelyből konfigurációkat és DSC-erőforrásokat szeretne lekérni.

Az LCM konfigurálásával kapcsolatos további információkért lásd: Lekéréses ügyfél beállítása konfigurációazonosítóval.

Megjegyzés

Az egyszerűség kedvéért ez a példa a PSDscAllowPlainTextPassword használatával teszi lehetővé egyszerű szöveges jelszó átadását a Hitelesítő adatok paraméternek. A hitelesítő adatok biztonságosabb átadásával kapcsolatos információkért lásd: Hitelesítő adatok beállításai a konfigurációs adatokban. Meg kell adnia egy ConfigurationID azonosítót egy SMB-lekéréses kiszolgáló metakonfigurációjának Beállítások blokkjában, még akkor is, ha csak erőforrásokat kér le.

$secpasswd = ConvertTo-SecureString "Pass1Word" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("TestUser", $secpasswd)

[DSCLocalConfigurationManager()]
configuration SmbCredTest
{
    Node $AllNodes.NodeName
    {
        Settings
        {
            RefreshMode = 'Pull'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
            ConfigurationID    = '16db7357-9083-4806-a80c-ebbaf4acd6c1'
        }

         ConfigurationRepositoryShare SmbConfigShare
        {
            SourcePath = '\\WIN-E0TRU6U11B1\DscSmbShare'
            Credential = $mycreds
        }

        ResourceRepositoryShare SmbResourceShare
        {
            SourcePath = '\\WIN-E0TRU6U11B1\DscSmbShare'
            Credential = $mycreds

        }
    }
}

$ConfigurationData = @{
    AllNodes = @(
        @{
            #the "*" means "all nodes named in ConfigData" so we don't have to repeat ourselves
            NodeName="localhost"
            PSDscAllowPlainTextPassword = $true
        })
}

Köszönetnyilvánítás

Külön köszönet a következő személyeknek:

  • Mike F. Robbins, akinek az SMB DSC-hez való használatáról szóló bejegyzései segítettek tájékoztatni a jelen témakörben található tartalmakat. A blogja Mike F Robbinsnál van.
  • Serge Nikalaichyk, a cNtfsAccessControl modul szerzője. A modul forrása a cNtfsAccessControl.

Lásd még

Windows PowerShell Desired State Configuration áttekintése

Konfigurációk életbe léptetése

Lekérési ügyfél beállítása konfigurációs azonosítóval