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)
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 (
Hardware
,Network
,Software
) - 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
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)
.
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.
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”.
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.