Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Windows PowerShell 4.0, Windows PowerShell 5.0
Önemli
Çekme Sunucusu (Windows Özelliği DSC-Service), Windows Server'ın desteklenen bir bileşenidir, ancak yeni özellikler veya yetenekler sunma planı yoktur. DSC'nin daha yeni bir sürümünün genel kullanıma sunulduğunu ve konuk yapılandırması adlı Azure İlkesi özelliği tarafından yönetildiğini bilmenizi isteriz. Konuk yapılandırma hizmeti DSC Uzantısı, Azure Otomasyonu State Configuration ve müşteri geri bildirimlerinden en sık istenen özellikleri birleştirir. Konuk yapılandırması, Arc özellikli sunucular aracılığıyla karma makine desteği de içerir.
DSC SMB çekme sunucusu, DSC yapılandırma dosyalarını ve DSC kaynaklarını hedef düğümler istediğinde bu düğümler için kullanılabilir hale getiren SMB dosya paylaşımlarını barındıran bir bilgisayardır.
DSC için SMB çekme sunucusu kullanmak için şunları yapmanız gerekir:
- PowerShell 4.0 veya üzerini çalıştıran bir sunucuda SMB dosya paylaşımı ayarlama
- PowerShell 4.0 veya üzerini çalıştıran bir istemciyi bu SMB paylaşımından çekecek şekilde yapılandırma
SMB dosya paylaşımı oluşturmak için xSmbShare kaynağını kullanma
SMB dosya paylaşımı ayarlamanın çeşitli yolları vardır, ancak şimdi DSC kullanarak bunu nasıl yapabileceğinize bakalım.
xSmbShare kaynağını yükleme
xSmbShare modülünü yüklemek için Install-Module cmdlet'ini çağırın.
Uyarı
Install-Module PowerShell 5.0'da bulunan PowerShellGet modülüne dahildir.
xSmbShare, SMB dosya paylaşımı oluşturmak için kullanılabilecek DSC kaynağı xSmbShare'i içerir.
Dizin ve dosya paylaşımını oluşturma
Aşağıdaki yapılandırma, paylaşımın dizinini oluşturmak için Dosya kaynağını ve SMB paylaşımını ayarlamak için xSmbShare kaynağını kullanır:
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'
}
}
}
Yapılandırma, henüz yoksa dizini C:\DscSmbShareoluşturur ve ardından bu dizini SMB dosya paylaşımı olarak kullanır. Dosya paylaşımına yazması veya dosya paylaşımından silinmesi gereken tüm hesaplara Tam Erişim verilmelidir.
ReadAccess , paylaşımdan yapılandırmaları ve/veya DSC kaynaklarını alan tüm istemci düğümlerine verilmelidir.
Uyarı
DSC varsayılan olarak sistem hesabı olarak çalışır, bu nedenle bilgisayarın kendisinin paylaşıma erişimi olmalıdır.
Çekme istemcisine dosya sistemi erişimi verme
Bir istemci düğümüne ReadAccess vermek, bu düğümün SMB paylaşımına erişmesine izin verir, ancak bu paylaşımdaki dosya veya klasörlere erişmesini sağlamaz. İstemci düğümlerine SMB paylaşım klasörüne ve alt klasörlerine açıkça erişim vermeniz gerekir. CNtfsAccessControl modülünde bulunan cNtfsPermissionEntry kaynağını kullanarak ekleyerek DSC ile bunu yapabiliriz. Aşağıdaki yapılandırma, çekme istemcisine erişim izni veren bir cNtfsPermissionEntry bloğu ekler ReadAndExecute :
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'
}
}
}
Yapılandırmaları ve kaynakları yerleştirme
İstemci düğümlerinin SMB paylaşım klasörüne çekmesini istediğiniz tüm yapılandırma MOF dosyalarını ve/veya DSC kaynaklarını kaydedin.
Herhangi bir yapılandırma MOF dosyası, hedef düğümün LCM'sinin ConfigurationID özelliğinin değeri olan adlandırılmalıdır<ConfigurationID>.mof<ConfigurationID>. Çekme istemcilerini ayarlama hakkında daha fazla bilgi için bkz: Yapılandırma kimliğini kullanarak çekme istemcisi ayarlama.
Uyarı
SMB çekme sunucusu kullanıyorsanız yapılandırma kimliklerini kullanmanız gerekir. Yapılandırma adları SMB için desteklenmez.
Her kaynak modülünün aşağıdaki desene {Module Name}_{Module Version}.zipgöre sıkıştırılması ve adlandırılması gerekir. Örneğin, modül sürümü 3.1.2.0 olan xWebAdminstration adlı bir modül olarak adlandırılır xWebAdministration_3.2.1.0.zip. Bir modülün her sürümü tek bir zip dosyasında bulunmalıdır. Zip dosyasındaki bir modülün ayrı sürümleri desteklenmez.
DSC kaynak modüllerini çekme sunucusuyla kullanmak üzere paketlemeden önce dizin yapısında küçük bir değişiklik yapmanız gerekir.
WMF 5.0'da DSC kaynağı içeren modüllerin varsayılan biçimi şeklindedir {Module Folder}\{Module Version}\DscResources\{DSC Resource Folder}\.
Çekme sunucusu için paketlemeden önce, {Module version} klasörü kaldırmanız yeterlidir, böylece yol olur {Module Folder}\DscResources\{DSC Resource Folder}\. Bu değişiklikle, klasörü yukarıda açıklandığı gibi sıkıştırın ve bu zip dosyalarını SMB paylaşım klasörüne yerleştirin.
MOF sağlama toplamının oluşturulması
Hedef düğümdeki bir LCM'nin yapılandırmayı doğrulayabilmesi için yapılandırma MOF dosyasının sağlama toplamı dosyasıyla eşleştirilmesi gerekir. Sağlama toplamı oluşturmak için New-DSCCheckSum cmdlet'ini çağırın. Cmdlet, MOF yapılandırmasının bulunduğu klasörü belirten bir Path parametre alır. Cmdlet, yapılandırma mof dosyasının adı olan ConfigurationMOFName adlı ConfigurationMOFName.mof.checksumbir sağlama toplamı dosyası oluşturur. Belirtilen klasörde birden fazla yapılandırma MOF dosyası varsa, klasördeki her yapılandırma için bir sağlama toplamı oluşturulur.
Sağlama toplamı dosyası, yapılandırma MOF dosyasıyla$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration (varsayılan olarak) aynı dizinde bulunmalı ve uzantı eklenmiş olarak .checksum aynı ada sahip olmalıdır.
Uyarı
Yapılandırma MOF dosyasını herhangi bir şekilde değiştirirseniz, sağlama toplamı dosyasını da yeniden oluşturmanız gerekir.
SMB için çekme istemcisi ayarlama
Bir SMB paylaşımından yapılandırmaları ve/veya kaynakları çeken bir istemci ayarlamak için, istemcinin Yerel Configuration Manager'ını (LCM), yapılandırmaların ve DSC kaynaklarının çekileceği paylaşımı belirten ConfigurationRepositoryShare ve ResourceRepositoryShare bloklarıyla yapılandırırsınız.
LCM'yi yapılandırma hakkında daha fazla bilgi için bkz: Yapılandırma kimliğini kullanarak çekme istemcisi ayarlama.
Uyarı
Kolaylık olması için bu örnek, parametresine düz metin parolası geçirmeye izin vermek için PSDscAllowPlainTextPassword kullanır Credential . Kimlik bilgilerini daha güvenli bir şekilde geçirme hakkında bilgi için, bkz: Yapılandırma Verileri'ndeki Kimlik Bilgileri Seçenekleri. Yalnızca kaynakları çekiyor olsanız bile, bir SMB çekme sunucusu için bir meta yapılandırmanın Ayarlar bloğunda bir ConfigurationID belirtmeniz GEREKİR.
$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
})
}
Teşekkür
Aşağıdaki kişilere özel teşekkürler:
- DSC için SMB kullanımına ilişkin gönderileri bu konudaki içeriğin bilgilendirilmesine yardımcı olan Mike F. Robbins. Blogu Mike F Robbins'te.
- cNtfsAccessControl modülünü yazan Serge Nikalaichyk. Bu modülün kaynağı cNtfsAccessControl'dedir.
Ayrıca bakınız
Windows PowerShell İstenen Durum Yapılandırmasına Genel Bakış