Integração ServiceNow Change Management com Azure Pipelines – Parte II

Na parte I deste tópico, vimos como realizar a instalação das seguintes extensões:

  • ServiceNow Change Management (no Azure DevOps)
  • Criar uma nova instância no ServiceNow (no ServiceNow Developers)
  • Azure Pipelines (no ServiceNow)

A parte II será direcionada a configuração da integração entre o Azure DevOps e ServiceNow, desde a abertura de uma mudança no ServiceNow (a partir do pipeline no Azure DevOps) e também da atualização do status da mudança, por exemplo, colocar como concluída no ServiceNow, caso a release tenha sido publicada no Azure DevOps.

Azure DevOps
Após a instalação do ServiceNow Change Management (demonstrado na parte I), crie um novo Service Connection no Azure DevOps (Project Settings > Pipelines > Service connections). Defina as seguintes configurações:

  • Connection name: insira o nome desejado para a conexão com o ServiceNow
  • ServiceNow Url: é a URL da instância que será utilizada (também criada na parte I)
  • Username: usuário criado (ou configurado) na parte I com a permissão já definida
  • Password: a senha definida na configuração do usuário (no ServiceNow)

service-connection-vsts

Na Release Pipeline, adicione um pre-deployment gate, incluindo a conexão que acabamos de criar. É o campo ServiceNow connection. A documentação da Microsoft possui uma descrição para o preenchimento de todos os campos. Estas configurações permitem a abertura de uma mudança no ServiceNow. Entre os principais inputs:

  • Category:  a categoria da mudança (HardwareNetworkSoftware)
  • Priority: a prioridade da mudança
  • Risk: o risco da mudança
  • Impact: o impacto da mudança no negócio
  • Configuration Item: o item de configuração da mudança

gates-azure-devops

O Gates produz variáveis de output, como por exemplo:

  • CHANGE_REQUEST_NUMBER: número da mudança criada no ServiceNow
  • CHANGE_SYSTEM_ID: ID da mudança criada no ServiceNow

Esta variável de output pode ser acessada utilizando o prefixo PREDEPLOYGATE. Por exemplo, a variável gate-servicenow (definida no campo reference name) pode ser utilizada com a sintaxe $(PREDEPLOYGATE.gate-servicenow.CHANGE_REQUEST_NUMBER).

new-release-pipeline

Ao executar o deploy da release, uma nova mudança será criada no ServiceNow. Como o Success Criteria (tela anterior) está definido em “Implement”, a mudança será liberada quando for alterada para este status no ServiceNow.

ServiceNow
Então, por exemplo, quando o gestor da mudança acessar a ferramenta do ServiceNow, haverá uma nova mudança em sua fila. Ao colocar a mudança em “Implement”, a condição pre-deployment configurada no Gates será disparada, liberando a release.

service-management

Azure DevOps
Em seguida, adicione um novo Agentless job com a extensão Update ServiceNow Change Request ao final do seu release pipeline. Novamente, utilize a conexão criada anteriormente em ServiceNow connection e o status que deseja colocar a mudança após a implementação da release. No meu exemplo, coloquei o status como “Closed”.

agentless-job-azure-devops

Após a execução , o status do Deployment Gates fica disponível e se bem sucedida, a mudança será fechada automaticamente no ServiceNow.

pre-deployment-gates