Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Use Ansible para parar, reiniciar ou desligar dispositivos Junos

RESUMO Use os módulos Ansible da Juniper Networks para parar, reiniciar ou desligar dispositivos Junos.

Use Ansible para parar, reiniciar ou desligar dispositivos

A Juniper Networks oferece suporte ao uso do Ansible para gerenciar dispositivos Junos e fornece módulos Ansible que permitem que você interrompa, reinicialize ou desativará um dispositivo. A Tabela 1 descreve os módulos disponíveis.

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

Conjunto de conteúdo

Nome do módulo

juniper.device coleção

system

Juniper.junos papel

juniper_junos_system

Nota:

Juniper.junos A partir do lançamento 2.0.0, o juniper_junos_system módulo substitui a funcionalidade do e junos_zeroize dos junos_shutdown módulos.

Você pode usar os módulos para solicitar as seguintes operações em dispositivos Junos. Por padrão, os módulos executam imediatamente a operação solicitada e executam a operação em todos os mecanismos de roteamento em um mecanismo de roteamento duplo ou configuração do Virtual Chassis.

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

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

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

Os system módulos e juniper_junos_system os módulos exigem um único argumento, actionque define a ação que o módulo executa. A Tabela 2 define o valor do action parâmetro necessário para parar, reiniciar ou desligar um dispositivo e fornece uma breve descrição de cada ação, bem como do comando CLI correspondente. Para obter informações sobre a ação "zeroize" , consulte Use Ansible para restaurar um dispositivo Junos nas configurações de configuração padrão de fábrica.

Tabela 2: Valores dos parâmetros de ação do sistema e juniper_junos_system

Valor do action parâmetro

Descrição

Comando CLI equivalente

"halt"

Desativar graciosamente o software Junos OS, mas manter a potência do sistema

request system halt

"reboot"

Reinicialize o software Junos OS

request system reboot

"shutdown"

Desativar graciosamente o software Junos OS e desligar os mecanismos de roteamento

request system power-off

O manual ansible a seguir usa o system módulo para action: "reboot" reiniciar imediatamente todos os mecanismos de roteamento nos hosts no grupo de inventário especificado.

Como realizar uma parada, reinicialização ou desativação com um atraso ou em um momento especificado

Para atrasar a parada, reiniciar ou desligar a operação em um número especificado de minutos, defina o parâmetro opcional in_min para o número de minutos que o sistema deve esperar antes de executar a operação. A tarefa a seguir solicita uma reinicialização de todos os mecanismos de roteamento em 30 minutos:

Para agendar a parada, reiniciar ou desligar em um momento específico, inclua o at parâmetro, que leva uma string que pode ser especificada de uma das seguintes maneiras:

  • now— Inicie imediatamente a parada, a reinicialização ou a desativação do software.

  • +minutes— Quantidade de minutos a partir de agora, quando a ação solicitada for iniciada.

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

  • hh:mm— Tempo absoluto no dia atual em que iniciar a ação solicitada, especificado em tempo de 24 horas.

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

Como especificar o mecanismo de roteamento alvo

Por padrão, os módulos e juniper_junos_system os system módulos executam 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 os módulos a realizar a operação apenas no Mecanismo de Roteamento ao qual o aplicativo está conectado ou realizar a operação em todos os mecanismos de roteamento, exceto aquele ao qual o aplicativo está conectado.

Para especificar os mecanismos de roteamento, você usa os parâmetros e other_re os all_re parâmetros. A Tabela 3 resume os valores e other_re os all_re que são 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 True

Apenas o mecanismo de roteamento conectado

Definir para False

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

Definir para True

Para indicar explicitamente que a operação deve ser realizada em todos os mecanismos de roteamento em um mecanismo de roteamento duplo ou configuração do Virtual Chassis, inclua o all_re: True argumento, que é o padrão.

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

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

Como reiniciar um host VM

Em dispositivos que têm mecanismos de roteamento com suporte de host VM, o Junos OS funciona como uma máquina virtual (VM) em um host baseado em Linux (host VM). O system suporte e juniper_junos_system os módulos são compatíveis com o vmhost argumento, que permite que você reinicialize um Host VM. Quando você inclui os argumentos e vmhost: True os action: "reboot" argumentos, o sistema reinicia 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.

O manual a seguir realiza um reboot do host VM, que reinicia o SO do host e o Junos OS convidado.

Exemplo: Use Ansible para reiniciar dispositivos Junos

O system módulo da juniper.device coleção permite que você interrompa, reinicialize ou desativar um dispositivo Junos. Este exemplo usa o system módulo para reiniciar um dispositivo Junos.

Requisitos

Este exemplo usa os seguintes componentes de hardware e software:

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

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

  • Par de chave sSH público/privado configurado para o usuário apropriado no nó de controle Ansible e dispositivo Junos

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

Visão geral

Este exemplo apresenta um manual ansible que usa o system módulo para reiniciar 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 reiniciar os dispositivos especificados. Se um usuário executa acidentalmente a cartilha e não houver verificação, isso pode afetar negativamente qualquer rede que exija os dispositivos afetados. Por precaução, este manual usa um prompt interativo para verificar se o usuário pretende reiniciar os dispositivos e exige 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 Ansible ignora as outras tarefas em jogo para esse dispositivo.

Este manual inclui a Checking NETCONF connectivity tarefa, que usa o 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 estabelecer uma sessão netconf com o dispositivo durante a execução de playbook, ele ignora as tarefas restantes em jogo para esse dispositivo.

A tarefa que reinicializa o dispositivo executa o system módulo desde que a confirmação e as verificações netconf foram bem sucedidas. O action argumento é definido para o valor "reboot", o que indica que o software deve ser reiniciado. O in_min: 2 argumento instrui o módulo a esperar pelo número especificado de minutos antes de executar o comando de reinicialização. Isso oferece tempo para qualquer usuário fazer login fora do sistema.

A tarefa armazena o resultado do result módulo na variável e notifica dois manipuladores. O pause_for_reboot manipulador espera um tempo especificado após o início da operação de reinicialização para evitar que o wait_reboot manipulador detecte falsamente que o dispositivo está on-line antes que a reinicialização ocorra. O wait_reboot manipulador então tenta estabelecer uma sessão com o dispositivo para verificar se o dispositivo volta on-line após a reinicialização. A wait_time_after_reboot variável define o tempo em que o nó de controle tenta se reconectar com o dispositivo.

Configuração

Criação e execução do ansible Playbook

Procedimento passo a passo

Para criar um manual que usa o system módulo para reiniciar um dispositivo Junos:

  1. Inclua a placa de caldeira para o manual e esta peça, que executa os módulos localmente.

  2. Definir ou importar quaisquer variáveis necessárias.

  3. Crie um prompt interativo para evitar que os usuários executem acidentalmente o módulo sem antes 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 reiniciar o dispositivo após um número especificado de minutos e depois notificar os manipuladores.

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

  8. Crie o manipulador que faz uma pausa após a reinicialização e o manipulador que verifica se o dispositivo volta on-line após a reinicialização.

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

Resultados

No nó de controle Ansible, revise o manual completo. Se o manual não exibir o código pretendido, repita as instruções neste exemplo para corrigir o manual.

Execute o playbook

Procedimento

Procedimento passo a passo

Para executar o manual:

  • Emita o ansible-playbook comando no nó de controle e forneça o caminho de manual e quaisquer opções desejadas.

Verificação

Verifique a reinicialização

Propósito

Verifique se o dispositivo Junos foi reiniciado com sucesso.

Ação

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

Significado

O wait_reboot resultado indica se o nó de controle estabeleceu com sucesso 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 mudanças

O suporte de recursos é determinado pela plataforma e versão que você está usando. Use o Feature Explorer para determinar se um recurso é suportado em sua plataforma.

Soltar
Descrição
2.0.0
Juniper.junos A partir do lançamento 2.0.0, o juniper_junos_system módulo substitui a funcionalidade do e junos_zeroize dos junos_shutdown módulos.