Use o Junos PyEZ para parar, reiniciar ou desligar dispositivos Junos
RESUMO Use o Junos PyEZ para parar, reiniciar ou desligar dispositivos Junos, seja imediatamente ou em um momento específico.
Execute uma parada de sistema, reinicialização ou desativação
O utilitário Junos PyEZ jnpr.junos.utils.sw.SW
oferece métodos que permitem que você realize as seguintes operações em dispositivos Junos:
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
A Tabela 1 descreve os métodos disponíveis. Por padrão, os métodos executam imediatamente a operação solicitada em todos os mecanismos de roteamento ou nós na configuração. Você pode incluir argumentos adicionais para executar a operação posteriormente, bem como especificar os mecanismos de roteamento ou nós afetados.
Método |
Descrição |
---|---|
Desativar graciosamente o software Junos OS, mas manter a potência do sistema |
|
Desativar graciosamente o software Junos OS e desligar os mecanismos de roteamento |
|
Reinicialize o software Junos OS |
A partir do Junos PyEZ Release 2.1.0, os métodos e poweroff()
os reboot()
métodos executam a operação solicitada em todos os mecanismos de roteamento em um mecanismo de roteamento duplo ou configuração do Virtual Chassis. Em versões anteriores, os métodos executam a operação apenas no Mecanismo de Roteamento ao qual o aplicativo está conectado.
Se um aplicativo Junos PyEZ reiniciar um dispositivo de uma sessão NETCONF-over-SSH ou de uma sessão de Telnet através da interface de gerenciamento, o aplicativo perde a conectividade com o dispositivo quando ele reinicializa. Se o aplicativo exigir acesso ao dispositivo após a reinicialização, ele deve emitir o método Junos PyEZ open()
para restaurar a conectividade.
O aplicativo Junos PyEZ a seguir estabelece uma sessão NETCONF sobre SSH com um dispositivo Junos e reinicia todos os mecanismos de roteamento, com eficácia imediata.
#Python 3 from jnpr.junos import Device from jnpr.junos.utils.sw import SW from jnpr.junos.exception import ConnectError from getpass import getpass hostname = input("Device hostname: ") username = input("Device username: ") password = getpass("Device password: ") try: with Device(host=hostname, user=username, passwd=password) as dev: sw = SW(dev) print(sw.reboot()) except ConnectError as err: print (err)
O aplicativo solicita o nome de host do dispositivo e as credenciais do usuário. Após solicitar a reinicialização do sistema, o aplicativo exibe a mensagem de reinicialização e a ID do processo para o processo no mecanismo de roteamento conectado.
user1@server:~$ python3 junos-pyez-reboot.py Device hostname: dc1a.example.com Device username: user1 Device password: Shutdown NOW! [pid 2358]
O exemplo do Junos PyEZ a seguir desativa todos os mecanismos de roteamento do dispositivo, com efeito imediato.
#Python 3 from jnpr.junos import Device from jnpr.junos.utils.sw import SW from jnpr.junos.exception import ConnectError from getpass import getpass hostname = input("Device hostname: ") username = input("Device username: ") password = getpass("Device password: ") try: with Device(host=hostname, user=username, passwd=password) as dev: sw = SW(dev) print(sw.poweroff()) except ConnectError as err: print (err)
Como parar, reiniciar ou desativar o sistema com um atraso ou em um momento específico
Por padrão, a e reboot()
poweroff()
os halt()
métodos executam imediatamente a operação solicitada. Você também pode atrasar a operação ou agende-a em uma data e hora específicas.
Para atrasar a operação em um número especificado de minutos, defina o parâmetro opcional in_min
para a quantidade de tempo em minutos que o sistema deve esperar antes de executar a operação. O exemplo a seguir solicita uma reinicialização de todos os mecanismos de roteamento em 2 minutos:
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='dc1a.example.com') as dev: sw = SW(dev) sw.reboot(in_min=2)
O dispositivo alvo emite mensagens sobre a reinicialização iminente para qualquer usuário logado no sistema. Depois que o tempo especificado tiver passado, o sistema reinicia.
*** System shutdown message from user1@dc1a *** System going down in 2 minutes
Para agendar a operação 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 operação solicitada for iniciada.yymmddhhmm
— Tempo absoluto para realizar a operação, especificado como ano, mês, dia, hora e minuto.hh:mm
— Tempo absoluto no dia atual em que realizar a operação, especificado em tempo de 24 horas.
O exemplo a seguir agenda um reboot do sistema de todos os mecanismos de roteamento às 22:30 do dia atual:
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='dc1a.example.com') as dev: sw = SW(dev) sw.reboot(at='22:30')
Da mesma forma, o exemplo a seguir agenda todos os mecanismos de roteamento para desligar às 22:30 do dia atual:
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='dc1a.example.com') as dev: sw = SW(dev) sw.poweroff(at='22:30')
Como especificar os mecanismos de roteamento alvo, nós ou membros do Virtual Chassis
Por padrão, os halt()
, reboot()
e poweroff()
métodos executam a operação solicitada em todos os mecanismos de roteamento em uma configuração de mecanismo de roteamento duplo ou Virtual Chassis, em todos os nós em dispositivos que executam o Junos OS Evolved, e em todos os membros de um Virtual Chassis. Você também pode realizar a operação em mecanismos de roteamento específicos, nós ou membros do Virtual Chassis.
Para especificar os mecanismos de roteamento direcionados, você usa os parâmetros e other_re
os all_re
parâmetros. A Tabela 2 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.
Mecanismos de roteamento afetados |
|
|
---|---|---|
Todos os mecanismos de roteamento (padrão) |
Omitir ou definir |
– |
Apenas o mecanismo de roteamento conectado |
Definir para |
– |
Todos os mecanismos de roteamento, exceto o mecanismo de roteamento ao qual o aplicativo está conectado |
– |
Definir para |
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.
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='dc1a.example.com') as dev: sw = SW(dev) sw.reboot(all_re=True)
Para realizar a operação solicitada apenas no mecanismo de roteamento ao qual o aplicativo está conectado, inclua o all_re=False
argumento.
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='dc1a.example.com') as dev: sw = SW(dev) sw.reboot(all_re=False)
Para realizar a operaçã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.
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='dc1a.example.com') as dev: sw = SW(dev) sw.reboot(other_re=True)
Para reiniciar ou desligar um nó específico de um dispositivo que executa o Junos OS Evolved, inclua o on_node
argumento e especifique o nó. Por exemplo:
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='router1.example.com') as dev: sw = SW(dev) sw.reboot(on_node='re0')
Para reiniciar ou desativar membros específicos em um Virtual Chassis, configure o member_id
argumento para uma lista de strings dos IDs dos membros nos quais realizar a operação.
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='switch1.example.com') as dev: sw = SW(dev) sw.reboot(all_re=False, member_id=['0', '1'])
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 método Junos PyEZ reboot()
oferece suporte ao vmhost
argumento, que permite que você reinicialize um Host VM. Quando você inclui o vmhost=True
argumento, 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.
O exemplo a seguir reinicializa os Mecanismos de Roteamento no Host VM, que reinicia o Junos OS convidado e o so host.
from jnpr.junos import Device from jnpr.junos.utils.sw import SW with Device(host='switch1.example.net') as dev: sw = SW(dev) sw.reboot(vmhost=True)
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.
poweroff()
os
reboot()
métodos executam a operação solicitada em todos os mecanismos de roteamento em um mecanismo de roteamento duplo ou configuração do Virtual Chassis.