Udostępnij za pośrednictwem


Upraszczanie tworzenia runbooków w Service Management Automation przy użyciu zasobów globalnych

Zasoby globalne są dostępne dla wszystkich runbooków w środowisku Automation. Można je utworzyć i skonfigurować przy użyciu obszaru roboczego usługi Automation w portalu zarządzania lub przy użyciu odpowiednich poleceń cmdlet w programie Windows PowerShell. Z podręcznika można pobrać i ustawić wartości dla zasobów globalnych za pomocą działań w module RunbookConstructs. Polecenia cmdlet programu Windows PowerShell są dostępne do użycia w runbookach w usłudze Service Management Automation, ale zaleca się korzystać z działań, gdyż są bardziej wydajne, nie wymagając działania za pośrednictwem usługi internetowej Automation.

Pobieranie lub ustawianie poświadczeń

Poświadczenie usługi Automation to nazwa użytkownika i hasło, które mogą być używane z poleceniami programu Windows PowerShell lub certyfikatem przekazanym do serwera. Właściwości poświadczeń są bezpiecznie przechowywane w bazie danych usługi Automation i mogą być dostępne w elemencie runbook za pomocą działań Get-AutomationPSCredential lub Get-AutomationCertificate.

Program PowerShell do zarządzania poświadczeniami

Polecenia cmdlet w poniższej tabeli umożliwiają tworzenie poświadczeń za pomocą programu Windows PowerShell i zarządzanie nimi w programie Service Management Automation.

Polecenia Cmdlets opis
Get-SmaCertificate Pobiera certyfikat automatyzacji.
Get-SmaCredential Pobiera poświadczenia PowerShell dla usługi Automation.
Remove-SmaCertificate - Usuń certyfikat SMA Usuwa certyfikat automatyzacji.
Remove-SmaCredential Usuwa poświadczenia programu PowerShell dla usługi Automation.
Set-SmaCertificate Tworzy nowy certyfikat lub ustawia właściwości istniejącego certyfikatu, w tym przekazywanie pliku certyfikatu i ustawianie hasła dla pliku pfx.
Set-SmaCredential Stworzenie nowego poświadczenia Automation PowerShell lub ustawienie właściwości dla istniejącego poświadczenia.

Program PowerShell do pracy z poświadczeniami

Aby uzyskać dostęp do poświadczeń w elemencie runbook, możesz użyć działań w poniższej tabeli.

Działania opis
Get-AutomationCertificate (Pobierz certyfikat automatyzacji) Uzyskuje certyfikat do wykorzystania w Runbooku.
Get-AutomationPSCredential Pobiera nazwę użytkownika/hasło do użycia w runbooku.

Uwaga

Należy unikać używania zmiennych w parametrze „Name” w Get-AutomationPSCredential i Get-AutomationCertificate, ponieważ może to komplikować odnajdywanie zależności między runbookami a zmiennymi automatyzacji.

Tworzenie poświadczeń programu PowerShell w portalu zarządzania

  1. Wybierz obszar roboczy automatyzacji.

  2. W górnej części okna wybierz pozycję Zasoby.

  3. W dolnej części okna wybierz pozycję Dodaj ustawienie.

  4. Wybierz pozycję Dodaj poświadczenia.

  5. Z listy rozwijanej Typ poświadczeń wybierz pozycję Poświadczenia programu PowerShell.

  6. Wprowadź nazwę poświadczenia w polu Nazwa .

  7. Wybierz strzałkę w prawo.

  8. Wprowadź wartości dla każdej właściwości.

  9. Wybierz zaznaczenie, aby zapisać poświadczenie.

Utwórz certyfikat w narzędziu

Portal zarządzania

  1. Wybierz obszar roboczy automatyzacji.

  2. W górnej części okna wybierz pozycję Zasoby.

  3. W dolnej części okna wybierz pozycję Dodaj ustawienie.

  4. Wybierz pozycję Dodaj poświadczenia.

  5. Z listy rozwijanej Typ poświadczeń wybierz pozycję Certyfikat.

  6. Wprowadź nazwę certyfikatu w polu Nazwa .

  7. Wybierz strzałkę w prawo.

  8. Wybierz pozycję Przeglądaj dla pliku i przejdź do pliku .cer lub .pfx.

  9. Jeśli wybrano plik PFX, podaj jego hasło.

  10. Wybierz znacznik wyboru, aby zapisać certyfikat.

Tworzenie poświadczeń za pomocą programu PowerShell

Następujące przykładowe polecenia pokazują, jak utworzyć nowe poświadczenie.

$webServer = 'https://MyWebServer'
$port = 9090
$credName = 'MyCredential'
$user = 'contoso\MyUser'
$pwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$pwd

Set-SmaCredential -WebServiceEndpoint $webServer -port $port -Name $credName -Value $cred

Aby utworzyć nowy certyfikat programu PowerShell za pomocą programu Windows PowerShell w programie Service Management Automation

Następujące przykładowe polecenia pokazują, jak utworzyć nowy certyfikat, importując plik certyfikatu.

$webServer = 'https://MyWebServer'
$port = 9090
$certName = 'MyCertificate'
$path = 'c:\certs\MyCertificate.pfx'
$certPwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force

Set-SmaCertificate -WebServiceEndpoint $webServer -port $port -Name $certName -Path $certPath -Password $certPwd

Używanie poświadczeń programu PowerShell w elemencie Runbook

Poświadczenia programu PowerShell są pobierane w runbooku za pomocą aktywności Get-AutomationPSCredential. Spowoduje to zwrócenie obiektu PSCredential, którego można użyć w przepływie pracy.

  • Poniższe przykładowe polecenia pokazują, jak używać poświadczeń programu PowerShell w Runbooku. W tym przykładzie poświadczenie jest używane z działaniem InlineScript w celu uruchomienia zestawu poleceń przy użyciu poświadczeń alternatywnych.

    $myCredential = Get-AutomationPSCredential -Name 'MyCredential'
    InlineScript {
       <Commands>
    } -PSComputerName $ServerName -PSCredential $myCredential
    

Zarządzanie połączeniami SMA

Połączenie automatyzacji zawiera informacje wymagane do nawiązania połączenia z usługą lub aplikacją z runbooka. Te informacje są definiowane w module dla aplikacji i zwykle zawierają takie informacje jak nazwa użytkownika i hasło oraz komputer do nawiązania połączenia. Inne informacje mogą być również wymagane, takie jak certyfikat lub identyfikator subskrypcji. Właściwości połączenia są bezpiecznie przechowywane w bazie danych usługi Automation i mogą być dostępne w elemecie Runbook za pomocą działania Get-AutomationConnection .

Cmdlety programu Windows PowerShell

Poświadczenia można tworzyć i zarządzać nimi za pomocą poleceń cmdlet programu Windows PowerShell w poniższej tabeli.

Polecenia Cmdlets opis
Get-SmaConnection Pobiera wartości dla każdego pola w określonym połączeniu.
Get-SmaConnectionField Pobiera definicje pól dla określonego typu połączenia.
Get-SmaConnectionType Pobiera dostępne typy połączeń.
New-SmaConnection Tworzy nowe połączenie.
Remove-SmaConnection Usuń istniejące połączenie.
Set-SmaConnectionFieldValue Ustawia wartość określonego pola dla istniejącego połączenia.

Działania Runbook

Dostęp do połączeń w elemencie runbook można uzyskać za pomocą działań w poniższej tabeli.

Działania opis
Get-AutomationConnection Pobiera połączenie do użycia w runbooku.

Tworzenie połączenia w portalu zarządzania

  1. Wybierz obszar roboczy automatyzacji.

  2. W górnej części okna wybierz pozycję Zasoby.

  3. W dolnej części okna wybierz pozycję Dodaj ustawienie.

  4. Wybierz pozycję Dodaj połączenie.

  5. Z listy rozwijanej Typ połączenia wybierz typ połączenia.

  6. Wprowadź nazwę połączenia w polu Nazwa .

  7. Wybierz strzałkę w prawo.

  8. Wprowadź wartość dla każdej właściwości.

  9. Wybierz znacznik wyboru, aby zapisać połączenie.

Tworzenie połączenia za pomocą programu Windows PowerShell

Poniższe przykładowe polecenia tworzą nowe połączenie programu Virtual Machine Manager o nazwie MyVMMConnection.

Uwaga

Do zdefiniowania właściwości połączenia używamy tabeli skrótów. Dzieje się tak, ponieważ różne typy połączeń wymagają różnych zestawów właściwości. Połączenie innego typu będzie używać innego zestawu wartości pól.

Aby uzyskać więcej informacji na temat tabel skrótów, zobacz about_Hash_Tables.

$webServer = 'https://MyWebServer'
$port = 9090
$connectionName = 'MyConnection'
$fieldValues = @{"Username"="MyUser";"Password"="password";"ComputerName"="MyComputer"}
New-SmaConnection -WebServiceEndpoint $webServer -port $port -Name $connectionName -ConnectionTypeName "VirtualMachineManager" -ConnectionFieldValues $fieldValues

Używanie połączenia w elemencie runbook

Użyj działania Get-AutomationConnection, aby użyć połączenia w elemecie Runbook. To działanie pobiera wartości różnych pól w połączeniu i zwraca je jako tabelę skrótów, która następnie może być wykorzystywana z odpowiednimi poleceniami w runbooku.

Aby uzyskać więcej informacji na temat tabel skrótów, zobacz about_Hash_Tables.

Poniższy przykładowy kod pokazuje, jak używać połączenia w celu podania nazwy komputera i poświadczeń dla bloku InlineScript , który uruchamia polecenia na innym komputerze.

$con = Get-AutomationConnection -Name 'MyConnection'
$securepassword = ConvertTo-SecureString -AsPlainText -String $con.Password -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $con.Username, $securepassword
InlineScript {
   <Commands>
} -PSComputerName $con.ComputerName -PSCredential $cred

Upraszczanie programowania elementów Runbook za pomocą zmiennych globalnych

Zmienne zautomatyzowanego procesu to wartości dostępne dla wszystkich Runbooków. Można tworzyć, modyfikować i pobierać je z portalu zarządzania, programu Windows PowerShell lub z poziomu elementu Runbook. Zmienne automatyzacji są przydatne w następujących scenariuszach:

  • Udostępnianie wartości między wieloma elementami Runbook.

  • Udostępnij wartość między wieloma zadaniami z tego samego runbooka.

  • Zarządzaj wartością z poziomu portalu zarządzania lub wiersza polecenia programu Windows PowerShell, używanego przez runbooki.

Zmienne automatyzacji są utrwalane, aby nadal były dostępne nawet wtedy, gdy Runbook ulegnie awarii. Umożliwia to również ustawienie wartości przez jeden element Runbook, który jest następnie używany przez inny lub jest używany przez ten sam element Runbook przy następnym uruchomieniu.

Po utworzeniu zmiennej należy określić jej typ danych z poniższej listy. Dzięki temu portal zarządzania może wyświetlić odpowiednią kontrolkę dla wartości zmiennej. Do zmiennej można przypisać tylko wartość poprawnego typu.

  • Sznurek

  • Liczba całkowita

  • Typ logiczny

  • Data i czas

Po utworzeniu zmiennej można określić, że będzie ona przechowywana jako zaszyfrowana. Gdy zmienna jest szyfrowana, jest przechowywana bezpiecznie w bazie danych SMA, a jej wartość nie może zostać pobrana z polecenia cmdlet Get-SmaVariable . Jedynym sposobem na pobranie zaszyfrowanej wartości jest aktywność Get-AutomationVariable w runbooku. Można przechowywać wiele wartości zdefiniowanego typu w jednej zmiennej, tworząc tabelę skrótów.

Cmdlety programu Windows PowerShell

Zmienne można tworzyć i zarządzać nimi za pomocą poleceń cmdlet programu Windows PowerShell w poniższej tabeli.

Polecenia Cmdlets opis
Get-SmaVariable Pobiera wartość istniejącej zmiennej.
Set-SmaVariable Tworzy nową zmienną lub ustawia wartość dla istniejącej zmiennej.

Działania Runbook

Do zmiennych w runbooku można uzyskać dostęp za pomocą działań z poniższej tabeli.

Działania opis
Get-AutomationVariable Pobiera wartość istniejącej zmiennej.
Ustaw-ZmiennąAutomatyzacji Ustawia wartość istniejącej zmiennej.

Uwaga

Należy unikać używania zmiennych w parametrze "Name" Get-AutomationVariable, ponieważ może to komplikować odnajdywanie zależności między runbookami a zmiennymi automatyzacji.

Tworzenie nowej zmiennej w portalu zarządzania

  1. Wybierz obszar roboczy automatyzacji.

  2. W górnej części okna wybierz pozycję Zasoby.

  3. W dolnej części okna wybierz pozycję Dodaj ustawienie.

  4. Wybierz pozycję Dodaj zmienną.

  5. Na liście rozwijanej Typ wybierz typ danych.

  6. Wprowadź nazwę zmiennej w polu Nazwa .

  7. Wybierz strzałkę w prawo.

  8. Wprowadź wartość zmiennej i określ, czy chcesz ją zaszyfrować.

  9. Wybierz znacznik wyboru, aby zapisać nową zmienną.

Aby utworzyć nową zmienną za pomocą programu Windows PowerShell

Polecenie cmdlet Set-SmaVariable tworzy nową zmienną i ustawia wartość dla istniejącej zmiennej. Poniższe przykładowe polecenia pokazują, jak utworzyć zmienną typu ciąg.

$web = 'https://MySMAServer'
$port = 9090

Set-SMAVariable -WebServiceEndpoint $web -Port $port -Name 'MyVariable' -Value 'My String'

Używanie zmiennej w elemencie Runbook

  • Poniższy przykładowy kod przedstawia, jak ustawić i pobrać zmienną w elemencie runbook. W tym przykładzie przyjęto założenie, że zostały już utworzone zmienne typu liczba całkowita o nazwie NumberOfIterations i NumberOfRunnings oraz zmienna ciągu typu o nazwie SampleMessage.

    $NumberOfIterations = Get-AutomationVariable -Name 'NumberOfIterations'
    $NumberOfRunnings = Get-AutomationVariable -Name 'NumberOfRunnings'
    $SampleMessage = Get-AutomationVariable -Name 'SampleMessage'
    Write-Output "Runbook has been run $NumberOfRunnings times."
    for ($i = 1; $i -le $NumberOfIterations; $i++) {
       Write-Output "$i`: $SampleMessage"
    }
    Set-AutomationVariable -Name NumberOfRunnings -Value (NumberOfRunnings += 1)
    

Następne kroki