Utilizzando le azioni di estendibilità è possibile integrare Cloud Assembly con una ITSM aziendale, come ServiceNow.
Per creare questa integrazione, si utilizzano quattro script dell'azione di estendibilità. I primi tre script vengono avviati in sequenza durante il provisioning, nell'evento successivo al provisioning della risorsa di elaborazione. Il quarto script viene attivato nell'evento successivo alla rimozione della risorsa di elaborazione.
Per ulteriori informazioni sugli argomenti degli eventi, fare riferimento a Argomenti degli eventi forniti con Cloud Assembly.
Recupera dettagli della macchina virtuale
Lo script Recupera dettagli della macchina virtuale acquisisce ulteriori dettagli del payload, necessari per la creazione di CI e un token di identità archiviato in Amazon Web Services Systems Manager Parameter Store (SSM). Inoltre, questo script aggiorna customProperties con proprietà aggiuntive per un uso successivo.
Crea CI CMDB di ServiceNowCrea modifica ServiceNow
Questo script completa l'integrazione di ITSM passando l'URL dell'istanza di ServiceNow come input e archiviando le credenziali di ServiceNow come SSM per soddisfare i requisiti di sicurezza.
Crea modifica ServiceNow
Lo script Ritira CI CMDB di ServiceNow richiede l'interruzione di ServiceNow e contrassegna CI come ritirato in base alla proprietà personalizzata serviceNowSysId creata nello script di creazione.
Prerequisiti
- Prima di configurare questa integrazione, filtrare tutte le sottoscrizioni agli eventi con la proprietà condizionale del modello cloud: event.data["customProperties"]["enable_servicenow"] === "true"
Nota: Questa proprietà è presente nei modelli cloud che richiedono un'integrazione di ServiceNow.
- Scaricare e installare Python.
Per ulteriori informazioni su come filtrare le sottoscrizioni, vedere Creazione di una sottoscrizione di estendibilità.
Procedura
risultati
Cloud Assembly è stato integrato correttamente con ITSM ServiceNow.
Operazioni successive
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)
Per ulteriori informazioni su come utilizzare le azioni di estendibilità per integrare ServiceNow in Cloud Assembly, vedere Estensione di Cloud Assembly con l'estendibilità basata su azione per l'integrazione di ServiceNow.