Junos PyEZ를 사용하여 Junos 디바이스 중단, 재부팅 또는 종료
요약 Junos PyEZ를 사용하여 즉시 또는 특정 시간에 Junos 디바이스를 중단, 재부팅 또는 종료할 수 있습니다.
시스템 중지, 재부팅 또는 종료 수행
Junos PyEZ jnpr.junos.utils.sw.SW
유틸리티는 Junos 디바이스에서 다음 작업을 수행할 수 있는 방법을 제공합니다.
즉각적인 시스템 정지, 재부팅 또는 종료
선택적 지연이 있는 중지, 재부팅 또는 종료 작업
특정 날짜 및 시간에 예약된 중지, 재부팅 또는 종료 작업
표 1 에는 사용 가능한 방법이 요약되어 있습니다. 기본적으로 메서드는 설정의 모든 라우팅 엔진 또는 노드에서 요청된 작업을 즉시 실행합니다. 나중에 작업을 실행하기 위해 추가 인수를 포함할 수 있을 뿐만 아니라 영향을 받는 라우팅 엔진 또는 노드를 지정할 수 있습니다.
메서드 |
설명 |
---|---|
Junos OS 소프트웨어를 정상적으로 종료하지만 시스템 성능은 유지 |
|
Junos OS 소프트웨어를 정상적으로 종료하고 라우팅 엔진의 전원을 끕니다. |
|
Junos OS 소프트웨어 재부팅 |
Junos PyEZ 릴리스 2.1.0 reboot()
부터 및 poweroff()
메서드는 듀얼 라우팅 엔진 또는 버추얼 섀시 설정의 모든 라우팅 엔진에서 요청된 작업을 수행합니다. 이전 릴리스에서 메서드는 애플리케이션이 연결된 라우팅 엔진에서만 작업을 수행합니다.
Junos PyEZ 애플리케이션이 NETCONF-over-SSH 세션 또는 관리 인터페이스를 통해 텔넷 세션에서 디바이스를 재부팅하는 경우, 재부팅 시 애플리케이션과 디바이스의 연결이 끊어집니다. 재부팅 후 애플리케이션이 디바이스에 액세스해야 하는 경우 Junos PyEZ open()
메서드를 발행하여 연결을 복원해야 합니다.
다음 Junos PyEZ 애플리케이션은 Junos 디바이스와 SSH를 통해 NETCONF 세션을 설정하고 모든 라우팅 엔진을 재부팅하며, 이는 즉시 효력을 발휘합니다.
#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)
애플리케이션은 디바이스 호스트 이름 및 사용자 자격 증명을 묻는 메시지를 표시합니다. 시스템 재부팅을 요청한 후 애플리케이션은 재부팅 메시지와 연결된 라우팅 엔진의 프로세스에 대한 프로세스 ID를 표시합니다.
user1@server:~$ python3 junos-pyez-reboot.py Device hostname: dc1a.example.com Device username: user1 Device password: Shutdown NOW! [pid 2358]
다음 Junos PyEZ 예제는 디바이스의 모든 라우팅 엔진을 즉시 종료합니다.
#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)
지연 또는 지정된 시간에 시스템을 중지, 재부팅 또는 종료하는 방법
기본적으로 halt()
, reboot()
및 poweroff()
메서드는 요청된 작업을 즉시 실행합니다. 작업을 지연하거나 특정 날짜 및 시간에 예약할 수도 있습니다.
지정된 시간(분)만큼 작업을 지연하려면 선택적 in_min
매개 변수를 시스템이 작업을 실행하기 전에 대기해야 하는 시간(분)으로 설정합니다. 다음 예에서는 2분 안에 모든 라우팅 엔진의 재부팅을 요청합니다.
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)
대상 디바이스는 시스템에 로그인한 모든 사용자에게 임박한 재부팅에 대한 메시지를 발행합니다. 지정된 시간이 지나면 시스템이 재부팅됩니다.
*** System shutdown message from user1@dc1a *** System going down in 2 minutes
특정 시간에 작업을 예약하려면 다음 방법 중 하나로 지정할 수 있는 문자열을 사용하는 매개 변수를 포함합니다 at
.
now
- 소프트웨어의 중지, 재부팅 또는 종료를 즉시 시작합니다.+minutes
- 지금부터 요청된 작업이 시작되는 시간(분)입니다.yymmddhhmm
- 연산을 수행할 절대 시간으로, 년, 월, 일, 시, 분 등으로 지정됩니다.hh:mm
- 작업을 수행할 현재 날짜의 절대 시간으로, 24시간제로 지정됩니다.
다음 예는 현재 날짜 22:30에 모든 라우팅 엔진의 시스템 재부팅을 예약합니다.
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')
마찬가지로 다음 예에서는 모든 라우팅 엔진이 당일 22:30에 전원이 꺼지도록 예약합니다.
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')
대상 라우팅 엔진, 노드 또는 Virtual Chassis 멤버를 지정하는 방법
기본적으로, halt()
, reboot()
및 poweroff()
메서드는 듀얼 라우팅 엔진 또는 버추얼 섀시 설정의 모든 라우팅 엔진, 진화한 Junos OS를 실행하는 디바이스의 모든 노드 및 버추얼 섀시의 모든 구성원에서 요청된 작업을 수행합니다. 또한 특정 라우팅 엔진, 노드 또는 Virtual Chassis 멤버에서 작업을 수행할 수도 있습니다.
대상 라우팅 엔진을 지정하려면, 및 other_re
매개 변수를 사용합니다all_re
. 표 2 에는 특정 라우팅 엔진에서 all_re
요청된 작업을 실행하는 데 필요한 및 other_re
값이 요약되어 있습니다.
영향을 받는 라우팅 엔진 |
|
|
---|---|---|
모든 라우팅 엔진(기본값) |
생략 또는 설정 |
– |
연결된 라우팅 엔진만 |
로 설정 |
– |
애플리케이션이 연결된 라우팅 엔진을 제외한 모든 라우팅 엔진 |
– |
로 설정 |
듀얼 라우팅 엔진 또는 버추얼 섀시 설정의 모든 라우팅 엔진에서 작업을 수행해야 함을 명시적으로 나타내려면, 기본값인 인수를 포함합니다 all_re=True
.
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)
애플리케이션이 연결된 라우팅 엔진에서만 요청된 작업을 수행하려면 인수를 all_re=False
포함합니다.
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)
애플리케이션이 연결된 라우팅 엔진을 제외하고 시스템의 모든 라우팅 엔진에서 요청된 작업을 수행하려면 인수를 other_re=True
포함합니다.
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)
Junos OS Evolved를 실행하는 디바이스의 특정 노드를 재부팅하거나 종료하려면 인수를 on_node
포함하고 노드를 지정합니다. 예를 들어:
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')
Virtual Chassis에서 특정 멤버를 재부팅하거나 종료하려면 인수를 작업을 수행할 멤버 ID의 문자열 목록으로 설정합니다 member_id
.
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'])
VM 호스트를 재부팅하는 방법
VM 호스트를 지원하는 라우팅 엔진이 있는 디바이스에서 Junos OS는 Linux 기반 호스트(VM 호스트)를 통해 가상 머신(VM)으로 실행됩니다. Junos PyEZ reboot()
메서드는 인수를 vmhost
지원하므로 VM 호스트를 재부팅할 수 있습니다. 인수를 vmhost=True
포함하면 시스템은 운영 모드 명령에 해당하는 RPC를 <request-vmhost-reboot>
실행하여 모든 라우팅 엔진에서 호스트 OS와 호환되는 Junos OS를 재부팅합니다 request vmhost reboot
.
다음 예제에서는 VM 호스트에서 라우팅 엔진을 재부팅하여 게스트 Junos OS와 호스트 OS를 모두 재부팅합니다.
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)
변경 내역 테이블
기능 지원은 사용 중인 플랫폼 및 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.
reboot()
부터 및
poweroff()
메서드는 듀얼 라우팅 엔진 또는 버추얼 섀시 설정의 모든 라우팅 엔진에서 요청된 작업을 수행합니다.