Use SSH para desligar uma VM usando operação do tipo de fluxo de trabalho

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 9 min. de leitura
  • Use 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 esse tipo de desligamento.

    Antes de Iniciar

    Função necessária: Designer de fluxo de trabalho ou sn_cmp.cloud_admin

    Procedimento

    1. Para criar a atividade personalizada SSH, siga estas etapas:
      1. Navegar até Portal do administrador > Fluxos de trabalho > Editor de fluxo de trabalho.
      2. Clique em Personalizado e clique em . (sinal de mais) para criar uma nova atividade personalizada.
      3. Na lista de tipos de atividades, escolha SSH .
        Escolha SSH como o tipo de atividade personalizada
      4. O Designer de atividades é aberto com a guia Geral exibida
        Insira um nome exclusivo para a atividade e clique em Continuar .
      5. Na guia Entradas, adicione as variáveis de entrada com as etapas a seguir e clique em Continuar :
      6. Na tabela de entrada, clique em em um círculo para criar uma nova variável de entrada.
      7. Clique em à direita de ABC em Nome e digite o nome da entrada.

        As entradas variam de acordo com o objeto a ser afetado. Você pode interromper uma atividade para interromper uma VM, de modo que as entradas reflitam os valores necessários para realizar essa ação.

        . Tipo e. Obrigatório as colunas são preenchidas automaticamente de acordo com a entrada inserida.

      8. 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
        CredentialTag Cadeia de caracteres Não
      9. Na guia Comando de execução, execute o seguinte:
      10. Na tabela Saída, clique em em um círculo para criar uma nova variável de saída.
      11. Clique em à direita de ABC em Nome e digite o nome da saída.
        As variáveis de saída refletem os resultados possíveis quando o fluxo de trabalho tenta usar SSH para a VM. . Tipo a coluna é preenchida automaticamente.
        Saídas Tipo
        erro Cadeia de caracteres
        saída Cadeia de caracteres
      12. Clique em e arraste erro Variável para o campo Nome da variável na tabela Regras de análise.
      13. Na caixa de diálogo Regra de análise para erro, no menu suspenso Origem de análise, selecione a origem apropriada; nesse caso, exectionResult.errorMessages.
      14. Repita para a variável de saída, selecionando exectionResult.output como Origem de análise e clique em Enviar .
        As saídas são exibidas em Regras de análise
      15. Clique em “Continuar”.
        As condições são opcionais.
      16. Clique em Salvar e clique em Publicar para disponibilizar a atividade para uso no fluxo de trabalho.
    2. 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 essa aplicação.
      • Você pode criar o fluxo de trabalho no Editor de fluxo de trabalho ou no Designer de atividades. Aqui, o Designer de atividades é usado.
      1. No Designer de atividades, selecione Fluxos de trabalho à direita e clique em . (sinal de mais) para adicionar um novo fluxo de trabalho.
      2. Na janela Novo fluxo de trabalho, insira um nome exclusivo para o fluxo de trabalho.
      3. Em Tabela selecione a tabela a ser usada.
        PESQUISE e use o. Instância da Máquina Virtual cmdb_ci_vm_instance Para usar o fluxo de trabalho para desligar uma VM.
      4. Clique em Enviar.
      5. 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.
      6. Exclua a linha de conexão entre o ponto inicial e o ponto final do fluxo de trabalho.
      7. Clique com o botão direito do mouse na tela Mais informações e selecione Editar entradas .
      8. Crie as seguintes entradas:
        Nota:
        Use 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 de entrada no campo de coluna será prefixado com u_, por exemplo, u_ipaddress. Aqui, a tabela é 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 CredentialTag credentialtag 100
      9. Clique em Enviar.
      10. Clique com o botão direito do mouse na tela e selecione Adicionar atividade personalizada .
      11. Na janela Versões, pesquise e selecione a atividade que você criou inicialmente neste caso de uso.
      12. Na janela Nova atividade para essa atividade (Novo registro de Atividade de fluxo de trabalho [Exibição de diagrama]), insira um nome para a atividade.
      13. Em Host digite o mapeamento de entrada esperado pela atividade.

        Este é 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])])

      14. No campo Comando, digite shutdown -h now
      15. 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]}])

      16. Clique em Enviar.
        A atividade é exibida na tela do fluxo de trabalho.
      17. Clique com o botão direito do mouse na tela e selecione Adicionar atividade principal para adicionar uma atividade de script de execução.
      18. Na janela Definições de atividade de fluxo de trabalho, pesquise e selecione Script de execução .
      19. Na janela Nova atividade: Executar script, digite um nome para a atividade.
      20. Corte e cole um script (apropriado para o seu ambiente) no Script campo.
        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();
        }
        
      21. Clique em Enviar.
      22. Na tela, conecte os conectores entre o ponto inicial, a atividade, o script de execução e o ponto final.
      23. 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.
    3. Para adicionar a operação a um bloco de recursos, siga estas etapas:
      Você pode selecionar as operações existentes em um bloco de recursos para trabalhar com seu fluxo de trabalho ou criar uma operação personalizada.
      1. Em Portal de Administração de Nuvem, navegue até Criar > Blocos de recursos.
      2. Selecione um bloco de recursos, por exemplo Servidor virtual .
      3. Mova o estado do bloco de recursos de Publicado para Rascunho para torná-lo editável.
      4. Selecione Operações E, no campo suspenso Interface, selecione uma interface disponível para o usuário.
        A interface padrão é Interface do Servidor Virtual .
      5. Clique em . À direita do campo Operação e, na caixa de diálogo Adicionar operação, insira um nome significativo e exclusivo.
      6. Selecione uma operação no menu suspenso Tipo de operação.
      7. Selecione Público No campo Tipo de acesso.
      8. 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 . Operações definidas como Privado não estão visíveis durante o provisionamento.
        A operação está disponível no recurso quando você seleciona o recurso para seu fluxo de trabalho.
      9. 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 permitir que o fluxo de trabalho seja exportado como parte dos conjuntos de atualizações, você deve criar uma interface de extensão e adicionar a nova operação. Consulte Estender Cloud Provisioning and Governanceblocos de recursos com uma operação de substituição para obter detalhes.
      10. No pop-up Adicionar etapas de operação, selecione Invoque fluxo de trabalho para Tipo de operação .
      11. Selecione Fluxo de trabalho na lista de fluxos de trabalho que você criou.
        O sistema pode filtrar a lista usando marcadores. Para adicionar um marcador:
        1. Navegue até Propriedades do sistema .
        2. Localize e selecione a propriedade do sistema sn_cmp.workflow_tag_filter.
        3. Edite a propriedade. Adicione um marcador ou uma lista separada por vírgulas de marcadores.
        4. Clique em Salvar.
      12. Para filtrar os fluxos de trabalho:
        1. Na tabela de fluxo de trabalho, abra o fluxo de trabalho.
        2. Clique em Adicionar marcador .
        3. Insira o valor que você forneceu anteriormente na propriedade sn_cmp.workflow_tag_filter
        4. Clique em Insira 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 do dia 2.
      13. Podem existir fluxos de trabalho criados em tabelas diferentes de globais.
        Você pode adicionar um fluxo de trabalho criado em tal 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á na tabela diferente de global, o sistema cria um wf_currentparâmetro no parâmetro de entrada de operação. Em seguida, você pode escrever 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" nos scripts de fluxo de trabalho.
        Para adicionar o fluxo de trabalho:
        1. 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.
        2. Clique em Gerar catálogo botão para criar o item do catálogo para a operação.
        3. Depois que o catálogo for gerado, você poderá adicionar regras de mudança de carga e campo aos itens do catálogo.
      14. Defina o bloco de recursos como Publicado estado para disponibilizar o fluxo de trabalho no Portal de usuário da nuvem.
    4. Para executar a operação no Portal do usuário, siga estas etapas:
      1. Provisione uma VM AWS simples a partir do portal.
      2. Após a conclusão do provisionamento da VM, navegue até a pilha > Recurso da VM.
      3. 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 da AWS.
      4. Navegar até Operar > Trilhas para exibir os logs de trilha e rastrear as etapas da operação.
    5. Para solucionar problemas, se necessário, siga estas etapas:
      1. Use o item de solicitação (ritm) e navegue até o Painel RootCauseAnalysis.
        O ritm tem o link para o contexto do fluxo de trabalho da operação executada no momento.
      2. Verifique se há estes erros comuns:
        Tabela 2. Tratamento de erros
        Sintoma Mensagem de erro
        A VM é desligada, mas houve um problema com a conexão SSH "Erro; trabalho concluído com ERRO de status: Problema na sessão SSH, trabalho cancelado: Conexão encerrada inesperadamente pelo servidor SSH:",
        A VM já está desligada/não pode acessar a VM "Não é possível conectar, o status é tcp_CONNECTION_FAILURE. Tempo limite esgotado enquanto espera que o TCP se conecte a 10.198.252.224:22: ",
        Nota:
        Confirme se o endereço IP da VM no wf_context é o endereço apropriado. A VM já pode ter sido desligada. Confirme se o endereço IP está acessível.
        Acesso raiz indisponível "Falha ao emitir chamada de método: O acesso negado deve ser raiz. Status de saída: 1",
        Nota:
        Confirme se Sudo a caixa está marcada na atividade SSH no início deste caso de uso.