Integração ao gerenciamento de alterações do ServiceNow
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
O Azure Pipelines dá suporte à integração com o ServiceNow para melhorar a colaboração entre equipes de desenvolvimento e TI. Ao incluir o gerenciamento de alterações em pipelines de lançamento, as equipes podem reduzir os riscos associados a alterações e seguir metodologias de gerenciamento de serviços, como ITIL, aproveitando ao máximo o Azure Pipelines.
Neste artigo, você aprenderá a:
- Configurar instâncias do ServiceNow.
- Incluir o processo de gerenciamento de alterações do ServiceNow como um gate de lançamento.
- Monitorar o processo de gerenciamento de alterações de pipelines de lançamento.
- Manter as solicitações de alteração do ServiceNow atualizadas com os resultados da implantação.
Pré-requisitos
Este tutorial explica em detalhes como Usar aprovações e gates e como Definir aprovações e verificações.
Uma organização do Azure DevOps. Crie uma organização, se ainda não tiver uma.
Uma instância não desenvolvedora do ServiceNow.
Configurar a instância do ServiceNow
Instale a extensão do Azure Pipelines na sua instância do ServiceNow. Você precisará de credenciais elevadas para concluir a instalação. Confira Visão geral de compra para obter mais detalhes sobre como instalar aplicativos pela loja do ServiceNow.
Crie um usuário no ServiceNow e conceda a ele a seguinte função:
x_mioms_azpipeline.pipelinesExecution
.
Configurar a organização do Azure DevOps
Instale a extensão de Gerenciamento de Alterações do ServiceNow em sua organização do Azure DevOps.
Crie uma nova conexão de serviço do ServiceNow no seu projeto do Azure DevOps como explicado a seguir. Como alternativa, você pode usar a autenticação OAuth2.
Configurar o pipeline de lançamento
Navegue até o pipeline de lançamento e selecione o ícone de Condições de pré-implantação. Selecione Gates e o gate de pré-implantação ServiceNow Change Management.
Selecione a conexão de serviço que você criou anteriormente e preencha os campos obrigatórios da seguinte maneira:
- ServiceNow connection: conexão com a instância do ServiceNow usada para gerenciamento de alterações.
- Short description: um resumo da alteração.
- Description: descrição detalhada da alteração.
- Category: a categoria da alteração. Exemplo: Hardware, Network e Software.
- Priority: prioridade da alteração.
- Risk: o nível de risco da alteração.
- Impact: o efeito da alteração sobre os negócios.
- Configuration Item: o CI (item de configuração) ao qual a alteração se aplica.
- Assignment group: o grupo ao qual a alteração está atribuída.
- Schecule of change request: agendamento da alteração respeitado pelo fluxo de trabalho do ServiceNow. A data e a hora devem estar em UTC e o formato deve ser aaaa-MM-ddTHH:mm:ssZ. Exemplo: 2018-01-31T07:56:59Z.
- Additional change request parameters: o nome deve ser o nome do campo (não o rótulo) com “u_” como prefixo. Exemplo: u_backout_plan. O valor deve ser um valor válido no ServiceNow. Entradas inválidas são ignoradas.
- Desired state of change request: o gate terá êxito e o pipeline continuará se o status da solicitação de alteração for igual ao valor fornecido.
- Advanced: especifica uma expressão que controla quando esse gate deve ter êxito. A solicitação de alteração é definida como root['result'] na resposta do ServiceNow. Exemplo: "and(eq(root['result'].state, 'New'),eq(root['result'].risk, 'Low'))". Confira Expressões para obter mais detalhes.
- Output Variables: especifique um nome de referência para poder usar variáveis de saída no fluxo de trabalho de implantação. As variáveis de gate podem ser acessadas usando "PREDEPLOYGATE" como um "prefixo" em um trabalho sem agente. Por exemplo, quando o nome de referência é definido como “gate1”, o número de alteração pode ser obtido da seguinte maneira: $(PREDEPLOYGATE.gate1.CHANGE_REQUEST_NUMBER).
- CHANGE_REQUEST_NUMBER: número da solicitação de alteração.
- CHANGE_SYSTEM_ID: ID do sistema da solicitação de alteração.
No final do pipeline de lançamento, adicione um trabalho sem agente com uma tarefa Update ServiceNow Change Request (Atualizar solicitação de alteração do ServiceNow).
- ServiceNow connection: conexão com a instância do ServiceNow usada para gerenciamento de alterações.
- Change request number: número da solicitação de alteração a ser atualizada.
- Updated status of change request: status para definir a solicitação de alteração. Essa entrada estará disponível se a opção Update status estiver selecionada.
- Close code and Close notes: status do retorno.
Observação
A tarefa Update ServiceNow Change Request falhará se nenhum dos campos de solicitação de alteração for atualizado durante a execução. O ServiceNow ignora campos e valores inválidos passados para a tarefa.
Criar um pipeline de lançamento
Selecione Create release para iniciar um novo pipeline de lançamento.
Seu pipeline deve criar uma solicitação de alteração no ServiceNow como parte das condições de pré-implantação criadas anteriormente.
O pipeline aguardará que todos os gates tenham êxito no mesmo intervalo de amostra. Para verificar o número de alteração, selecione o ícone status para exibir os logs do pipeline.
A solicitação de alteração será enfileirada no ServiceNow e poderá ser exibida pelo proprietário da alteração.
O pipeline de lançamento que disparou a nova solicitação de alteração pode ser encontrado na seção Azure DevOps Pipeline metadata .
Quando a alteração estiver pronta para implementação (movida para Implement estado), o pipeline retomará a execução e o status do gate deverá retornar succeeded.
A solicitação de alteração será fechada automaticamente após a implantação.
Pipelines YAML
Este tutorial pressupõe que você tenha um pipeline YAML com uma única fase que é implantado em um ambiente "mais recente".
Adicionar uma verificação
Navegue até o ambiente "mais recente", selecione o botão de reticências e selecione Approvals and checks.
Selecione o sinal de adição para adicionar uma nova verificação e adicione a verificação ServiceNow Change Management ao seu ambiente. Use a mesma configuração usada para o gate de pré-implantação.
Adicionar a tarefa YAML
Adicione um trabalho de servidor à fase para atualizar a solicitação de alteração.
Salve e execute o seu pipeline. Uma nova solicitação de alteração será criada automaticamente e o pipeline pausará e aguardará a conclusão das verificações.
Depois que as verificações forem concluídas, o pipeline deverá retomar a execução. A solicitação de alteração será fechada automaticamente após a implantação.
Perguntas frequentes
P: Quais versões do ServiceNow são compatíveis?
R: Oferecemos suporte às seguintes versões: Kingston, London, New York, Paris, Quebec, Rome, San Diego e Tokyo.
R: Oferecemos suporte às seguintes versões: Kingston, London, New York, Paris e Quebec.
R: Oferecemos suporte às seguintes versões: San Diego, Tokyo e Utah.
P: Quais tipos de solicitação de alteração têm suporte?
R: Nesta integração, há suporte para solicitações de alteração normais, padrão e de emergência.
P: Como fazer definir propriedades de alteração adicionais?
R: Você pode especificar propriedades de alteração adicionais no campo Additional change request parameters. Use um formato JSON de pares chave-valor, com o nome sendo o nome do campo (não o rótulo) com o prefixo u_
.
P: Posso atualizar campos personalizados na solicitação de alteração com parâmetros de solicitação de alteração adicionais?
R: Se os campos personalizados forem definidos na solicitação de alteração, você deverá adicionar o mapeamento de campos personalizados em Import set transform map.
P: Não vejo valores preenchidos nas listas suspensas para Category, Status e outros campos. O que devo fazer?
R: Os plug-ins Change Management Core e Change Management – State Model devem estar ativos na instância do ServiceNow para que as listas suspensas funcionem. Confira Atualizar o gerenciamento de alterações e Atualizar estados de solicitação de alteração para obter mais detalhes.
Recursos
- Configurar seus pipelines de lançamento para implantações seguras
- Sentimento do Twitter como um gate de lançamento
- Problemas do GitHub como um gate de lançamento
- Criar gates personalizados.
- Exemplo da Biblioteca ServerTaskHelper