Com as ações de extensibilidade, é possível integrar o Cloud Assembly a um ITSM empresarial, como o ServiceNow.
Para criar essa integração, serão usados quatro scripts de ação de extensibilidade. Os três primeiros scripts são iniciados em sequência durante o provisionamento no provisionamento de processamento após o evento. O quarto script é disparado na remoção de processamento após evento.
Para obter mais informações sobre tópicos de eventos, consulte Tópicos de eventos fornecidos com o Cloud Assembly.
Obter Detalhes da VM
O script Obter Detalhes da VM adquire detalhes adicionais de payload necessários para a criação de CI e um token de identidade, que é armazenado no Amazon Web Services Systems Manager Parameter Store (SSM). Além disso, esse script atualiza customProperties com propriedades adicionais para uso posterior.
Criar CI do CMDB do ServiceNowCriar Alteração do ServiceNow
Esse script conclui a integração do ITSM passando a URL da instância do ServiceNow como uma entrada e armazenando as credenciais do ServiceNow como SSM para atender aos requisitos de segurança.
Criar Alteração do ServiceNow
O script de desativação de CI do ServiceNow solicita que o ServiceNow pare e marque a CI como desativada com base na propriedade personalizada serviceNowSysId que foi criada no script de criação.
Pré-requisitos
- Antes de configurar esta integração, filtre todas as assinaturas de evento com a propriedade condicional de modelo de nuvem: event.data["customProperties"]["enable_servicenow"] === "true"
Observação: Essa propriedade existe em modelos de nuvem que necessitam de uma integração do ServiceNow.
- Baixe e instale o Python.
Para obter mais informações sobre filtragem de assinaturas, consulte Criar uma assinatura de extensibilidade.
Procedimento
Resultados
O Cloud Assembly foi integrado com êxito ao ITSM ServiceNow.
O que Fazer Depois
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 obter mais informações sobre como usar ações de extensibilidade para integrar o ServiceNow no Cloud Assembly, consulte Estender o Cloud Assembly com Extensibilidade com base na ação para a integração do ServiceNow.