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}.zip
szerint 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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: