Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Usar o juniper.device.system módulo Ansible para parar, reiniciar ou desligar dispositivos Junos

Use o módulo Ansible para parar, reiniciar ou desligar dispositivos que executam o Junos OS ou dispositivos que executam o juniper.device.system Junos OS Evolved.

Use o Ansible para interromper, reiniciar ou desligar dispositivos

A Juniper Networks oferece um módulo Ansible que você pode usar para interromper, reiniciar ou desligar dispositivos que executam o Junos OS ou dispositivos que executam o Junos OS Evolved. A Tabela 1 descreve o módulo disponível.

Tabela 1: Módulo para parar, reiniciar ou desligar dispositivos

Coleção de Emoji

Conjunto de módulos

Nome do módulo

juniper.device

juniper.device

juniper.device.system

Você pode usar o juniper.device.system módulo para solicitar as seguintes operações em dispositivos Junos. Por padrão, o módulo executa imediatamente a operação solicitada e executa a operação em todos os mecanismos de roteamento em uma configuração de Mecanismo de Roteamento duplo ou Virtual Chassis.

  • Uma parada, reinicialização ou desligamento imediato do sistema

  • Uma operação de parada, reinicialização ou desligamento com um atraso opcional

  • Uma operação de interrupção, reinicialização ou desligamento agendada em uma data e hora específicas

O system módulo requer um argumento, action, que define a ação a ser executada. A Tabela 2 define os action valores dos parâmetros e fornece uma breve descrição de cada ação, bem como o comando CLI correspondente. Para obter informações sobre a "zeroize" ação, consulte Usar o módulo Ansible juniper.device.system para restaurar um dispositivo Junos ao seu estado padrão de fábrica.

Tabela 2: Valores dos parâmetros de ação

action Valor

Descrição

Comando CLI equivalente

halt

Desligue normalmente o software Junos OS ou o software Junos OS Evolved, mas mantenha a energia do sistema

request system halt

reboot

Reinicie o software Junos OS ou o software Junos OS Evolved

request system reboot

shutdown

Desligue normalmente o software Junos OS ou o software Junos OS Evolved e desligue os mecanismos de roteamento

request system power-off

O manual do Ansible a seguir usa o juniper.device.system módulo com action: reboot para reinicializar imediatamente todos os mecanismos de roteamento nos hosts no grupo de inventário especificado.

Como executar uma parada, reinicialização ou desligamento com um atraso ou em um horário especificado

Você pode atrasar a operação de parada, reinicialização ou desligamento por um número especificado de minutos. Para adicionar um atraso, defina o parâmetro opcional in_min como o número de minutos que o sistema deve aguardar antes de executar a operação. A tarefa a seguir solicita uma reinicialização de todos os mecanismos de roteamento em 30 minutos:

Você também pode agendar a operação de parada, reinicialização ou desligamento em um horário específico. Para agendar um horário, inclua o at parâmetro, que usa uma cadeia de caracteres que pode ser especificada de uma das seguintes maneiras:

  • now— Inicie imediatamente a interrupção, reinicialização ou desligamento do software.

  • +minutes— Número de minutos a partir de agora em que a ação solicitada é iniciada.

  • yymmddhhmm— Hora absoluta para iniciar a ação solicitada, especificada como ano, mês, dia, hora e minuto.

  • hh:mm— Hora absoluta no dia atual para iniciar a ação solicitada, especificada em 24 horas.

A tarefa a seguir agenda um desligamento do sistema de todos os mecanismos de roteamento às 22:30 do dia atual:

Como Especificar o Mecanismo de Roteamento de Destino

Por padrão, o juniper.device.system módulo executa a operação solicitada em todos os mecanismos de roteamento em uma configuração de Mecanismo de Roteamento duplo ou Virtual Chassis. Você também pode instruir o módulo a realizar a operação apenas no Mecanismo de Roteamento ao qual o aplicativo está conectado ou a realizar a operação em todos os Mecanismos de Roteamento, exceto aquele ao qual o aplicativo está conectado.

Para especificar os mecanismos de roteamento, use os all_re parâmetros e other_re . A Tabela 3 resume os valores e other_re os all_re valores necessários para executar a operação solicitada em mecanismos de roteamento específicos.

Tabela 3: Parâmetros para especificar mecanismos de roteamento

Mecanismos de roteamento afetados

all_re Parâmetro

other_re Parâmetro

Todos os mecanismos de roteamento (padrão)

Omitir ou definir como true

Somente o Mecanismo de Roteamento conectado

Defina como false

Todos os mecanismos de roteamento, exceto o Mecanismo de Roteamento ao qual o aplicativo está conectado

Defina como true

Para indicar explicitamente que a operação deve ser executada em todos os mecanismos de roteamento em uma configuração de Mecanismo de Roteamento duplo ou Virtual Chassis, inclua o all_re: true argumento, que é o padrão.

Para executar a ação solicitada apenas no Mecanismo de Roteamento ao qual o aplicativo está conectado, inclua o all_re: false argumento.

Para executar a ação solicitada em todos os mecanismos de roteamento no sistema, exceto no Mecanismo de Roteamento ao qual o aplicativo está conectado, inclua o other_re: true argumento.

Como reiniciar ou desligar um host de VM

Em dispositivos que têm mecanismos de roteamento com suporte a host de VM, o Junos OS é executado como uma máquina virtual (VM) em um host baseado em Linux (host de VM). O juniper.device.system módulo dá suporte vmhost ao argumento, que permite reinicializar ou desligar um host de VM.

Quando você inclui os action: reboot argumentos and vmhost: true , o sistema reinicializa o sistema operacional host e o Junos OS compatível em todos os mecanismos de roteamento executando o <request-vmhost-reboot> RPC, que corresponde ao comando do request vmhost reboot modo operacional.

Da mesma forma, quando você inclui os action: shutdown argumentos and vmhost: true , o sistema desliga o sistema operacional host e o Junos OS compatível em todos os mecanismos de roteamento executando o <request-vmhost-poweroff> RPC, que corresponde ao request vmhost power-off comando do modo operacional.

O guia estratégico a seguir executa uma reinicialização do host da VM, que reinicializa o sistema operacional do host e o Junos OS convidado.

Exemplo: usar o Ansible para reiniciar dispositivos Junos

O juniper.device.system módulo permite que você pare, reinicie ou desligue um dispositivo Junos. Este exemplo usa o system módulo para reinicializar um dispositivo Junos.

Requerimentos

Este exemplo usa os seguintes componentes de hardware e software:

  • Servidor de gerenciamento de configuração executando o Ansible 2.17 ou posterior com a juniper.device coleção instalada

  • Dispositivo Junos com NETCONF habilitado e uma conta de usuário configurada com as permissões apropriadas

  • Par de chaves pública/privada SSH configurado para o usuário apropriado no nó de controle do Ansible e no dispositivo Junos

  • Arquivo de inventário existente do Ansible com hosts necessários definidos

Visão geral

Este exemplo apresenta um playbook do Ansible que usa o juniper.device.system módulo para reinicializar um dispositivo Junos. O valor do argumento do action módulo define a operação a ser executada no host.

Ao chamar o módulo de um manual, recomendamos que você use um prompt interativo para confirmar que o usuário pretende reinicializar os dispositivos especificados. Se um usuário executar o playbook sem querer e não houver nenhuma verificação, isso poderá afetar negativamente as redes que exigem os dispositivos afetados. Como precaução, este guia estratégico usa um prompt interativo para verificar se o usuário pretende reinicializar os dispositivos. O prompt requer que o usuário digite manualmente 'yes' na linha de comando para executar o módulo. Se a Confirmation check tarefa falhar, o nó de controle do Ansible ignorará as outras tarefas na reprodução para esse dispositivo.

Este playbook inclui a Check NETCONF connectivity tarefa, que utiliza o ansible.builtin.wait_for módulo para tentar estabelecer uma sessão NETCONF com o dispositivo Junos usando a porta NETCONF padrão 830. Se o nó de controle não conseguir estabelecer uma sessão NETCONF com o dispositivo durante a execução do manual, ele ignorará as tarefas restantes na reprodução para esse dispositivo.

A tarefa de reinicialização executa o módulo, juniper.device.system desde que as verificações de confirmação e NETCONF tenham sido bem-sucedidas. O action argumento é definido como reboot, o que indica que o software deve ser reinicializado. O in_min: 2 argumento instrui o módulo a aguardar o número especificado de minutos antes de executar o comando reboot. Isso fornece tempo para todos os usuários saírem do sistema.

A tarefa armazena o resultado do result módulo na variável e notifica dois manipuladores. O pause_for_reboot manipulador aguarda um período de tempo especificado após o início da operação de reinicialização para impedir que o wait_reboot manipulador detecte falsamente que o dispositivo está online antes que a reinicialização ocorra. Em seguida, o wait_reboot manipulador tenta estabelecer uma sessão com o dispositivo para verificar se o dispositivo volta a ficar online após a reinicialização. A wait_time_after_reboot variável define o período de tempo que o nó de controle tenta se reconectar ao dispositivo.

Configuração

Criar e executar o playbook do Ansible

Procedimento passo a passo

Para criar um playbook que usa o juniper.device.system módulo para reinicializar um dispositivo Junos:

  1. Inclua o clichê do manual e desta jogada, que executa os módulos localmente.

  2. Defina ou importe as variáveis necessárias.

  3. Crie um prompt interativo para impedir que os usuários executem acidentalmente o módulo sem primeiro entender as implicações.

  4. Crie a tarefa que confirma a intenção do usuário.

  5. (Opcional) Crie uma tarefa para verificar a conectividade NETCONF.

  6. Crie a tarefa para reinicializar o dispositivo após um número especificado de minutos e notifique os manipuladores.

  7. (Opcional) Crie uma tarefa para imprimir a resposta.

  8. Crie o manipulador que pausa após a reinicialização e o manipulador que verifica se o dispositivo volta a ficar online após a reinicialização.

    Os nomes do manipulador devem ser os mesmos referenciados na tarefa de reinicialização.

Resultados

No nó de controle do Ansible, examine o manual concluído. Se o guia estratégico não exibir o código pretendido, repita as instruções neste exemplo para corrigir o manual.

Execute o manual

Tramitação processual

Procedimento passo a passo

Para executar o manual:

  • Emita o ansible-playbook comando no nó de controle e forneça o caminho do guia estratégico e as opções desejadas.

Verificação

Verifique a reinicialização

Finalidade

Verifique se o dispositivo Junos foi reinicializado com sucesso.

Ação

Ao executar o manual, examine a wait_reboot saída da tarefa para cada dispositivo.

Significado

O wait_reboot resultado indica se o nó de controle estabeleceu com êxito uma sessão com o dispositivo após a reinicialização. Se o resultado indicar sucesso, o dispositivo está on-line.

Tabela de histórico de alterações

A compatibilidade com recursos é determinada pela plataforma e versão utilizada. Use o Explorador de recursos para determinar se um recurso é compatível com sua plataforma.

Lançamento
Descrição
1.0.3
A partir da juniper.device versão de coleção 1.0.3, o módulo dá suporte ao system desligamento de um host de VM.