Usar Junos PyEZ para detener, reiniciar o apagar dispositivos Junos
RESUMEN Use Junos PyEZ para detener, reiniciar o apagar dispositivos Junos, ya sea inmediatamente o en un momento específico.
Realizar una detención, reinicio o apagado del sistema
La utilidad Junos PyEZ jnpr.junos.utils.sw.SW
proporciona métodos que permiten realizar las siguientes operaciones en dispositivos Junos:
Una parada, reinicio o apagado inmediato del sistema
Una operación de detención, reinicio o apagado con un retraso opcional
Una operación de detención, reinicio o apagado programada en una fecha y hora específicas
En el cuadro 1 se describen los métodos disponibles. De forma predeterminada, los métodos ejecutan inmediatamente la operación solicitada en todos los nodos o motores de enrutamiento de la configuración. Puede incluir argumentos adicionales para ejecutar la operación más adelante, así como especificar los nodos o motores de enrutamiento afectados.
Método |
Descripción |
---|---|
Apague correctamente el software Junos OS, pero mantenga la alimentación del sistema |
|
Apague correctamente el software Junos OS y apague los motores de enrutamiento |
|
Reinicie el software Junos OS |
A partir de Junos PyEZ versión 2.1.0, los reboot()
métodos y poweroff()
realizan la operación solicitada en todos los motores de enrutamiento en una configuración de motor de enrutamiento dual o chasis virtual. En versiones anteriores, los métodos realizan la operación sólo en el motor de enrutamiento al que está conectada la aplicación.
Si una aplicación de Junos PyEZ reinicia un dispositivo desde una sesión NETCONF-over-SSH o desde una sesión Telnet a través de la interfaz de administración, la aplicación pierde la conectividad con el dispositivo cuando se reinicia. Si la aplicación requiere acceso al dispositivo después del reinicio, debe emitir el método Junos PyEZ open()
para restaurar la conectividad.
La siguiente aplicación Junos PyEZ establece una sesión NETCONF a través de SSH con un dispositivo Junos y reinicia todos los motores de enrutamiento, con efecto inmediato.
#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)
La aplicación solicita el nombre de host del dispositivo y las credenciales de usuario. Después de solicitar el reinicio del sistema, la aplicación muestra el mensaje de reinicio y el ID de proceso para el proceso en el motor de enrutamiento conectado.
user1@server:~$ python3 junos-pyez-reboot.py Device hostname: dc1a.example.com Device username: user1 Device password: Shutdown NOW! [pid 2358]
El siguiente ejemplo de Junos PyEZ apaga todos los motores de enrutamiento del dispositivo, con efecto inmediato.
#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)
Cómo detener, reiniciar o apagar el sistema con un retraso o a una hora especificada
De forma predeterminada, los métodos, reboot()
, halt()
y poweroff()
ejecutan inmediatamente la operación solicitada. También puede retrasar la operación o programarla en una fecha y hora determinadas.
Para retrasar la operación en un número especificado de minutos, establezca el parámetro opcional in_min
en la cantidad de tiempo en minutos que el sistema debe esperar antes de ejecutar la operación. En el ejemplo siguiente se solicita el reinicio de todos los motores de enrutamiento en 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)
El dispositivo de destino emite mensajes sobre el reinicio inminente a cualquier usuario que haya iniciado sesión en el sistema. Una vez transcurrido el tiempo especificado, el sistema se reinicia.
*** System shutdown message from user1@dc1a *** System going down in 2 minutes
Para programar la operación a una hora específica, incluya el at
parámetro, que toma una cadena que se puede especificar de una de las siguientes maneras:
now
: inicie inmediatamente la detención, el reinicio o el apagado del software.+minutes
—Número de minutos a partir de ahora en que se inicie la operación solicitada.yymmddhhmm
: hora absoluta a la que se va a realizar la operación, especificada como año, mes, día, hora y minuto.hh:mm
: hora absoluta del día actual para realizar la operación, especificada en 24 horas.
En el ejemplo siguiente se programa un reinicio del sistema de todos los motores de enrutamiento a las 22:30 del día actual:
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')
De forma similar, en el ejemplo siguiente se programan todos los motores de enrutamiento para que se apaguen a las 22:30 del día actual:
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')
Cómo especificar los motores de enrutamiento, los nodos o los miembros del chasis virtual de destino
De forma predeterminada, los métodos, reboot()
, halt()
y poweroff()
realizan la operación solicitada en todos los motores de enrutamiento en una configuración de motor de enrutamiento dual o de chasis virtual, en todos los nodos de dispositivos que ejecutan Junos OS evolucionado y en todos los miembros de un chasis virtual. También puede realizar la operación en motores de enrutamiento, nodos o miembros de Virtual Chassis específicos.
Para especificar los motores de enrutamiento de destino, utilice los all_re
parámetros yother_re
. En la tabla 2 se resumen los valores y other_re
los all_re
necesarios para ejecutar la operación solicitada en motores de enrutamiento específicos.
Motores de enrutamiento afectados |
|
|
---|---|---|
Todos los motores de enrutamiento (predeterminado) |
Omitir o establecer en |
– |
Solo el motor de enrutamiento conectado |
Establecer en |
– |
Todos los motores de enrutamiento, excepto el motor de enrutamiento al que está conectada la aplicación |
– |
Establecer en |
Para indicar explícitamente que la operación debe realizarse en todos los motores de enrutamiento en una configuración de motor de enrutamiento dual o de chasis virtual, incluya el all_re=True
argumento, que es el valor predeterminado.
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 la operación solicitada solo en el motor de enrutamiento al que está conectada la aplicación, incluya el 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 la operación solicitada en todos los motores de enrutamiento del sistema, excepto en el motor de enrutamiento al que está conectada la aplicación, incluya el 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 o apagar un nodo específico de un dispositivo que ejecuta Junos OS Evolved, incluya el on_node
argumento y especifique el nodo. Por ejemplo:
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 o apagar miembros específicos en un Virtual Chassis, establezca el member_id
argumento en una lista de cadenas de identificadores de miembro en los que realizar la operación.
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'])
Cómo reiniciar un host de máquina virtual
En los dispositivos que tienen motores de enrutamiento compatibles con host de máquina virtual, Junos OS se ejecuta como una máquina virtual (VM) a través de un host basado en Linux (host VM). El método Junos PyEZ reboot()
admite el vmhost
argumento, que permite reiniciar un host de máquina virtual. Cuando se incluye el vmhost=True
argumento, el sistema reinicia el sistema operativo host y Junos OS compatible en todos los motores de enrutamiento mediante la ejecución del <request-vmhost-reboot>
RPC, que corresponde al comando del request vmhost reboot
modo operativo.
En el ejemplo siguiente se reinician los motores de enrutamiento en el host de máquina virtual, que reinicia tanto el sistema operativo Junos invitado como el sistema operativo 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)
Tabla de historial de cambios
La compatibilidad con las funciones viene determinada por la plataforma y la versión que esté utilizando. Utilice el Explorador de características para determinar si una característica es compatible con su plataforma.
reboot()
métodos y
poweroff()
realizan la operación solicitada en todos los motores de enrutamiento en una configuración de motor de enrutamiento dual o chasis virtual.