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
Selecciona el área de trabajo de Automation.
En la parte superior de la ventana, selecciona Recursos.
En la parte inferior de la ventana, haz clic en Agregar configuración.
Selecciona Agregar credencial.
En el menú desplegable Tipo de credenciales, seleccione Credencial de PowerShell.
En el cuadro Nombre, escribe un nombre para la credencial.
Seleccione la flecha derecha.
Introduce los valores correspondientes a cada propiedad.
Selecciona la marca de verificación para guardar la credencial.
Crea un certificado en el/la
Portal de administración
Selecciona el área de trabajo de Automation.
En la parte superior de la ventana, selecciona Recursos.
En la parte inferior de la ventana, haz clic en Agregar configuración.
Selecciona Agregar credencial.
En el menú desplegable Tipo de credenciales, seleccione Certificado.
Escribe un nombre para el certificado en el cuadro Nombre.
Seleccione la flecha derecha.
Selecciona Buscar archivo y ve a un archivo .cer o .pfx.
Si seleccionaste un archivo .pfx, introduce tu contraseña.
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
Selecciona el área de trabajo de Automation.
En la parte superior de la ventana, selecciona Recursos.
En la parte inferior de la ventana, haz clic en Agregar configuración.
Seleccione Agregar conexión.
En el menú desplegable Tipo de conexión, selecciona un tipo de conexión.
Escribe un nombre para la conexión en el cuadro Nombre.
Seleccione la flecha derecha.
Escribe un valor para cada propiedad.
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
Selecciona el área de trabajo de Automation.
En la parte superior de la ventana, selecciona Recursos.
En la parte inferior de la ventana, haz clic en Agregar configuración.
Selecciona Agregar variable.
En la lista desplegable Tipo, selecciona un tipo de datos.
Escribe un nombre para la variable en el cuadro Nombre.
Seleccione la flecha derecha.
Escribe un valor para la variable y especifica si se va a cifrar.
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
- Obtén información sobre la creación de un módulo de integración.
- Obtén información sobre la creación de runbooks de Automation.