Ansible을 사용하여 Junos 디바이스에 소프트웨어 설치
요약 주니퍼 네트웍스 Ansible 모듈을 사용하여 Junos 디바이스에 소프트웨어를 설치합니다.
Ansible을 사용하여 소프트웨어 설치
주니퍼 네트웍스는 Ansible을 사용한 Junos 디바이스 관리를 지원하며, 디바이스에 소프트웨어 이미지를 설치하거나 업그레이드할 수 있는 모듈을 제공합니다. 표 1 에는 모듈이 요약되어 있습니다.
콘텐츠 집합 |
모듈 이름 |
---|---|
릴리스 2.0.0 juniper_junos_software
부터 Juniper.junos
모듈은 모듈의 기능을 대체합니다junos_install_os
.
다음 섹션에서는 모듈을 사용하여 Junos 디바이스에 소프트웨어 패키지를 설치할 때 소프트웨어 이미지 위치와 일반 소프트웨어 설치 프로세스 및 옵션을 지정하는 방법에 대해 설명합니다. 또한 이러한 기능을 지원하는 디바이스에서 VM 호스트 업그레이드, 통합 ISSU(In-Service Software Upgrade) 또는 NSSU(Nonstop Software Upgrade)와 같은 보다 전문화된 업그레이드 시나리오를 수행하는 방법에 대해서도 설명합니다.
소프트웨어 이미지 위치 지정 방법
또는 juniper_junos_software
모듈을 사용하여 software
Junos 디바이스에 소프트웨어를 설치할 때 소프트웨어 패키지를 Ansible 제어 노드에 다운로드할 수 있으며, 모듈은 기본적으로 설치를 수행하기 전에 패키지를 대상 디바이스에 복사합니다. 혼합 Virtual Chassis 환경의 경우 패키지가 Ansible 제어 노드에 상주해야 합니다. 독립형 디바이스 또는 비혼합 Virtual Chassis 환경의 경우, 이미 대상 Junos 디바이스에 상주하거나 대상 디바이스에서 연결할 수 있는 URL에 상주하는 소프트웨어 이미지를 설치하도록 모듈에 지시할 수도 있습니다.
표 2에서는 소프트웨어 패키지 위치에 따라 설정해야 하는 모듈 인수를 간략하게 설명합니다. 모듈에는 항상 , pkg_set
또는 remote_package
인수가 local_package
포함되어야 합니다. 인수의 no_copy
기본값은 로 설정false
되며, 이는 모듈이 제어 노드의 지정된 위치에서 대상 디바이스로 소프트웨어 패키지를 복사하도록 지시합니다.
소프트웨어 패키지 위치 |
|
|
|
---|---|---|---|
Ansible 제어 노드 |
생략 또는 설정 |
독립형 디바이스 또는 비혼합 Virtual Chassis 환경의 경우: 로컬 제어 노드에 있는 소프트웨어 패키지의 파일 경로(파일 이름 포함)로 설정합니다 |
(선택 사항) 소프트웨어 패키지가 복사되는 대상 장치의 파일 경로입니다. 기본 디렉토리는 /var/tmp입니다. 파일 이름이 포함되어 있는 경우 |
혼합 Virtual Chassis 환경의 경우: 로컬 제어 노드에 있는 하나 이상의 소프트웨어 패키지의 파일 이름을 포함한 파일 경로 목록으로 설정합니다 |
– |
||
원격 위치 |
– |
– |
소프트웨어 패키지가 설치된 대상 Junos 디바이스의 관점에서의 URL입니다. |
대상 장치 |
로 설정 |
– |
소프트웨어 패키지가 이미 상주해야 하는 대상 장치의 파일 경로입니다. 기본 디렉토리는 /var/tmp입니다. |
소프트웨어 패키지가 Ansible 제어 노드에 상주하는 경우, 독립형 Junos 디바이스 또는 비혼합 Virtual Chassis의 멤버에 소프트웨어를 설치하기 위한 인수를 포함 local_package
하거나 혼합 Virtual Chassis의 멤버에 소프트웨어를 설치하기 위한 인수를 pkg_set
포함합니다. module 인수는 로컬 제어 노드의 소프트웨어 패키지 또는 패키지에 대한 절대 또는 상대 파일 경로를 지정합니다.
인수는 local_package
소프트웨어 이미지 경로를 지정하는 단일 문자열입니다. 인수에는 pkg_set
다양한 Virtual Chassis 멤버에 대해 특별한 순서 없이 필요한 소프트웨어 이미지 경로를 지정하는 문자열 목록이 포함되어 있습니다. 예를 들어:
pkg_set: - 'software/jinstall-qfx-5-13.2X51-D35.3-domestic-signed.tgz' - 'software/jinstall-ex-4300-13.2X51-D35.3-domestic-signed.tgz'
기본적으로 또는 pkg_set
인수를 local_package
포함하면 모듈은 모든 소프트웨어 패키지를 대상 Junos 디바이스(개별 디바이스 또는 Virtual Chassis 기본 디바이스)의 /var/tmp 디렉터리에 복사합니다. 이미지를 다른 디렉터리에 복사 local_package
하려면 인수를 remote_package
정의하고 대상 디렉터리를 지정합니다. 인수에 remote_package
파일 이름이 포함된 경우 및 remote_package
인수의 local_package
파일 이름이 동일해야 하며, 그렇지 않으면 모듈에서 오류가 발생합니다.
소프트웨어 패키지가 이미 대상 Junos 디바이스에 상주하는 경우, 모듈은 대상 디바이스에 있는 기존 소프트웨어 패키지의 파일 경로를 지정하는 인수와 함께 인수 remote_package
를 포함해야 no_copy: True
합니다. remote_package
디렉토리를 지정하지 않으면 기본값은 /var/tmp입니다.
소프트웨어 패키지가 Ansible 제어 노드 또는 대상 디바이스 이외의 위치에 상주하는 경우 모듈은 인수를 remote_package
포함하고 소프트웨어 패키지의 위치를 지정해야 합니다. 의 remote_package
값은 대상 Junos 디바이스의 관점에서 본 URL입니다. 허용되는 URL 형식에 대한 자세한 내용은 Junos OS CLI 명령에서 파일 이름 및 URL 지정 형식을 참조하십시오.
설치 과정 개요
Ansible을 사용하여 Junos 디바이스에 소프트웨어 패키지를 설치하려면 또는 juniper_junos_software
모듈을 실행하고 software
필요한 인수를 제공합니다. 예를 들어:
--- - name: Perform a Junos OS software upgrade hosts: dc1 connection: local gather_facts: no tasks: - name: Upgrade Junos OS juniper.device.software: local_package: "software/jinstall-ppc-17.3R1.10-signed.tgz" no_copy: false validate: True register: response - name: Print the response debug: var: response
또는 juniper_junos_software
모듈을 실행하면 software
다음 작업이 수행됩니다.
소프트웨어 패키지가 대상 장치에 있으면 처음에 다운로드되었는지 또는 모듈에 의해 복사되었는지 여부에 관계없이 모듈은 다음 작업을 수행합니다.
매개 변수가 로 설정된 경우 새 패키지에 대해 구성의
validate
유효성을 검사합니다true
.메모:기본적으로
software
및juniper_junos_software
모듈은 소프트웨어 패키지를 추가하기 위한 전제 조건으로 기존 구성에 대해 소프트웨어 패키지 또는 번들을 검증하지 않습니다. 활성 구성이 새 소프트웨어 이미지에서 작동하도록 하려면 인수를validate
로true
설정합니다.이(가) 로 설정되지 않는 한
all_re
각 개별 라우팅 엔진에false
패키지를 설치합니다.인수가
reboot
로 설정되지 않는 한 업그레이드된 각 라우팅 엔진을 재부팅합니다false
.
software
및 juniper_junos_software
모듈을 사용하면 module 인수를 포함하여 설치 진행률을 기록할 수 있습니다logfile
. 기본적으로 심각도 수준 WARNING 이상의 메시지만 기록됩니다. 일반 설치 프로세스에 대한 메시지를 기록하는 데 필요한 심각도 수준 INFO 이상의 메시지를 기록하려면 또는 --verbose
명령줄 옵션을 사용하여 -v
플레이북을 실행합니다.
시간 제한 값을 지정하는 방법
주니퍼 네트웍스 소프트웨어 모듈은 NETCONF 세션을 통해 작업을 수행합니다. NETCONF RPC의 시간 초과에 대한 기본 시간은 30초입니다. 설치 프로세스 중에 특정 작업은 다음과 같이 RPC 시간 제한 간격을 늘립니다.
-
디바이스에 패키지 복사 및 설치 - 1800초(30분)
-
체크섬 계산 - 300초(5분)
-
저장소 정리 수행 - 300초(5분)
경우에 따라 설치 프로세스, 체크섬 계산 또는 스토리지 정리가 이러한 시간 간격을 초과할 수 있습니다. , checksum_timeout
, cleanfs_timeout
인수를 모듈의 인수 목록에서 필요한 시간(초)으로 설정하여 install_timeout
이러한 작업에 대한 시간 제한 값을 변경할 수 있습니다. 예를 들어:
- name: Upgrade Junos OS juniper.device.software: local_package: "software/jinstall-ppc-17.3R1.10-signed.tgz" validate: True install_timeout: 2000 checksum_timeout: 420 cleanfs_timeout: 600
해당하는 모듈 인수가 없는 설치 옵션을 지정하는 방법
또는 모듈을 사용하여 software
디바이스에 소프트웨어를 설치할 때 모듈은 주어진 설치 인수에 대해 적절한 RPC를 호출합니다(예: <request-package-add>
표준 Junos OS 설치용 RPC, <request-vmhost-package-add>
VM 호스트 업그레이드용 RPC, <request-package-in-service-upgrade>
통합 ISSU 시나리오용 RPC juniper_junos_software
등). 모듈은 많은 설치 옵션(예: 옵션)에 대한 명시적 인수를 validate
지원합니다. 모듈은 또한 인수를 kwargs
지원하므로 RPC에서 지원되지만 동등한 모듈 인수가 없는 추가 옵션을 포함할 수 있습니다. 인수는 지원되는 추가 옵션의 키/값 쌍 사전을 kwargs
사용합니다.
모듈에서 지원하는 현재 옵션 목록은 해당 모듈에 대한 API 참조 설명서를 참조하세요. 특정 RPC에 대해 사용 가능한 모든 옵션 목록은 해당 명령에 대한 설명서를 참조하거나 Junos XML API Explorer에서 RPC의 요청 태그를 검색하십시오.
모듈에는 대상 Junos 디바이스에서 지원되는 설치 옵션만 포함되어야 합니다.
다음 플레이북 software
에서 모듈은 대상 호스트에 새 소프트웨어 이미지를 설치합니다. 이 모듈에는 의 인수가 kwargs
포함되어 있습니다unlink: True
. 업그레이드에 성공한 후 디렉터리에서 소프트웨어 패키지를 제거하는 이 인수는 RPC에 <request-package-add>
옵션을 포함하는 <unlink/>
것과 같습니다.
--- - name: Perform a Junos OS software upgrade hosts: router1 connection: local gather_facts: no tasks: - name: Upgrade Junos OS juniper.device.software: local_package: "software/jinstall-ppc-17.3R1.10-signed.tgz" kwargs: unlink: True register: response - name: Print the response debug: var: response
VM 호스트 업그레이드를 수행하는 방법
VM 호스트를 지원하는 라우팅 엔진이 있는 디바이스에서 Junos OS는 Linux 기반 호스트(VM 호스트)를 통해 가상 머신(VM)으로 실행됩니다. 호스트 OS 및 호환 Junos OS를 업그레이드하는 VM 호스트 업그레이드에는 VM 호스트 설치 패키지(junos-vmhost-install-x.tgz)가 필요하며 RPC에 <request-vmhost-package-add>
해당하는 운영 모드 명령을 사용하여 request vmhost software add
수행됩니다.
software
및 juniper_junos_software
모듈은 VM 호스트 업그레이드를 수행하기 위한 인수를 지원합니다vmhost: True
. 인수가 있는 경우 모듈은 RPC를 <request-vmhost-package-add>
사용하여 설치를 수행합니다.
다음 플레이북은 디바이스에서 Junos OS 및 호스트 OS를 업그레이드하고 재부팅합니다.
--- - name: Upgrade VM Hosts hosts: vm_hosts connection: local gather_facts: no tasks: - name: Perform a VM host upgrade juniper.device.software: local_package: "junos-vmhost-install-qfx-x86-64-18.1R1.9.tgz" vmhost: True register: response - name: Print the response debug: var: response
통합 ISSU 또는 NSSU 수행 방법
software
및 juniper_junos_software
모듈은 기능을 지원하고 필요한 요구 사항을 충족하는 디바이스에서 통합 ISSU(In-Service Software Upgrade) 또는 NSSU(Nonstop Software Upgrade) 수행을 지원합니다. 통합 ISSU 및 NSSU 기능에 대한 자세한 내용은 해당 제품의 소프트웨어 설명서를 참조하십시오.
통합 ISSU 기능을 사용하면 컨트롤 플레인에서 중단 없이 트래픽 중단을 최소화하면서 두 개의 서로 다른 Junos OS 릴리스 간에 업그레이드할 수 있습니다. 통합 서비스 중인 소프트웨어 업그레이드를 수행하려면 또는 juniper_junos_software
모듈에 software
인수가 issu: True
포함되어야 합니다. 예를 들어:
--- - name: Perform a Junos OS software upgrade hosts: mx1 connection: local gather_facts: no tasks: - name: Perform a unified ISSU juniper.device.software: local_package: "junos-install-mx-x86-64-17.2R1.13.tgz" issu: True register: response - name: Print the response debug: var: response
NSSU 기능을 사용하면 네트워크 트래픽의 중단을 최소화하면서 중복 라우팅 엔진이 있는 스위치 또는 Virtual Chassis에서 실행되는 Junos OS 소프트웨어를 업그레이드할 수 있습니다. 논스톱 소프트웨어 업그레이드를 수행하려면 또는 juniper_junos_software
모듈에 software
인수가 nssu: True
포함되어야 합니다. 예를 들어:
--- - name: Perform a Junos OS software upgrade hosts: ex1 connection: local gather_facts: no tasks: - name: Perform an NSSU juniper.device.software: local_package: "jinstall-ex-4300–17.3R1.10-signed.tgz" nssu: True register: response - name: Print the response debug: var: response
예: Ansible을 사용하여 소프트웨어 설치
이 예제에서는 컬렉션의 software
juniper.device
모듈을 사용하여 Junos 디바이스에 소프트웨어 이미지를 설치합니다.
요구 사항
이 예에서 사용되는 하드웨어 및 소프트웨어 구성 요소는 다음과 같습니다.
-
컬렉션이
juniper.device
설치된 Ansible 2.10 이상을 실행하는 구성 관리 서버 -
NETCONF가 활성화된 Junos 디바이스 및 적절한 권한으로 구성된 사용자 계정
-
Ansible 제어 노드 및 Junos 디바이스에서 해당 사용자에 대해 구성된 SSH 퍼블릭/프라이빗 키 쌍
-
필수 호스트가 정의된 기존 Ansible 인벤토리 파일
개요
이 예에서는 모듈을 사용하여 software
지정된 인벤토리 그룹의 호스트에서 Junos OS를 업그레이드하는 Ansible 플레이북을 제시합니다. 이 예에서 소프트웨어 이미지는 Ansible 제어 노드에 상주하며, 모듈은 이미지를 설치하기 전에 대상 디바이스에 복사합니다. 모듈은 인수를 host
명시적으로 정의하지 않으므로 모듈은 기본 호스트인 {{ inventory_hostname }}
에서 작동합니다.
이 플레이북에는 Checking NETCONF connectivity
기본 NETCONF 포트 830을 사용하여 Junos 디바이스와 NETCONF 세션을 설정하기 위해 모듈을 활용하는 wait_for
작업이 포함되어 있습니다. 제어 노드가 플레이북 실행 중에 디바이스와 NETCONF 세션을 설정하지 못하면 해당 디바이스에 대한 플레이의 나머지 작업을 건너뜁니다.
이 작업은 NETCONF 검사가 Install Junos OS package
software
성공한 경우 모듈을 실행합니다. 인수는 version
Junos 디바이스의 명령에 의해 show version
보고되는 대로 원하는 Junos OS 버전을 정의합니다. 플레이북을 실행하는 동안 모듈은 먼저 요청된 버전이 디바이스에 아직 설치되어 있지 않은지 확인합니다. 요청된 버전이 현재 설치된 버전과 다른 경우 모듈은 요청된 버전을 설치합니다.
인수는 local_package
Ansible 제어 노드에서 Junos OS 소프트웨어 패키지의 경로를 정의합니다. 설치하는 동안 모듈은 대상 디바이스에서 스토리지 정리 작업을 수행하고, 소프트웨어 이미지를 디바이스의 /var/tmp 디렉토리에 복사하고, 파일의 체크섬을 확인하고, 활성 구성에 대해 새 소프트웨어를 검증한 다음, 대상 호스트의 각 라우팅 엔진에 소프트웨어를 설치합니다. 기본적으로 software
모듈은 설치가 완료된 후 각 라우팅 엔진을 재부팅하지만, 이 작업은 명확성을 위해 명시적으로 설정됩니다 reboot: True
.
작업은 모듈 결과를 response
변수에 저장하고 하나의 처리기에 알립니다. 사용자가 확인 모드를 사용하여 플레이북을 실행하지 않으면 처리기는 wait_reboot
디바이스와 세션을 설정하여 디바이스가 다시 온라인 상태인지 확인합니다. 변수는 wait_time
제어 노드가 디바이스와 재연결을 시도하는 시간을 정의합니다.
이 예제에는 logfile
설치 진행률을 기록하는 매개 변수가 포함되어 있습니다. 이는 설치에 실패할 경우 디버깅 목적뿐만 아니라 장치에 설치 날짜와 시간을 기록하는 데 중요합니다. 플레이북을 실행하는 사용자에게는 지정된 로그 파일에 쓸 수 있는 권한이 있어야 합니다. 기본적으로 심각도 수준 WARNING 이상의 메시지만 기록됩니다. 이 예에서 플레이북은 설치를 모니터링하기 위해 심각도 수준 INFO 이상의 메시지를 기록하는 옵션으로 실행됩니다 -v
.
구성
Ansible 플레이북 생성
모듈을 사용하여 software
Junos 디바이스에 소프트웨어 이미지를 설치하는 플레이북을 생성하려면 다음을 수행합니다.
-
플레이북에 대한 상용구와 모듈을 로컬에서 실행하는 이 플레이를 포함합니다.
--- - name: Install Junos OS hosts: mx1 connection: local gather_facts: no
-
필요한 변수를 정의하거나 가져옵니다. 이 예에서는 원하는 Junos OS 버전과 새 이미지 경로 등이 포함됩니다.
vars: OS_version: "20.3R1.8" OS_package: "junos-install-mx-x86-64-20.3R1.8.tgz" pkg_dir: "software" log_dir: "{{ playbook_dir }}" netconf_port: 830 wait_time: 3600
-
(선택 사항) NETCONF 연결을 확인하는 작업을 생성합니다.
tasks: - name: Checking NETCONF connectivity wait_for: host: "{{ inventory_hostname }}" port: "{{ netconf_port }}" timeout: 5
-
디바이스에 Junos OS 패키지를 설치하고 핸들러에 알리는 작업을 생성합니다.
- name: Install Junos OS package juniper.device.software: version: "{{ OS_version }}" local_package: "{{ pkg_dir }}/{{ OS_package }}" reboot: True validate: True logfile: "{{ log_dir }}/software.log" register: response notify: - wait_reboot
-
(선택 사항) 모듈 응답을 인쇄하는 작업을 만듭니다.
- name: Print response debug: var: response
-
다시 부팅한 후 디바이스가 다시 온라인 상태가 되는지 확인하는 처리기를 만듭니다.
처리기 이름은 설치 작업에서 참조된 이름과 동일해야 합니다.
handlers: - name: wait_reboot wait_for: host: "{{ inventory_hostname }}" port: "{{ netconf_port }}" timeout: "{{ wait_time }}" when: not response.check_mode
결과
Ansible 제어 노드에서 완료된 플레이북을 검토합니다. 플레이북에 의도한 코드가 표시되지 않으면 이 예제의 지침을 반복하여 플레이북을 수정하십시오.
--- - name: Install Junos OS hosts: mx1 connection: local gather_facts: no vars: OS_version: "20.3R1.8" OS_package: "junos-install-mx-x86-64-20.3R1.8.tgz" pkg_dir: "software" log_dir: "{{ playbook_dir }}" netconf_port: 830 wait_time: 3600 tasks: - name: Checking NETCONF connectivity wait_for: host: "{{ inventory_hostname }}" port: "{{ netconf_port }}" timeout: 5 - name: Install Junos OS package juniper.device.software: version: "{{ OS_version }}" local_package: "{{ pkg_dir }}/{{ OS_package }}" reboot: True validate: True logfile: "{{ log_dir }}/software.log" register: response notify: - wait_reboot - name: Print response debug: var: response handlers: - name: wait_reboot wait_for: host: "{{ inventory_hostname }}" port: "{{ netconf_port }}" timeout: "{{ wait_time }}" when: not response.check_mode
플레이북 실행
플레이북을 실행하려면:
-
ansible-playbook
제어 노드에서 명령을 실행하고 플레이북 경로와 원하는 옵션을 제공합니다.user@ansible-cn:~/ansible$ ansible-playbook -v ansible-pb-junos-install-os.yaml Using /etc/ansible/ansible.cfg as config file PLAY [Install Junos OS] **************************************************** TASK [Checking NETCONF connectivity] *************************************** ok: [mx1a.example.com] => {"changed": false, "elapsed": 0, "match_groupdict": {}, "match_groups": [], "path": null, "port": 830, "search_regex": null, "state": "started"} TASK [Install Junos OS package] ******************************************** changed: [mx1a.example.com] => {"changed": true, "check_mode": false, "msg": "Package /home/user/ansible/software/junos-install-mx-x86-64-20.3R1.8.tgz successfully installed. Response from device is: \nVerified junos-install-mx-x86-64-20.3R1.8 signed by PackageProductionECP256_2020 method ECDSA256+SHA256\n [...output truncated...] NOTICE: 'pending' set will be activated at next reboot... Reboot successfully initiated. Reboot message: Shutdown NOW! [pid 83918]"} TASK [Print response] ****************************************************** ok: [mx1a.example.com] => { "response": { "changed": true, "check_mode": false, "failed": false, "msg": "Package /home/user/ansible/software/junos-install-mx-x86-64-20.3R1.8.tgz successfully installed. Response from device is: \nVerified junos-install-mx-x86-64-20.3R1.8 signed by PackageProductionECP256_2020 method ECDSA256+SHA256\nVerified manifest signed by PackageProductionECP256_2020 method ECDSA256+SHA256\n [...output truncated...] NOTICE: 'pending' set will be activated at next reboot... Reboot successfully initiated. Reboot message: Shutdown NOW! [pid 83918]" } } RUNNING HANDLER [wait_reboot] ********************************************** ok: [mx1a.example.com] => {"changed": false, "elapsed": 209, "match_groupdict": {}, "match_groups": [], "path": null, "port": 830, "search_regex": null, "state": "started"} PLAY RECAP ***************************************************************** mx1a.example.com : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
확인
설치 확인
목적
소프트웨어가 성공적으로 설치되었는지 확인합니다.
행동
플레이북 출력에는 실패한 작업이 표시되어야 합니다. 그러나 설치에 대한 세부 정보는 플레이북에 정의된 로그 파일의 내용을 검토할 수도 있습니다. 샘플 로그 파일 출력은 다음과 같습니다. 간결성을 위해 일부 출력이 생략되었습니다.
user@ansible-cn:~/ansible$ cat software.log 2020-12-11 00:24:49,478 - paramiko.transport - INFO - Connected (version 2.0, client OpenSSH_7.5) 2020-12-11 00:24:49,632 - paramiko.transport - INFO - Authentication (publickey) successful! 2020-12-11 00:24:57,923 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 344145920 / 3441301038 (10%) 2020-12-11 00:25:05,976 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 688275456 / 3441301038 (20%) 2020-12-11 00:25:13,949 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 1032404992 / 3441301038 (30%) 2020-12-11 00:25:22,051 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 1376534528 / 3441301038 (40%) 2020-12-11 00:25:30,357 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 1720664064 / 3441301038 (50%) 2020-12-11 00:25:38,360 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 2064793600 / 3441301038 (60%) 2020-12-11 00:25:46,575 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 2408923136 / 3441301038 (70%) 2020-12-11 00:25:54,983 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 2753052672 / 3441301038 (80%) 2020-12-11 00:26:03,066 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 3097182208 / 3441301038 (90%) 2020-12-11 00:26:11,330 - jnpr.ansible_module.software - INFO - [mx1a.example.com] b'junos-install-mx-x86-64-20.3R1.8.tgz': 3441301038 / 3441301038 (100%) 2020-12-11 00:26:11,331 - jnpr.ansible_module.software - INFO - [mx1a.example.com] after copy, computing checksum on remote package: /var/tmp/junos-install-mx-x86-64-20.3R1.8.tgz ... 2020-12-11 00:26:27,623 - jnpr.ansible_module.software - INFO - [mx1a.example.com] checksum check passed. 2020-12-11 00:26:27,623 - jnpr.ansible_module.software - INFO - [mx1a.example.com] validating software against current config, please be patient ... ... 2020-12-11 00:30:55,725 - jnpr.ansible_module.software - INFO - [mx1a.example.com] software validate package-result: 0 Output: Removing /packages/sets/previous Verified junos-install-mx-x86-64-20.3R1.8 signed by PackageProductionECP256_2020 method ECDSA256+SHA256 Verified manifest signed by PackageProductionECP256_2020 method ECDSA256+SHA256 Checking PIC combinations Adding junos-mx-x86-64-20.3R1.8 ... ... Validating against /config/juniper.conf.gz mgd: commit complete Validation succeeded 2020-12-11 00:30:55,725 - jnpr.ansible_module.software - INFO - [mx1a.example.com] installing software on RE0 ... please be patient ... ... 2020-12-11 00:33:56,203 - jnpr.ansible_module.software - INFO - [mx1a.example.com] software pkgadd package-result: 0 Output: Verified junos-install-mx-x86-64-20.3R1.8 signed by PackageProductionECP256_2020 method ECDSA256+SHA256 ... 2020-12-11 00:33:56,250 - jnpr.ansible_module.software - INFO - [mx1a.example.com] installing software on RE1 ... please be patient ... ... 2020-12-11 00:37:18,562 - jnpr.ansible_module.software - INFO - [mx1a.example.com] software pkgadd package-result: 0 Output: Pushing /var/tmp/junos-install-mx-x86-64-20.3R1.8.tgz to re1:/var/tmp/junos-install-mx-x86-64-20.3R1.8.tgz Verified junos-install-mx-x86-64-20.3R1.8 signed by PackageProductionECP256_2020 method ECDSA256+SHA256 ... <?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:f6f6a59c-fedd-49fc-9cb3-9848f419a5b7"> <request-reboot><both-routing-engines/><in>0</in></request-reboot></nc:rpc>]]>]]> 2020-12-11 00:37:19,880 - ncclient.operations.rpc - INFO - [host mx1a.example.com session-id 46151] Requesting 'CloseSession'
의미
로그 파일 내용은 이미지가 성공적으로 복사되어 대상 디바이스의 라우팅 엔진 모두에 설치되었음을 나타냅니다.
변경 내역 테이블
기능 지원은 사용 중인 플랫폼 및 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.
juniper_junos_software
부터
Juniper.junos
모듈은 모듈의 기능을 대체합니다
junos_install_os
.