Use o SSH para desligar uma VM usando a operação de tipo de fluxo de trabalho
Use o SSH para desligar remotamente uma VM usando uma operação de tipo de fluxo de trabalho. Siga este caso de uso para percorrer todas as tarefas necessárias para realizar este tipo de desligamento.
Antes de Iniciar
Procedimento
-
Para criar a atividade personalizada do SSH, siga estas etapas:
- Navegar até Portal do administrador > Workflows > Editor de fluxo de trabalho.
- Clique na guia Personalizado e em + (sinal de adição) para criar uma nova atividade personalizada.
-
Na lista de tipos de atividades, escolha SSH.
-
O Designer de atividades é aberto com a guia Geral exibida
Insira um nome exclusivo para a atividade e clique em Continuar.
- Na guia Entradas, adicione as variáveis de entrada com as etapas a seguir e clique em Continuar:
- Na tabela Entrada, clique no + em um círculo para criar uma nova variável de entrada.
-
Clique à direita de ABC na coluna Nome e digite o nome da entrada.
As entradas variam de acordo com o objeto a ser afetado. Você pode parar uma atividade para parar uma VM, para que as entradas reflitam os valores necessários para realizar essa ação.
As colunas Tipo e Obrigatório são preenchidas automaticamente de acordo com a entrada inserida.
-
Crie um novo objeto de entrada para cada entrada na tabela a seguir e clique em Continuar:
Variável de entrada Tipo Obrigatório Host Cadeia de caracteres Não Comando Cadeia de caracteres Não Marcador de credencial Cadeia de caracteres Não - Na guia Comando de execução, execute o seguinte:
- Na tabela Saída, clique no + em um círculo para criar uma nova variável de saída.
-
Clique à direita de ABC na coluna Nome e digite o nome da saída.
As variáveis de saída refletem os possíveis resultados quando o fluxo de trabalho tenta fazer o SSH na VM. A coluna Tipo é preenchida automaticamente.
Saídas Tipo error Cadeia de caracteres saída Cadeia de caracteres - Clique e arraste a variável de erro para o campo Nome da variável na tabela Regras de análise.
- Na caixa de diálogo Regra de análise para erro, na lista suspensa Origem da análise, selecione a origem apropriada; neste caso, executionResult.errorMessages.
-
Repita para a variável de saída, selecionando executionResult.output como a Origem de análise e, em seguida, clique em Enviar.
-
Clique em “Continuar”.
As condições são opcionais.
- Clique em Salvare em Publicar para disponibilizar a atividade para uso no fluxo de trabalho.
-
Para criar o fluxo de trabalho SSH necessário para desligar a VM, siga estas etapas:
Ao criar um fluxo de trabalho, você o associa a uma tabela e a uma atividade.
- Você pode criar o fluxo de trabalho em uma tabela no nível global ou em uma tabela no nível da aplicação. Use a tabela global para disponibilizar o fluxo de trabalho para uso com todas as aplicações da ServiceNow. Aqui, usamos uma tabela para Cloud Provisioning and Governance, portanto, este fluxo de trabalho só estará disponível para uso com esse aplicativo.
- Você pode criar o fluxo de trabalho no Editor de fluxo de trabalho ou no Designer de atividades. Aqui, o Designer de atividades é usado.
- No Designer de atividades, selecione a guia Fluxos de trabalho à direita e clique no + (sinal de mais) para adicionar um novo fluxo de trabalho.
- Na janela Novo fluxo de trabalho, insira um nome exclusivo para o fluxo de trabalho.
-
No menu suspenso Tabela, selecione a tabela a ser usada.
Pesquise e use a instância de máquina virtual cmdb_ci_vm_instance para usar o fluxo de trabalho para desligar uma VM.
- Clique em Enviar.
- Quando o fluxo de trabalho for exibido na tela, exclua a linha de conexão entre o ponto inicial e o ponto final do fluxo de trabalho.
- Exclua a linha de conexão entre o ponto inicial e o endpoint do fluxo de trabalho.
- Clique com o botão direito do mouse na tela de mais informações e selecione Editar entradas.
-
Crie as seguintes entradas:
Nota:Obtenha os nomes de entrada do campo Coluna, não do campo Rótulo. Se o fluxo de trabalho estiver associado a uma tabela de nível global, o nome da entrada no campo Coluna será prefixado com u_, por exemplo, u_ipaddress. Aqui, a tabela está no nível da aplicação, portanto, não precisa de prefixo.
Tabela 1. Entradas de fluxo de trabalho Tipo Rótulo Coluna (adicionada automaticamente) Comprimento máximo Cadeia de caracteres IPAddress ipaddress 100 Cadeia de caracteres Marcador de credencial marcador de credencial 100 - Clique em Enviar.
- Clique com o botão direito do mouse na tela e selecione Adicionar atividade personalizada.
- Na janela Versões, pesquise e selecione a atividade que você criou inicialmente neste caso de uso.
- Na janela Nova atividade dessa atividade (registro de nova atividade de fluxo de trabalho [exibição do diagramador]), insira um nome para a atividade.
-
No campo Host, digite o mapeamento de entrada que a atividade espera.
Aqui, esse é o endereço IP do host: ${workflow.inputs.u_ipaddress}. Use esta expressão para obter o endereço IP:
$(Script:CMPVMUtils.getReachableIp[arg=$(Stack.items[Virtual Server].attributes[sys_id])])
- No campo Comando, digite shutdown -h now
-
No campo Marcador de credencial, digite ${workflow.inputs.u_credentialtag}
Use esta expressão para obter o marcador de credencial:
$(Script:CMPVMUtils.getCredentialAlias[arg=${Stack.items[Virtual Server].attributes[sys_id]}])
-
Clique em Enviar.
A atividade é exibida na tela do fluxo de trabalho.
- Clique com o botão direito do mouse na tela e selecione Adicionar atividade principal para adicionar uma atividade de execução de script.
- Na janela Definições de atividade de fluxo de trabalho, pesquise e selecione Executar script.
- Na janela Nova atividade: executar script, digite um nome para a atividade.
-
Recorte e cole um script (apropriado para o seu ambiente) no campo Script.
Este script atualiza o estado da VM depois que ela é desligada.Script de exemplo:
if ( gs.nil(data.get(3).error)) { current.state = 'off'; current.setWorkflow(false); current.update(); } - Clique em Enviar.
- Na tela, conecte os conectores entre o ponto de início, a atividade, o script de execução e o ponto de término.
-
Valide o fluxo de trabalho usando a validação de fluxo de trabalho.
Nota:O sistema não recomenda o uso de current.update(). Isso pode ser ignorado.
-
Para adicionar a operação a um bloco de recursos, siga estas etapas:
Você pode selecionar entre as operações existentes em um bloco de recursos para trabalhar com seu fluxo de trabalho ou pode criar uma operação personalizada.
- Em Portal de Administração de Nuvem, navegue até Design > Blocos de recursos.
- Selecione um bloco de recursos, por exemplo, Servidor virtual.
- Mova o estado do bloco de recursos de Publicado para Rascunho para torná-lo editável.
-
Selecione a guia Operações e, no campo suspenso Interface, selecione uma interface que esteja disponível para o usuário.
A interface padrão é a Interface do servidor virtual.
- Clique em + à direita do campo Operação e, na caixa de diálogo Adicionar operação, insira um nome significativo e exclusivo.
- Selecione uma operação no menu suspenso Tipo de operação.
- Selecione Público no campo Tipo de acesso.
-
Preencha o formulário e clique em Enviar.
Tipo de Operação Selecione a operação a ser executada. Tipo de Acesso Para que o usuário veja a operação no nível de Recursos durante o provisionamento, selecione Público. As operações definidas como Privadas não ficam visíveis durante o provisionamento. A operação está disponível no recurso quando você seleciona o recurso para o fluxo de trabalho. -
Para adicionar uma etapa de operação de recurso para invocar o fluxo de trabalho, ainda na guia Operações, clique em Etapas > Adicionar Etapa.
Para habilitar o fluxo de trabalho a ser exportado como parte dos conjuntos para atualização, você deve criar uma interface de extensão e adicionar a nova operação. Consulte Estender Cloud Provisioning and Governance blocos de recursos com uma operação de substituição para obter detalhes.
- No pop-up Adicionar etapas de operação, selecione Invocar fluxode trabalho para o tipo de operação.
-
Selecione o Fluxo de trabalho na lista de fluxos de trabalho que você criou.
O sistema pode filtrar a lista usando marcadores. Para adicionar um marcador:
- Navegue até Propriedades do sistema.
- Localize e selecione a propriedade do sistema sn_cmp.workflow_tag_filter.
- Edite a propriedade. Adicione um marcador ou uma lista separada por vírgulas de marcadores.
- Clique em Salvar.
-
Para filtrar os fluxos de trabalho:
- Na tabela de fluxo de trabalho, abra o fluxo de trabalho.
- Clique em Adicionar marcador.
- Insira o valor fornecido anteriormente na propriedade sn_cmp.workflow_tag_filter
- Clique em Enter para adicionar o valor como um marcador ao fluxo de trabalho. A nova etapa aparece depois que o software gera o novo Catálogo de operações de dia 2.
-
Podem existir fluxos de trabalho criados em tabelas que não sejam globais.
Você pode adicionar um fluxo de trabalho criado nessa tabela. Para executar operações neste tipo de fluxo de trabalho, você precisa do sys_id do registro no qual o fluxo de trabalho está sendo executado para criar o registro atual. Portanto, quando o designer adiciona um fluxo de trabalho que está em uma tabela diferente de global, o sistema cria um parâmetro wf_current no parâmetro de entrada da operação. Você pode gravar uma expressão para mapear o sys_id do recurso no qual a operação está sendo executada. Quando isso for concluído, o designer poderá usar a palavra-chave "atual" em scripts de fluxo de trabalho.Para adicionar o fluxo de trabalho:
- Depois de criar a etapa, o sistema adiciona as entradas do fluxo de trabalho aos parâmetros de entrada da operação. Você pode fornecer o mapeamento para esses parâmetros, se necessário.
- Clique no botão Gerar catálogo para criar o item do catálogo para a operação.
- Depois que o catálogo for gerado, você poderá adicionar as regras de mudança de carga e campo aos itens do catálogo.
- Defina o bloco de recursos com o estado Publicado para disponibilizar o fluxo de trabalho no Portal de usuário da nuvem.
-
Para executar a operação no Portal do usuário, siga estas etapas:
- Provisione uma VM AWS simples no portal.
- Após a conclusão do provisionamento da VM, navegue até a pilha > Recurso da VM.
-
Na opção Selecionar operação de recurso, selecione a atividade de parada personalizada que você criou anteriormente neste caso de uso e clique em OK.
A operação é executada depois que o RITM é criado e o estado da VM muda no console do AWS.
- Navegar até Operar > Trilhas para exibir os logs de trilha e rastrear as etapas da operação.
-
Para solucionar problemas, se necessário, siga estas etapas:
-
Use o item da solicitação (RITM) e navegue até o painel RootCauseAnalysis.
O RITM tem o link para o contexto de fluxo de trabalho da operação executada no momento.
-
Verifique estes erros comuns:
Tabela 2. Tratamento de erros Sintoma Mensagem de erro A VM foi encerrada, mas houve um problema com a conexão SSH "Erro; trabalho concluído com status ERRO: problema na sessão SSH, trabalho anulado: conexão encerrada inesperadamente pelo servidor SSH: \n", A VM já está desligada/não é possível acessar a VM "Não é possível conectar, o status é TCP_CONNECTION_FAILURE. Tempo esgotado ao aguardar o TCP se conectar a 10.198.252.224:22: \n", Nota:Confirme se o endereço IP da VM no wf_context é o endereço apropriado. A VM pode já ter sido desligada. Confirme se o endereço IP está acessível.Acesso raiz indisponível "Falha ao emitir chamada de método: acesso negado\nDeve ser raiz.\nStatus de saída: 1\n\n", Nota:Confirme se a caixa Deve Sudo está marcada na atividade SSH no início deste caso de uso.
-
Use o item da solicitação (RITM) e navegue até o painel RootCauseAnalysis.