Compartir a través de


Simplificación de la creación de un runbook de Service Management Automation con recursos globales

Los recursos globales están disponibles para todos los runbooks en un entorno de Automation. Puede crearlos y configurarlos mediante el área de trabajo de Automation en el portal de administración o con los cmdlets adecuados en Windows PowerShell. A partir de un runbook, puedes recuperar y establecer valores para los recursos globales con actividades en el 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 a medida que son más eficaces porque no tienen que trabajar a través del servicio web de Automation.

Obtención o establecimiento de credenciales

Una credencial de Automation es un nombre de usuario y una contraseña que se pueden usar con comandos de Windows PowerShell o un certificado que está cargado en el servidor. Las propiedades de una credencial se almacenan de manera segura en la base de datos de Automation y es posible tener acceso a ellas en el runbook mediante la actividad Get-AutomationPSCredential o Get-AutomationCertificate.

PowerShell para la administración de credenciales

Los cmdlets de la tabla siguiente se usan para crear y administrar credenciales con Windows PowerShell en Service Management.

Cmdlets Descripción
Get-SmaCertificate Recupera un certificado de Automation.
Get-SmaCredential Recupera una credencial de PowerShell de Automation.
Remove-SmaCertificate Quitar un certificado de Automation.
Remove-SmaCredential Quita una credencial de PowerShell de Automation.
Set-SmaCertificate Crea un nuevo certificado o establece las propiedades de un certificado existente, incluyendo la carga del archivo de certificado y el establecimiento de la contraseña de un archivo .pfx.
Set-SmaCredential Crea una nueva credencial de PowerShell de Automation o establece las propiedades de una credencial existente.

PowerShell para trabajar con credenciales

Las actividades de la tabla siguiente se usan para acceder a las credenciales de un runbook.

Actividades Descripción
Get-AutomationCertificate Obtiene un certificado para usarlo en un runbook.
Get-AutomationPSCredential Obtiene un nombre de usuario o contraseña para su uso en un runbook.

Nota:

Debes evitar el uso de variables en el parámetro Name de Get-AutomationPSCredential y Get-AutomationCertificate, ya que podría complicarse la detección de las dependencias entre los runbooks y las variables de Automation.

Creación de una credencial de PowerShell en el Portal de administración

  1. Selecciona el área de trabajo de Automation.

  2. En la parte superior de la ventana, selecciona Recursos.

  3. En la parte inferior de la ventana, haz clic en Agregar configuración.

  4. Selecciona Agregar credencial.

  5. En el menú desplegable Tipo de credenciales, seleccione Credencial de PowerShell.

  6. En el cuadro Nombre, escribe un nombre para la credencial.

  7. Seleccione la flecha derecha.

  8. Introduce los valores correspondientes a cada propiedad.

  9. Selecciona la marca de verificación para guardar la credencial.

Crea un certificado en el/la

Portal de administración

  1. Selecciona el área de trabajo de Automation.

  2. En la parte superior de la ventana, selecciona Recursos.

  3. En la parte inferior de la ventana, haz clic en Agregar configuración.

  4. Selecciona Agregar credencial.

  5. En el menú desplegable Tipo de credenciales, seleccione Certificado.

  6. Escribe un nombre para el certificado en el cuadro Nombre.

  7. Seleccione la flecha derecha.

  8. Selecciona Buscar archivo y ve a un archivo .cer o .pfx.

  9. Si seleccionaste un archivo .pfx, introduce tu contraseña.

  10. Selecciona la marca de verificación para guardar el certificado.

Creación de una credencial con PowerShell

Los comandos de muestra siguientes muestran cómo crear una nueva credencial.

$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 nuevo certificado de PowerShell con Windows PowerShell en Service Management Automation

Los siguientes comandos de muestra indican cómo crear un certificado mediante la importación de 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

Recuperas una credencial de PowerShell en un runbook con la actividad Get-AutomationPSCredential. Esto devuelve un objeto PSCredential que puedes 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, la credencial se usa con una actividad InlineScript para ejecutar un conjunto de comandos mediante credenciales alternativas.

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

Administrar conexiones de SMA

Una conexión de automatización contiene la información necesaria para conectarse a un servicio o a una aplicación externos 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 y la contraseña, y el equipo al que conectarse. También se puede requerir otra información, como un certificado o un Id. de suscripción. Las propiedades para una conexión se almacenan de manera segura en la base de datos de Automation y es posible tener acceso a ellas en el runbook con la actividad Get-AutomationConnection.

Cmdlets de Windows PowerShell

Puedes crear y administrar credenciales con los cmdlets de Windows PowerShell en la tabla siguiente.

Cmdlets Descripción
Get-SmaConnection Recupera los valores de cada campo de una conexión determinada.
Get-SmaConnectionField Recupera las definiciones de campo de un tipo de conexión determinado.
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

Puedes acceder a las conexiones de un runbook con las actividades de la tabla siguiente.

Actividades Descripción
Get-AutomationConnection Obtiene una conexión para usarla en un runbook.

Creación de una conexión en el portal de administración

  1. Selecciona el área de trabajo de Automation.

  2. En la parte superior de la ventana, selecciona Recursos.

  3. En la parte inferior de la ventana, haz clic en Agregar configuración.

  4. Seleccione Agregar conexión.

  5. En el menú desplegable Tipo de conexión, selecciona un tipo de conexión.

  6. Escribe un nombre para la conexión en el cuadro Nombre.

  7. Seleccione la flecha derecha.

  8. Escribe un valor para cada propiedad.

  9. Selecciona la marca de verificación para guardar la conexión.

Crear una conexión con Windows PowerShell

Los siguientes comandos de ejemplo 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 diferentes 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

Usar una conexión en un runbook

Usa la actividad Get-AutomationConnection para usar una conexión en un runbook. Esta actividad recupera los valores de los diferentes 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 proporcionar el nombre de equipo y las credenciales de 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 runbook con variables globales

Las variables de automatización son valores que están disponibles en todos los runbooks. Puedes crearlas, modificarlas y recuperarlas desde el portal de administración, desde Windows PowerShell o desde un runbook. Las variables de Automation son útiles para los siguientes escenarios:

  • Comparten un valor entre varios runbooks.

  • Comparten un valor entre varios trabajos del mismo runbook.

  • Administran 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 se conservan para que sigan estando disponibles, incluso si se produce un error en el runbook. Esto también permite que un runbook establezca un valor que luego usará otro o que usará el mismo runbook la próxima vez que se ejecute.

Cuando creas una variable, debes especificar su tipo de datos en la siguiente lista. La finalidad es que el portal de administración pueda mostrar el control adecuado para el valor de la variable. Solo puedes asignar un valor del tipo correcto a una variable.

  • Cadena

  • Entero

  • Booleano

  • 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 de SMA y su valor no se puede recuperar del cmdlet Get-SmaVariable. La única manera de que se pueda recuperar un valor cifrado es desde la actividad Get-AutomationVariable en un runbook. Puedes almacenar varios valores del tipo definido en una sola variable mediante la creación de una tabla hash.

Cmdlets de Windows PowerShell

Puedes crear y administrar variables con los cmdlets de Windows PowerShell en 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

Puedes acceder a las variables de un runbook con las actividades de la tabla siguiente.

Actividades Descripción
Get-AutomationVariable Recupera el valor de una variable existente.
Set-AutomationVariable Establece el valor de una variable existente.

Nota:

Debes evitar el uso de variables en el nombre de parámetro de Get-AutomationVariable, ya que esto puede complicar la detección de dependencias entre los runbooks y las variables de Automation.

Creación de una nueva variable en el portal de administración

  1. Selecciona el área de trabajo de Automation.

  2. En la parte superior de la ventana, selecciona Recursos.

  3. En la parte inferior de la ventana, haz clic en Agregar configuración.

  4. Selecciona Agregar variable.

  5. En la lista desplegable Tipo, selecciona un tipo de datos.

  6. Escribe un nombre para la variable en el cuadro Nombre.

  7. Seleccione la flecha derecha.

  8. Escribe un valor para la variable y especifica si se va a cifrar.

  9. Selecciona la marca de verificación para guardar la nueva variable.

Para crear una nueva variable con Windows PowerShell

El cmdlet Set-SmaVariable crea una nueva variable y establece el valor de una variable existente. Los comandos de ejemplo siguientes 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

  • Los comandos de ejemplo siguientes muestran cómo establecer y recuperar una variable en un runbook. En este ejemplo, se asume que se crearon las variables de tipo entero llamadas 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