Simplificación de la creación de runbooks de Service Management Automation con recursos globales
Importante
Esta versión de Service Management Automation (SMA) ha alcanzado el final del soporte técnico. Se recomienda actualizar a SMA 2022.
Los recursos globales están disponibles para todos los runbooks de un entorno de Automation. Puede crearlos y configurarlos mediante el área de trabajo de Automatización en el portal de administración o con los cmdlets adecuados en Windows PowerShell. Desde un runbook, puede recuperar y establecer valores para los activos globales con actividades del módulo RunbookConstructs . Los cmdlets de Windows PowerShell están disponibles para su uso en runbooks en Service Management Automation, pero las actividades se recomiendan ya que son más eficaces porque no tienen que trabajar a través del servicio web automation.
Obtención o establecimiento de credenciales
Una credencial de automatización puede ser un nombre de usuario y una contraseña que se usan con comandos de Windows PowerShell, o bien un certificado que se carga en el servidor. Las propiedades de una credencial se almacenan de forma segura en la base de datos de Automation y se puede acceder a ellas en el runbook mediante las actividades Get-AutomationPSCredential o Get-AutomationCertificate.
PowerShell para la administración de credenciales
Puede usar los cmdlets de la siguiente tabla para crear y administrar credenciales con Windows PowerShell en Service Management Automation.
Cmdlets | Descripción |
---|---|
Get-SmaCertificate | Recupera un certificado de Automation. |
Get-SmaCredential | Recupera una credencial de PowerShell de Automation. |
Remove-SmaCertificate | Elimina un certificado de Automation. |
Remove-SmaCredential | Elimina una credencial de PowerShell de Automation. |
Set-SmaCertificate | Crea un nuevo certificado o establece las propiedades de un certificado existente, e incluye la carga del archivo de certificado y el establecimiento de la contraseña de un .pfx. |
Set-SmaCredential | Crea una nueva credencial de PowerShell de Automation o establece las propiedades de una credencial existente. |
PowerShell para el trabajo con credenciales
Puede usar las actividades de la tabla siguiente para acceder a las credenciales de un runbook.
Actividades | Descripción |
---|---|
Get-AutomationCertificate | Obtiene un certificado que se va a usar en un runbook. |
Get-AutomationPSCredential | Obtiene un nombre de usuario y una contraseña que se van a usar en un runbook. |
Nota
Debe evitar el uso de variables en el parámetro "Name de Get-AutomationPSCredential y Get-AutomationCertificate, debido a que puede complicar la detección de dependencias entre runbooks y las variables de Automation.
Creación de una credencial de PowerShell en el Portal de administración
Seleccione el área de trabajo Automatización.
En la parte superior de la ventana, seleccione Activos.
En la parte inferior de la ventana, seleccione Agregar configuración.
Seleccione Agregar credencial.
En la lista desplegable Tipo de credencial, seleccione Credencial de PowerShell.
Escriba un nombre para la credencial en el cuadro Nombre .
Seleccione la flecha derecha.
Escriba los valores de cada propiedad.
Seleccione la marca de verificación para guardar la credencial.
Creación de un certificado en el
Portal de administración
Seleccione el área de trabajo Automatización.
En la parte superior de la ventana, seleccione Activos.
En la parte inferior de la ventana, seleccione Agregar configuración.
Seleccione Agregar credencial.
En la lista desplegable Tipo de credencial, seleccione Certificado.
Escriba un nombre para el certificado en el cuadro Nombre .
Seleccione la flecha derecha.
Seleccione Buscar archivo y vaya a un archivo .cer o .pfx.
Si ha seleccionado un archivo .pfx, indique su contraseña.
Seleccione la marca de verificación para guardar el certificado.
Creación de una credencial con PowerShell
Los siguientes comandos de ejemplo muestran cómo crear una credencial nueva.
$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
Para crear un certificado de PowerShell nuevo con Windows PowerShell en Service Management Automation
Los siguientes comandos de ejemplo muestran cómo crear un certificado nuevo importando un archivo de certificado.
$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
Uso de una credencial de PowerShell en un runbook
Para recuperar una credencial de PowerShell en un runbook se usa la actividad Get-AutomationPSCredential . Esto devuelve un objeto PSCredential que puede usar en el flujo de trabajo.
Los comandos de ejemplo siguientes muestran cómo usar una credencial de PowerShell en un runbook. En este ejemplo, se utiliza la credencial con una actividad InlineScript para ejecutar un conjunto de comandos con credenciales alternativas.
$myCredential = Get-AutomationPSCredential -Name 'MyCredential' InlineScript { <Commands> } -PSComputerName $ServerName -PSCredential $myCredential
Administración de conexiones de SMA
Una conexión de automatización contiene la información necesaria para conectarse a un servicio o a una aplicación desde un runbook. Esta información se define en el módulo de la aplicación y, normalmente, incluye información como el nombre de usuario, la contraseña y el equipo al que debe conectarse. También es posible que se requiera otra información como un certificado o un id. de suscripción. Las propiedades de una conexión se almacenan de forma segura en la base de datos de Automation y se puede obtener acceso a ellas en el runbook mediante la actividad Get-AutomationConnection.
Cmdlets de Windows PowerShell
Puede crear y administrar credenciales con los cmdlets de Windows PowerShell de la siguiente tabla.
Cmdlets | Descripción |
---|---|
Get-SmaConnection | Recupera los valores de cada campo en una conexión determinada. |
Get-SmaConnectionField | Recupera las definiciones de campos para un determinado tipo de conexión. |
Get-SmaConnectionType | Recupera los tipos de conexión disponibles. |
New-SmaConnection | Crea una conexión nueva. |
Remove-SmaConnection | Quita una conexión existente. |
Set-SmaConnectionFieldValue | Establece el valor de un campo determinado para una conexión existente. |
Actividades de runbook
Puede acceder a las conexiones de un runbook con las actividades de la siguiente tabla.
Actividades | Descripción |
---|---|
Get-AutomationConnection | Obtiene una conexión que se va a usar en un runbook. |
Creación de una conexión en el Portal de administración
Seleccione el área de trabajo Automatización.
En la parte superior de la ventana, seleccione Activos.
En la parte inferior de la ventana, seleccione Agregar configuración.
Seleccione Agregar conexión.
En la lista desplegable Tipo de conexión, seleccione un tipo de conexión.
Escriba un nombre para la conexión en el cuadro Nombre .
Seleccione la flecha derecha.
Escriba un valor para cada propiedad.
Seleccione la marca de verificación para guardar la conexión.
Creación de una conexión con Windows PowerShell
Los comandos de ejemplo siguientes crean una nueva conexión de Virtual Machine Manager con el nombre myVMMConnection.
Nota
Usamos una tabla hash para definir las propiedades de la conexión. Esto se debe a que los distintos tipos de conexiones requieren diferentes conjuntos de propiedades. Una conexión de otro tipo usaría un conjunto diferente de valores de campo.
Para obtener más información sobre las tablas hash, consulte 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
Uso de una conexión en un runbook
Use la actividad Get-AutomationConnection para usar una conexión en un runbook. Esta actividad recupera los valores de los distintos campos de la conexión y los devuelve como una tabla hash, que luego se puede usar con los comandos adecuados en el runbook.
Para obtener más información sobre las tablas hash, consulte about_Hash_Tables.
En el código de ejemplo siguiente se muestra cómo usar una conexión para indicar el nombre del equipo y las credenciales para un bloque InlineScript que ejecuta comandos en otro equipo.
$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
Simplificación del desarrollo de runbooks con variables globales
Las variables de Automatización son valores que están disponibles para todos los runbooks. Puede crearlas, modificarlas y recuperarlas desde el portal de administración, Windows PowerShell o desde un runbook. Las variables de Automation son útiles para los siguientes escenarios:
Compartir un valor entre varios runbooks.
Compartir un valor entre varios trabajos del mismo runbook.
Administrar un valor desde el portal de administración o desde la línea de comandos de Windows PowerShell que usan los runbooks.
Las variables de Automation son persistentes, de manera que siguen estando disponibles incluso si el runbook presenta un error. Esto también permite establecer un valor mediante un runbook que, a continuación, usa otro o lo usa el mismo runbook la próxima vez que se ejecute.
Cuando se crea una variable, debe especificar su tipo de datos de la lista siguiente. Esto es para que el portal de administración pueda mostrar el control adecuado para el valor de la variable. Solo se puede asignar un valor del tipo correcto a una variable.
String
Entero
Boolean
Datetime
Cuando se crea una variable, puede especificar que se almacene cifrada. Cuando se cifra una variable, se almacena de forma segura en la base de datos SMA y su valor no se puede recuperar del cmdlet Get-SmaVariable . La única manera de recuperar un valor cifrado es con la actividad Get-AutomationVariable en un runbook. Puede almacenar varios valores del tipo definido en una sola variable mediante la creación de una tabla hash.
Cmdlets de Windows PowerShell
Puede crear y administrar variables con los cmdlets de Windows PowerShell de la siguiente tabla.
Cmdlets | Descripción |
---|---|
Get-SmaVariable | Recupera el valor de una variable existente. |
Set-SmaVariable | Crea una nueva variable o establece el valor de una variable existente. |
Actividades de runbook
Puede acceder a las variables de un runbook con las actividades de la siguiente tabla.
Actividades | Descripción |
---|---|
Get-AutomationVariable | Recupera el valor de una variable existente. |
Set-AutomationVariable | Establece el valor de una variable existente. |
Nota
Debe evitar usar variables en el parámetro "Name de Get-AutomationVariable porque esto puede complicar la detección de dependencias entre los runbooks y las variables de Automation.
Creación de una variable en el Portal de administración
Seleccione el área de trabajo Automatización.
En la parte superior de la ventana, seleccione Activos.
En la parte inferior de la ventana, seleccione Agregar configuración.
Seleccione Agregar variable.
En la lista desplegable Tipo, seleccione un tipo de datos.
Escriba un nombre para la variable en el cuadro Nombre .
Seleccione la flecha derecha.
Escriba un valor para la variable y especifique si se va a cifrar.
Seleccione la marca de verificación para guardar la nueva variable.
Para crear una nueva variable con Windows PowerShell
El cmdlet Set-SmaVariable crea una variable nueva y establece el valor de una variable existente. Los siguientes comandos de ejemplo muestran cómo crear una variable de tipo cadena.
$web = 'https://MySMAServer'
$port = 9090
Set-SMAVariable -WebServiceEndpoint $web -Port $port -Name 'MyVariable' -Value 'My String'
Uso de una variable en un runbook
El código de ejemplo siguiente muestra cómo establecer y recuperar una variable en un runbook. En este ejemplo, se supone que ya se han creado variables de tipo entero denominadas NumberOfIterations y NumberOfRunnings y una variable de tipo cadena denominada 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)
Pasos siguientes
- Lea sobre la creación de un módulo de integración.
- Lea sobre la creación de runbooks de Automation.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de