Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ansible을 사용하여 Junos 디바이스 중단, 재부팅 또는 종료

요약 주니퍼 네트웍스 Ansible 모듈을 사용하여 Junos 디바이스를 중단, 재부팅 또는 종료할 수 있습니다.

Ansible을 사용하여 디바이스 중지, 재부팅 또는 종료

주니퍼 네트웍스는 Ansible을 사용한 Junos 디바이스 관리를 지원하며, 디바이스를 중단, 재부팅 또는 종료할 수 있는 Ansible 모듈을 제공합니다. 표 1 에는 사용 가능한 모듈이 요약되어 있습니다.

표 1: 디바이스를 중지, 재부팅 또는 종료하는 모듈

콘텐츠 집합

모듈 이름

juniper.device 컬렉션

system

Juniper.junos 역할

juniper_junos_system

참고:

릴리스 2.0.0부터 Juniper.junos 모듈은 및 junos_zeroize 모듈의 기능을 대체합니다junos_shutdown.juniper_junos_system

모듈을 사용하여 Junos 디바이스에서 다음 작업을 요청할 수 있습니다. 기본적으로 모듈은 요청된 작업을 즉시 실행하고 듀얼 라우팅 엔진 또는 Virtual Chassis 설정의 모든 라우팅 엔진에서 작업을 수행합니다.

  • 즉각적인 시스템 정지, 재부팅 또는 종료

  • 선택적 지연이 있는 중지, 재부팅 또는 종료 작업

  • 특정 날짜 및 시간에 예약된 중지, 재부팅 또는 종료 작업

juniper_junos_system 모듈에는 system 모듈이 수행하는 작업을 정의하는 하나의 인수action가 필요합니다. 표 2 는 디바이스를 중지, 재부팅 또는 종료하는 데 필요한 파라미터 값을 정의 action 하고 각 작업에 대한 간략한 설명과 해당 CLI 명령을 제공합니다. 작업에 대한 "zeroize" 자세한 내용은 Ansible을 사용하여 Junos 디바이스를 공장 기본 구성 설정으로 복원을 참조하십시오.

표 2: 시스템 및 juniper_junos_system 작업 매개 변수 값

action 매개변수 값

설명

동등한 CLI 명령

"halt"

Junos OS 소프트웨어를 정상적으로 종료하지만 시스템 성능은 유지

request system halt

"reboot"

Junos OS 소프트웨어 재부팅

request system reboot

"shutdown"

Junos OS 소프트웨어를 정상적으로 종료하고 라우팅 엔진의 전원을 끕니다.

request system power-off

다음 Ansible 플레이북은 system 와 함께 action: "reboot" 모듈을 사용하여 지정된 인벤토리 그룹의 호스트에 있는 모든 라우팅 엔진을 즉시 재부팅합니다.

지연 또는 지정된 시간에 중지, 재부팅 또는 종료를 수행하는 방법

중지, 재부팅 또는 종료 작업을 지정된 시간(분)만큼 지연하려면 선택적 in_min 매개 변수를 시스템이 작업을 실행하기 전에 대기해야 하는 시간(분)으로 설정합니다. 다음 작업은 30분 내에 모든 라우팅 엔진의 재부팅을 요청합니다.

특정 시간에 중지, 재부팅 또는 종료를 예약하려면 다음 방법 중 하나로 지정할 수 있는 문자열을 사용하는 매개 변수를 포함합니다 at .

  • now- 소프트웨어의 중지, 재부팅 또는 종료를 즉시 시작합니다.

  • +minutes- 지금부터 요청된 작업이 시작된 시간(분)입니다.

  • yymmddhhmm- 요청된 작업을 시작할 절대 시간으로, 년, 월, 일, 시, 분 단위로 지정됩니다.

  • hh:mm- 요청된 작업을 시작할 현재 날짜의 절대 시간으로, 24시간 시간으로 지정됩니다.

다음 작업은 현재 날짜 22:30에 모든 라우팅 엔진의 시스템 종료를 예약합니다.

대상 라우팅 엔진 지정 방법

기본적으로 systemjuniper_junos_system 모듈은 듀얼 라우팅 엔진 또는 버추얼 섀시 설정의 모든 라우팅 엔진에서 요청된 작업을 수행합니다. 또한 모듈이 애플리케이션이 연결된 라우팅 엔진에서만 작업을 수행하거나 애플리케이션이 연결된 라우팅 엔진을 제외한 모든 라우팅 엔진에서 작업을 수행하도록 지시할 수 있습니다.

라우팅 엔진을 지정하려면 및 other_re 매개 변수를 사용합니다all_re. 표 3 에는 특정 라우팅 엔진에서 all_re 요청된 작업을 실행하는 데 필요한 및 other_re 값이 요약되어 있습니다.

표 3: 라우팅 엔진 지정을 위한 매개 변수

영향을 받는 라우팅 엔진

all_re 매개 변수

other_re 매개 변수

모든 라우팅 엔진(기본값)

생략 또는 설정 True

연결된 라우팅 엔진만

로 설정 False

애플리케이션이 연결된 라우팅 엔진을 제외한 모든 라우팅 엔진

로 설정 True

듀얼 라우팅 엔진 또는 버추얼 섀시 설정의 모든 라우팅 엔진에서 작업을 수행해야 함을 명시적으로 나타내려면, 기본값인 인수를 포함합니다 all_re: True .

애플리케이션이 연결된 라우팅 엔진에서만 요청된 작업을 수행하려면 인수를 all_re: False 포함합니다.

애플리케이션이 연결된 라우팅 엔진을 제외한 시스템의 모든 라우팅 엔진에서 요청된 작업을 수행하려면 인수를 other_re: True 포함합니다.

VM 호스트를 재부팅하는 방법

VM 호스트를 지원하는 라우팅 엔진이 있는 디바이스에서 Junos OS는 Linux 기반 호스트(VM 호스트)를 통해 가상 머신(VM)으로 실행됩니다. systemjuniper_junos_system 모듈은 VM 호스트를 재부팅할 수 있는 인수를 지원합니다vmhost. 및 인수를 포함하면 시스템은 운영 모드 명령에 해당하는 RPC를 실행하여 모든 라우팅 엔진에서 호스트 OS 및 vmhost: True 호환 Junos OS를 request vmhost reboot action: "reboot" <request-vmhost-reboot> 재부팅합니다.

다음 플레이북은 VM 호스트 재부팅을 수행하여 호스트 OS와 게스트 Junos OS를 모두 재부팅합니다.

예: Ansible을 사용하여 Junos 디바이스 재부팅

system 컬렉션의 juniper.device 모듈을 사용하여 Junos 디바이스를 중단, 재부팅 또는 종료할 수 있습니다. 이 예에서는 모듈을 사용하여 system Junos 디바이스를 재부팅합니다.

요구 사항

이 예에서 사용되는 하드웨어 및 소프트웨어 구성 요소는 다음과 같습니다.

  • 컬렉션이 juniper.device 설치된 Ansible 2.10 이상을 실행하는 구성 관리 서버

  • NETCONF가 활성화된 Junos 디바이스 및 적절한 권한으로 구성된 사용자 계정

  • Ansible 제어 노드 및 Junos 디바이스에서 해당 사용자에 대해 구성된 SSH 퍼블릭/프라이빗 키 쌍

  • 필수 호스트가 정의된 기존 Ansible 인벤토리 파일

개요

이 예에서는 모듈을 사용하여 system Junos 디바이스를 재부팅하는 Ansible 플레이북을 보여줍니다. 모듈의 action 인수 값은 호스트에서 실행할 작업을 정의합니다.

플레이북에서 모듈을 호출할 때 대화형 프롬프트를 사용하여 사용자가 지정된 디바이스를 재부팅할 것인지 확인하는 것이 좋습니다. 사용자가 의도치 않게 플레이북을 실행하고 확인이 없으면 영향을 받는 디바이스가 필요한 모든 네트워크에 부정적인 영향을 미칠 수 있습니다. 예방 조치로 이 플레이북은 대화형 프롬프트를 사용하여 사용자가 디바이스를 재부팅할 것인지 확인하고 사용자가 모듈을 실행하려면 명령줄에 'yes'를 수동으로 입력해야 합니다. Confirmation check 작업이 실패하면 Ansible 제어 노드는 해당 디바이스에 대한 플레이 중인 다른 작업을 건너뜁니다.

이 플레이북에는 Checking NETCONF connectivity 기본 NETCONF 포트 830을 사용하여 Junos 디바이스와 NETCONF 세션을 설정하기 위해 모듈을 활용하는 wait_for 작업이 포함되어 있습니다. 제어 노드가 플레이북 실행 중에 디바이스와의 NETCONF 세션을 설정하지 못하면 해당 디바이스에 대한 플레이의 나머지 작업을 건너뜁니다.

디바이스를 재부팅하는 작업은 확인 및 NETCONF 검사가 system 성공적이었다면 모듈을 실행합니다. 인수는 action 소프트웨어 재부팅을 의미함을 나타내는 값으로 "reboot"설정됩니다. 인수는 in_min: 2 재부팅 명령을 실행하기 전에 지정된 시간(분) 동안 모듈에 대기하도록 지시합니다. 이렇게 하면 모든 사용자가 시스템에서 로그아웃할 수 있는 시간이 제공됩니다.

작업은 모듈 결과를 result 변수에 저장하고 두 처리기에 알립니다. 처리기는 pause_for_reboot 다시 부팅 작업이 시작된 후 지정된 시간 동안 대기하여 다시 부팅이 발생하기 전에 처리기가 디바이스가 온라인 상태임을 잘못 감지하지 못하도록 wait_reboot 합니다. 그런 다음 처리기는 wait_reboot 디바이스와 세션을 설정하여 재부팅 후 디바이스가 다시 온라인 상태가 되는지 확인합니다. 변수는 wait_time_after_reboot 제어 노드가 디바이스와 재연결을 시도하는 시간을 정의합니다.

구성

Ansible 플레이북 생성 및 실행

단계별 절차

모듈을 사용하여 system Junos 디바이스를 재부팅하는 플레이북을 생성하려면 다음을 수행합니다.

  1. 플레이북에 대한 상용구와 모듈을 로컬에서 실행하는 이 플레이를 포함합니다.

  2. 필요한 변수를 정의하거나 가져옵니다.

  3. 사용자가 의미를 먼저 이해하지 못한 채 실수로 모듈을 실행하는 것을 방지하기 위해 대화형 프롬프트를 만듭니다.

  4. 사용자의 의도를 확인하는 작업을 만듭니다.

  5. (선택 사항) NETCONF 연결을 확인하는 작업을 생성합니다.

  6. 지정된 시간(분) 후에 디바이스를 다시 부팅한 다음 처리기에 알리는 작업을 만듭니다.

  7. (선택 사항) 응답을 인쇄할 작업을 만듭니다.

  8. 재부팅 후 일시 중지되는 처리기와 재부팅 후 디바이스가 다시 온라인 상태가 되는지 확인하는 처리기를 만듭니다.

    처리기 이름은 재부팅 작업에서 참조되는 이름과 동일해야 합니다.

결과

Ansible 제어 노드에서 완료된 플레이북을 검토합니다. 플레이북에 의도한 코드가 표시되지 않으면 이 예제의 지침을 반복하여 플레이북을 수정하십시오.

플레이북 실행

절차

단계별 절차

플레이북을 실행하려면:

  • ansible-playbook 제어 노드에서 명령을 실행하고 플레이북 경로와 원하는 옵션을 제공합니다.

확인

재부팅 확인

목적

Junos 디바이스가 성공적으로 재부팅되었는지 확인합니다.

작업

플레이북을 실행할 때 각 디바이스에 대한 작업 출력을 wait_reboot 검토합니다.

의미

wait_reboot 결과는 제어 노드가 재부팅 후 디바이스와의 세션을 성공적으로 설정했는지 여부를 나타냅니다. 결과가 성공을 나타내면 디바이스가 온라인 상태입니다.

릴리스 기록 테이블
릴리스
설명
2.0.0
릴리스 2.0.0부터 Juniper.junos 모듈은 및 junos_zeroize 모듈의 기능을 대체합니다 junos_shutdown. juniper_junos_system