Semplificare la creazione di runbook di Service Management Automation con asset globali
Gli asset globali sono disponibili per tutti i runbook in un ambiente di automazione. Per crearli e configurarli, usare l'area di lavoro Automazione nel portale di gestione oppure il cmdlet appropriato in Windows PowerShell. Da un runbook è possibile recuperare e impostare i valori per gli asset globali tramite le attività nel modulo RunbookConstructs . I cmdlet di Windows PowerShell sono disponibili per l'uso nei runbook in Service Management Automation, ma le attività sono consigliate perché sono più efficienti perché non devono usare il servizio Web di Automazione.
Ottenere o impostare le credenziali
Una credenziale di automazione corrisponde a un nome utente e a una password che possono essere usati con i comandi di Windows PowerShell oppure a un certificato caricato nel server. Le proprietà di una credenziale vengono archiviate in modo sicuro nel database di Automazione e sono accessibili nel runbook con l'attività Get-AutomationPSCredential o Get-AutomationCertificate .
PowerShell per la gestione delle credenziali
È possibile usare i cmdlet nella tabella seguente per creare e gestire le credenziali con Windows PowerShell in Service Management Automation.
Cmdlet | Descrizione |
---|---|
Get-SmaCertificate | Recupera un certificato di automazione. |
Get-SmaCredential | Recupera le credenziali di PowerShell di Automazione. |
Remove-SmaCertificate | Rimuove un certificato di automazione. |
Remove-SmaCredential | Rimuove una credenziale di PowerShell per Automazione. |
Set-SmaCertificate | Crea un nuovo certificato o imposta le proprietà per un certificato esistente, compresi il caricamento di un file di certificato e l'impostazione della password per un file PFX. |
Set-SmaCredential | Crea una nuova credenziale di PowerShell di Automazione o imposta le proprietà per una credenziale esistente. |
PowerShell per l'uso delle credenziali
È possibile usare le attività nella tabella seguente per accedere alle credenziali in un runbook.
Impegni | Descrizione |
---|---|
Get-AutomationCertificate | Ottiene un certificato da usare in un Runbook. |
Get-AutomationPSCredential | Ottiene un nome utente/password da usare in un Runbook. |
Nota
È consigliabile evitare di usare le variabili nel parametro "Nome di Get-AutomationPSCredential e Get-AutomationCertificate perché ciò può complicare l'individuazione delle dipendenze tra runbook e variabili di automazione.
Creare credenziali di PowerShell nel portale di gestione
Selezionare l'area di lavoro Automazione .
Nella parte superiore della finestra selezionare Asset.
Nella parte inferiore della finestra selezionare Aggiungi impostazione.
Selezionare Aggiungi credenziali.
Nell'elenco a discesa Tipo di credenziali selezionare Credenziali PowerShell.
Immettere un nome per le credenziali nella casella Nome .
Selezionare la freccia destra.
Immettere i valori per ogni proprietà.
Selezionare il segno di spunta per salvare le credenziali.
Creare un certificato in
Portale di gestione
Selezionare l'area di lavoro Automazione .
Nella parte superiore della finestra selezionare Asset.
Nella parte inferiore della finestra selezionare Aggiungi impostazione.
Selezionare Aggiungi credenziali.
Nell'elenco a discesa Tipo di credenziali selezionare Certificato.
Immettere un nome per il certificato nella casella Nome .
Selezionare la freccia destra.
Selezionare Sfoglia per File e passare a un file .cer o pfx.
Se si seleziona un file PFX, specificarne la password.
Selezionare il segno di spunta per salvare il certificato.
Creare credenziali con PowerShell
I comandi di esempio seguenti illustrano come creare una nuova credenziale.
$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
Per creare un nuovo certificato di PowerShell con Windows PowerShell in Service Management Automation
I comandi di esempio seguenti illustrano come creare un nuovo certificato importando un file di certificato.
$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
Usare le credenziali di PowerShell in un runbook
È possibile recuperare una credenziale di PowerShell in un Runbook con l'attività Get-AutomationPSCredential . Viene restituito un oggetto PSCredential che è possibile usare nel flusso di lavoro.
I comandi di esempio seguenti mostrano come usare le credenziali PowerShell in un Runbook. In questo esempio, la credenziale viene usata con un'attività InlineScript per eseguire un set di comandi usando credenziali alternative.
$myCredential = Get-AutomationPSCredential -Name 'MyCredential' InlineScript { <Commands> } -PSComputerName $ServerName -PSCredential $myCredential
Gestire le connessioni SMA
Una connessione di automazione contiene le informazioni necessarie per la connessione di un runbook a un servizio o a un'applicazione. Queste informazioni vengono definite nel modulo per l'applicazione e in genere includono il nome utente, la password e il computer a cui connettersi. È anche possibile che siano necessarie altre informazioni, ad esempio un certificato o un ID sottoscrizione. Le proprietà di una connessione vengono archiviate in modo sicuro nel database di Automazione e sono accessibili nel runbook con l'attività Get-AutomationConnection .
Cmdlet di Windows PowerShell
È possibile creare e gestire le credenziali con i cmdlet di Windows PowerShell nella tabella seguente.
Cmdlet | Descrizione |
---|---|
Get-SmaConnection | Recupera i valori per ogni campo di una determinata connessione. |
Get-SmaConnectionField | Recupera le definizioni di campo per un determinato tipo di connessione. |
Get-SmaConnectionType | Recupera i tipi di connessione disponibili. |
New-SmaConnection | Crea una nuova connessione. |
Remove-SmaConnection | Rimuove una connessione esistente. |
Set-SmaConnectionFieldValue | Imposta il valore di un campo specifico per una connessione esistente. |
Attività del Runbook
È possibile accedere alle connessioni in un runbook con le attività nella tabella seguente.
Impegni | Descrizione |
---|---|
Get-AutomationConnection | Ottiene una connessione da usare in un Runbook. |
Creare una connessione nel portale di gestione
Selezionare l'area di lavoro Automazione .
Nella parte superiore della finestra selezionare Asset.
Nella parte inferiore della finestra selezionare Aggiungi impostazione.
Selezionare Aggiungi connessione.
Nell'elenco a discesa Tipo di connessione selezionare un tipo di connessione.
Immettere un nome per la connessione nella casella Nome .
Selezionare la freccia destra.
Immettere un valore per ogni proprietà.
Selezionare il segno di spunta per salvare la connessione.
Creare una connessione con Windows PowerShell
I comandi di esempio seguenti creano una nuova connessione di Virtual Machine Manager con il nome MyVMMConnection.
Nota
Viene usata una tabella hash per definire le proprietà della connessione. poiché diversi tipi di connessioni richiedono diversi set di proprietà. Una connessione di un altro tipo userà un diverso set di valori di campo.
Per altre informazioni sulle tabelle hash, vedere 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
Usare una connessione in un runbook
Usare l'attività Get-AutomationConnection per usare una connessione in un runbook. Questa attività recupera i valori dei diversi campi nella connessione e li restituisce come tabella hash, che può quindi essere usata con i comandi appropriati nel runbook.
Per altre informazioni sulle tabelle hash, vedere about_Hash_Tables.
Il codice di esempio seguente illustra come usare una connessione per fornire il nome computer e le credenziali per un blocco InlineScript che esegue i comandi in un altro computer.
$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
Semplificare lo sviluppo di runbook con variabili globali
Le variabili di automazione sono valori disponibili per tutti i runbook. È possibile creare, modificare e recuperarli dal portale di gestione, Da Windows PowerShell o da un runbook. Le variabili di automazione sono utili per gli scenari seguenti:
Condividere un valore tra più Runbook.
Condividere un valore tra più processi dello stesso Runbook.
Gestire un valore dal portale di gestione o dalla riga di comando di Windows PowerShell usata dai Runbook.
Le variabili di automazione vengono mantenute in modo che continuino a essere disponibili anche se il runbook ha esito negativo. Ciò consente anche di impostare un valore da un runbook che viene quindi usato da un altro o viene usato dallo stesso runbook alla successiva esecuzione.
Quando viene creata una variabile, è necessario specificare il tipo di dati dall'elenco seguente, In questo modo il portale di gestione può visualizzare il controllo appropriato per il valore della variabile. A una variabile è possibile assegnare solo un valore del tipo corretto.
String
Intero
Booleano
Datetime
Quando si crea una variabile, è possibile specificare che venga archiviata in modalità crittografata. Quando una variabile è crittografata, viene archiviata in modo sicuro nel database SMA e il relativo valore non può essere recuperato dal cmdlet Get-SmaVariable . L'unico modo in cui è possibile recuperare un valore crittografato è dall'attività Get-AutomationVariable in un runbook. È possibile archiviare più valori del tipo definito in una singola variabile creando una tabella hash.
Cmdlet di Windows PowerShell
È possibile creare e gestire variabili con i cmdlet di Windows PowerShell nella tabella seguente.
Cmdlet | Descrizione |
---|---|
Get-SmaVariable | Recupera il valore di una variabile esistente. |
Set-SmaVariable | Crea una nuova variabile o imposta il valore per una variabile esistente. |
Attività del Runbook
È possibile accedere alle variabili in un runbook con le attività nella tabella seguente.
Impegni | Descrizione |
---|---|
Get-AutomationVariable | Recupera il valore di una variabile esistente. |
Set-AutomationVariable | Imposta il valore di una variabile esistente. |
Nota
È consigliabile evitare di usare le variabili nel parametro "Nome di Get-AutomationVariable perché ciò può complicare l'individuazione delle dipendenze tra runbook e variabili di automazione.
Creare una nuova variabile nel portale di gestione
Selezionare l'area di lavoro Automazione .
Nella parte superiore della finestra selezionare Asset.
Nella parte inferiore della finestra selezionare Aggiungi impostazione.
Selezionare Aggiungi variabile.
Nell'elenco a discesa Tipo selezionare un tipo di dati.
Immettere un nome per la variabile nella casella Nome .
Selezionare la freccia destra.
Immettere un valore per la variabile e specificare se crittografarlo.
Selezionare il segno di spunta per salvare la nuova variabile.
Per creare una nuova variabile con Windows PowerShell
Il cmdlet Set-SmaVariable crea una nuova variabile e imposta il valore per una variabile esistente. I comandi di esempio seguenti illustrano come creare una variabile di tipo String.
$web = 'https://MySMAServer'
$port = 9090
Set-SMAVariable -WebServiceEndpoint $web -Port $port -Name 'MyVariable' -Value 'My String'
Usare una variabile in un runbook
Il codice di esempio seguente illustra come impostare e recuperare una variabile in un Runbook. In questo esempio si presuppone che siano già state create variabili di tipo integer denominate NumberOfIterations e NumberOfRunnings e una variabile di tipo stringa denominata 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)
Passaggi successivi
- Leggere le informazioni sulla creazione di un modulo di integrazione.
- Leggere le informazioni sulla creazione di runbook di automazione.