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을 사용하여 디바이스 중지, 재부팅 또는 종료

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

표 1: 장치를 중지, 재부팅 또는 종료하는 모듈

콘텐츠 세트

모듈 이름

juniper.device 수집

system

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

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

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

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

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

표 2: 작업 매개 변수 값

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에 모든 라우팅 엔진의 시스템 종료를 예약합니다.

대상 라우팅 엔진 지정 방법

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

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

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

영향을 받는 라우팅 엔진

all_re 매개 변수

other_re 매개 변수

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

생략 또는 설정 true

연결된 라우팅 엔진만

로 설정 false

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

로 설정 true

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

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

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

VM 호스트를 재부팅하거나 종료하는 방법

VM 호스트를 지원하는 라우팅 엔진이 있는 디바이스에서 Junos OS는 Linux 기반 호스트(VM 호스트)를 통해 가상 머신(VM)으로 실행됩니다. 이 모듈은 system VM 호스트를 vmhost 재부팅하거나 종료할 수 있는 인수를 지원합니다.

및 인수를 action: "reboot" 포함하면 시스템은 작동 모드 명령에 해당하는 RPC를 <request-vmhost-reboot> 실행하여 모든 라우팅 엔진에서 호스트 OS 및 호환되는 Junos OS를 재부팅합니다request vmhost reboot.vmhost: true

마찬가지로, 및 인수를 action: "shutdown" 포함하면 시스템은 작동 모드 명령에 해당하는 RPC를 <request-vmhost-poweroff> 실행하여 모든 라우팅 엔진에서 호스트 OS 및 호환 Junos OS를 종료합니다request vmhost power-off.vmhost: true

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

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

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

요구 사항

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

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

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

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

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

개요

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

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

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

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

작업은 모듈 결과를 변수에 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 재부팅된 후 디바이스와의 세션을 성공적으로 설정했는지 여부를 나타냅니다. 결과가 성공을 나타내면 장치가 온라인 상태입니다.

변경 내역 표

기능 지원은 사용 중인 플랫폼과 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인하세요.

석방
묘사
1.0.3
juniper.device 컬렉션 릴리스 1.0.3부터 모듈은 system VM 호스트 종료를 지원합니다.