Con las acciones de extensibilidad, es posible integrar Cloud Assembly con una ITSM empresarial, como ServiceNow.
Para crear esta integración, se utilizan cuatro scripts de acciones de extensibilidad. Los tres primeros scripts se inician en secuencia durante el aprovisionamiento, en el evento de publicación de aprovisionamiento de recursos informáticos. El cuarto script se activa en el evento de publicación de eliminación de recursos informáticos.
Para obtener más información sobre los temas de eventos, consulte Temas de eventos proporcionados con Cloud Assembly.
Obtener detalles de máquina virtual
El script Obtener detalles de máquina virtual obtiene los detalles de carga útil adicionales necesarios para la creación de un CI y un token de identidad que se almacena en Amazon Web Services Systems Manager Parameter Store (SSM). Además, este script actualiza customProperties con propiedades adicionales para un uso posterior.
Crear CI de CMDB de ServiceNowCrear cambio de ServiceNow
Este script finaliza la integración de ITSM pasando la URL de la instancia de ServiceNow como entrada y almacenando las credenciales de ServiceNow como SSM para cumplir los requisitos de seguridad.
Crear cambio de ServiceNow
El script para retirar un elemento de configuración de CMDB de ServiceNow solicita a ServiceNow que se detenga y marca el elemento de configuración como retirado en función de la propiedad personalizada serviceNowSysId que se creó en el script de creación.
Requisitos previos
- Antes de configurar esta integración, filtre todas las suscripciones de evento por la siguiente propiedad de plantilla de nube condicional: event.data["customProperties"]["enable_servicenow"] === "true"
Nota: Esta propiedad existe en las plantillas de nube que requieren una integración de ServiceNow.
- Descargue e instale Python.
Para obtener más información sobre cómo filtrar suscripciones, consulte Crear una suscripción de extensibilidad.
Procedimiento
Resultados
Cloud Assembly se integra correctamente con ServiceNow para ITSM.
Qué hacer a continuación
from botocore.vendored import requests import json import boto3 client = boto3.client('ssm','ap-southeast-2') def handler(context, inputs): snowUser = client.get_parameter(Name="serviceNowUserName",WithDecryption=False) snowPass = client.get_parameter(Name="serviceNowPassword",WithDecryption=True) tableName = "cmdb_ci_vmware_instance" sys_id =inputs['customProperties']['serviceNowSysId'] url = "https://" + inputs['instanceUrl'] + "/api/now/"+tableName+"/{0}".format(sys_id) headers = {'Content-type': 'application/json', 'Accept': 'application/json'} payload = { 'state': 'Retired' } results = requests.put( url, json=payload, headers=headers, auth=(inputs['username'], inputs['password']) ) print(results.text)
Para obtener más información sobre la forma de usar las acciones de extensibilidad para integrar ServiceNow en Cloud Assembly, consulte Extender Cloud Assembly con extensibilidad basada en acciones para la integración de ServiceNow.