Aracılığıyla paylaş


Özel makine yapılandırma paketi yapıtlarını yayımlama

Başlamadan önce makine yapılandırmasına yönelik genel bakış sayfasını okumak iyi bir fikirdir.

Makine yapılandırması özel .zip paketleri, yönetilen makineler tarafından HTTPS aracılığıyla erişilebilen bir konumda depolanmalıdır. Örnek olarak GitHub depoları, Azure Deposu, Azure depolama alanı veya özel veri merkezinizdeki bir web sunucusu verilebilir.

Destekleyen Audit ve AuditandSet aynı şekilde yayımlanan yapılandırma paketleri. Yayımlama sırasında paket moduna göre özel bir şey yapmanıza gerek yoktur.

Yapılandırma paketi yayımlama

Yapılandırma paketini depolamak için tercih edilen konum Azure Blob Depolama. Depolama hesabı için özel bir gereksinim yoktur, ancak dosyayı makinelerinize yakın bir bölgede barındırmak iyi bir fikirdir. Paketi genel hale getirmemek isterseniz, URL'ye sas belirteci ekleyebilir veya özel ağdaki makineler için bir hizmet uç noktası uygulayabilirsiniz.

Yapılandırma paketinizi Azure blob depolamada yayımlamak için Az.Depolama modülünü kullanan bu adımları izleyebilirsiniz.

Depolama hesabınız yoksa aşağıdaki örneği kullanarak bir tane oluşturun.

# Creates a new resource group, storage account, and container
$ResourceGroup = '<resource-group-name>'
$Location      = '<location-id>'
New-AzResourceGroup -Name $ResourceGroup -Location $Location

$newAccountParams = @{
    ResourceGroupname = $ResourceGroup
    Location          = $Location
    Name              = '<storage-account-name>'
    SkuName           = 'Standard_LRS'
}
$container = New-AzStorageAccount @newAccountParams |
    New-AzStorageContainer -Name machine-configuration -Permission Blob

Ardından, paketi depolamak istediğiniz depolama hesabının bağlamını alın. Önceki örnekte depolama hesabını oluşturduysanız, değişkenine kaydedilen depolama kapsayıcısı nesnesinden bağlamı $container alabilirsiniz:

$context = $container.Context

Mevcut bir depolama kapsayıcısı kullanıyorsanız, cmdlet'iyle New-AzStorageContext kapsayıcının bağlantı dizesi kullanabilirsiniz:

$connectionString = @(
    'DefaultEndPointsProtocol=https'
    'AccountName=<storage-account-name>'
    'AccountKey=<storage-key-for-the-account>' # ends with '=='
) -join ';'
$context = New-AzStorageContext -ConnectionString $connectionString

Ardından yapılandırma paketini depolama hesabına ekleyin. Bu örnek zip dosyasını ./MyConfig.zip blob kapsayıcısına machine-configurationyükler.

$setParams = @{
    Container = 'machine-configuration'
    File      = './MyConfig.zip'
    Context   = $context
}
$blob = Set-AzStorageBlobContent @setParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri

Not

Bu örnekleri CloudShell'de çalıştırıyor ancak zip dosyanızı yerel olarak oluşturduysanız, dosyayı CloudShell'e yükleyebilirsiniz.

Bu sonraki adım isteğe bağlı olsa da, pakete güvenli erişim sağlamak için URL'ye bir paylaşılan erişim imzası (SAS) belirteci eklemeniz gerekir. Aşağıdaki örnek okuma erişimine sahip bir blob SAS belirteci oluşturur ve paylaşılan erişim imzası belirteci ile tam blob URI'sini döndürür. Bu örnekte belirtecin üç yıllık bir zaman sınırı vardır.

$startTime = Get-Date
$endTime   = $startTime.AddYears(3)

$tokenParams = @{
    StartTime  = $startTime
    ExpiryTime = $endTime
    Container  = 'machine-configuration'
    Blob       = 'MyConfig.zip'
    Permission = 'r'
    Context    = $context
    FullUri    = $true
}
$contentUri = New-AzStorageBlobSASToken @tokenParams

Önemli

SAS belirtecini oluşturduktan sonra döndürülen URI'yi not edin. Belirteci oluşturduktan sonra alamazsınız. Yalnızca yeni belirteçler oluşturabilirsiniz. SAS belirteçleri hakkında daha fazla bilgi için bkz. Paylaşılan erişim imzalarını (SAS) kullanarak Azure Depolama kaynaklarına sınırlı erişim verme.

Sonraki adım