Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS 컬렉션 및 모듈을 위한 Ansible 이해하기

요약 주니퍼 네트웍스는 Junos 디바이스를 관리하는 데 사용할 수 있는 Ansible 모듈을 제공합니다.

Junos 디바이스 관리를 위한 Ansible 컬렉션 및 모듈 이해

Ansible은 인프라 구성 관리에 사용되는 IT 자동화 프레임워크입니다. 개별 코드 단위인 Ansible 모듈을 사용하여 관리형 노드에서 특정 기능을 수행합니다. 원격 호스트에서 개별 모듈을 실행하여 임시 작업을 수행하거나 플레이북을 통해 모듈을 실행할 수 있습니다.

Ansible 및 주니퍼 네트웍스는 Junos 디바이스를 관리하는 데 사용할 수 있는 Ansible 모듈을 제공합니다. 주니퍼 네트웍스 Ansible 모듈은 Ansible Galaxy 리포지토리에서 호스팅되는 Ansible 컬렉션을 통해 그룹화 및 배포됩니다. 표 1 에는 Junos 디바이스 관리에 사용할 수 있는 다양한 콘텐츠 세트가 요약되어 있습니다.

표 1: Junos 디바이스 관리를 위한 Ansible 콘텐츠 세트

콘텐츠 세트

묘사

Ansible 릴리스

juniper.device 수집

주니퍼 네트웍스가 오픈 소스 프로젝트로 제공하고 관리하는 Junos 디바이스 관리를 위한 컬렉션입니다.

Ansible 2.10 이상

junipernetworks.junos 수집

Ansible이 제공, 유지 관리 및 지원하는 Junos 디바이스 관리를 위한 컬렉션입니다.

Ansible 2.10 이상

Ansible 코어 모듈
(더 이상 사용되지 않음)

Ansible 기본 설치에 포함된 Ansible 모듈입니다.

Ansible 2.10에서 코어 모듈은 기본 설치에서 Ansible의 junipernetworks.junos 컬렉션으로 이동했습니다.

Ansible 2.1에서 Ansible 2.9까지

Juniper.junos 역할
(더 이상 사용되지 않음)

주니퍼 네트웍스가 제공, 유지 및 지원하는 Junos 디바이스를 관리하는 역할.

이 역할은 컬렉션으로 대체됩니다 juniper.device .

Ansible 2.1 이상

Ansible 역할은 호스트를 구성하기 위한 작업 및 지원 변수, 파일, 템플릿 및 모듈 집합입니다. Ansible 2.10부터 Ansible은 Ansible 기본 설치의 일부로 포함되지 않은 Ansible 콘텐츠를 배포하기 위한 형식인 Ansible 콘텐츠 컬렉션을 지원합니다. Ansible 컬렉션에는 모듈, 플레이북, 플러그인 및 역할을 포함한 광범위한 콘텐츠가 포함될 수 있습니다. 또한 Ansible 컬렉션에는 자체 리포지토리가 있으며 Ansible 기본 설치와 독립적으로 개발 및 릴리스할 수 있습니다.

Ansible 2.9 이전 버전에서는 주니퍼 네트웍스 Juniper.junos 역할에서 제공되는 모듈을 사용하거나 Ansible 기본 설치의 일부로 제공되는 핵심 모듈을 사용하여 Junos 디바이스를 관리할 수 있습니다. Ansible 2.10 Juniper.junos 부터 역할 및 Ansible 코어 모듈이 해당 컬렉션으로 대체됩니다. 주니퍼 네트웍 juniper.device 스 컬렉션이 도입되면서 역할의 Juniper.junos 모듈은 컬렉션의 새 이름으로 복제되었으므로 매개 변수를 제외하고 provider 원래 모듈과 동일한 기능 및 매개 변수를 유지합니다. 새로운 기능은 앞으로 컬렉션에만 추가되므로 컬렉션을 사용하는 juniper.device 것이 좋습니다.

Junos 디바이스에서 모듈을 실행하는 방법

Ansible Galaxy 리포지토리에서 호스팅되는 컬렉션을 사용하려면 먼저 제어 노드에 Ansible을 설치한 다음 컬렉션을 설치해야 합니다. 컬렉션 설치 juniper.device 에 대한 자세한 내용은 Junos OS 서버 요구 사항에 대한 Ansible을 참조하십시오.

Ansible 모듈은 관리형 노드에서 작업을 수행할 수 있습니다. 일반적으로 Ansible 제어 노드는 모듈을 관리형 노드로 전송하여 실행한 다음 제거합니다. 이 시나리오에서는 관리형 노드에 모듈을 실행할 수 있는 기능이 있어야 합니다. 대부분의 Ansible 모듈은 Python으로 작성되기 때문에 Ansible은 일반적으로 관리형 노드에 Python이 필요합니다.

그러나 컬렉션의 juniper.device 주니퍼 네트웍스 모듈은 관리형 노드에 Python이 필요하지 않습니다. 일반적인 작업과 달리, Ansible 제어 노드에서 로컬로 모듈을 실행하고, 모듈은 NETCONF를 통해 Junos PyEZ 및 Junos XML API를 사용하여 관리형 노드와 인터페이스합니다. 이 실행 방법을 통해 Ansible을 사용하여 지원되는 모든 Junos 디바이스를 관리할 수 있습니다. 그림 1 은 Ansible 제어 노드와 매니지드 Junos 디바이스 간의 통신을 보여줍니다.

그림 1: Junos 디바이스 Ansible Communication with a Junos Device 와의 Ansible 통신

컬렉션 모듈을 사용하려면 juniper.device 플레이북 또는 명령이 다음을 수행해야 합니다.

  • Specify the collection or FQCN(컬렉션 또는 FQCN 지정) - 컬렉션을 지정하려면 재생에 키를 포함합니다 collections . 또는 키를 생략 collections 하고 대신 권장되는 방법인 FQCN(정규화된 컬렉션 이름)으로 컬렉션 콘텐츠를 참조할 수 있습니다.

  • 제어 노드에서 로컬로 모듈 실행 - Ansible 모듈을 로컬로 실행하려면 예를 들어 플레이북에 포함 connection: local 하거나 명령줄에 포함하여 --connection local 매개 변수를 local로 정의합니다connection.

    메모:

    를 사용하면 connection: localAnsible은 연결이 필요한 플레이의 각 작업에 대해 장치에 대한 별도의 연결을 설정합니다. 컬렉션 모듈은 juniper.device 여전히 모듈을 로컬에서 실행하지만 대신 플레이의 모든 작업을 위해 장치에 대한 단일 영구 연결을 설정하는 를 connection: juniper.device.pyez지원합니다.

  • 매니지드 디바이스에 연결하기 위한 적절한 연결 및 인증 정보 제공: 자세한 내용은 다음을 참조하십시오.

매니지드 Junos 디바이스에 액세스할 수 있는 모든 사용자 계정을 사용하여 Ansible 모듈을 실행할 수 있습니다. Ansible 모듈을 실행하면 Junos OS 사용자 계정 액세스 권한이 적용되며 Junos OS 사용자 계정에 대해 구성된 클래스가 권한을 결정합니다. 따라서 사용자가 구성 변경 사항을 디바이스에 로드하는 모듈을 실행하는 경우 사용자는 구성의 관련 부분을 변경할 수 있는 권한을 가져야 합니다.

다음 플레이북은 juniper.device 컬렉션의 facts 모듈을 실행하여 디바이스 팩트를 검색하고 파일에 저장합니다. 이 예제에서는 기본 위치에 있는 기존 SSH 키를 사용하여 디바이스로 인증하므로 플레이북에서 자격 증명을 명시적으로 제공하지 않습니다.

명령줄에서 임시 작업을 수행할 수도 있습니다. 다음 명령은 컬렉션의 facts 모듈을 실행하고 juniper.device 인벤토리 그룹 dc1의 호스트에서 디바이스 팩트를 검색합니다.

주니퍼 네트웍스 juniper.device 컬렉션

주니퍼 네트웍스는 Ansible Galaxy 웹사이트에서 호스팅되는 Ansible Content Collection을 제공합니다juniper.device. 이 컬렉션에는 Junos 디바이스를 관리할 수 있는 Ansible 모듈이 포함되어 있습니다.

표 2에서는 컬렉션의 juniper.device 모듈을 간략하게 설명합니다. 컬렉션의 초기 릴리스에서 컬렉션 모듈은 컬렉션 모듈에 대해 지원되지 않는 매개 변수를 제외하고 provider 역할의 Juniper.junos 해당 모듈과 동일한 기능 및 매개 변수를 유지합니다.

모듈에 대한 최신 목록, 문서 및 사용 예제는 https://ansible-juniper-collection.readthedocs.io/ 참조하십시오.

표 2: juniper.device 수집 모듈

juniper.device 모듈 이름

묘사

command

Junos 디바이스에서 CLI 명령을 실행하고 출력을 로컬에 저장합니다.

config

Junos 디바이스의 구성을 관리합니다.

facts

Junos OS 버전, 일련 번호, 하드웨어 모델 번호를 포함하여 원격 호스트에서 디바이스별 정보를 검색합니다.

jsnapy

Ansible을 통해 Python(JSNAPy) 테스트에서 Junos Snapshot Administrator를 실행합니다.

file_copy

로컬 Ansible 제어 노드와 Junos 디바이스 간에 파일을 전송합니다.

ping

Junos 디바이스에서 명령을 실행합니다 ping .

pmtud

Junos 디바이스에서 경로 MTU 검색을 수행합니다.

rpc

Junos OS RPC를 실행합니다.

software

Junos OS 소프트웨어 패키지를 설치하고 Junos 디바이스를 재부팅합니다.

system

디바이스 재설정, 재부팅 또는 종료를 포함하여 Junos 디바이스에서 시스템 작업을 수행합니다.

srx_cluster

클러스터 지원 SRX 시리즈 방화벽을 위한 SRX 시리즈 섀시 클러스터를 생성합니다.

table

Junos PyEZ 운영 테이블 및 뷰를 사용하여 Junos 디바이스에서 운영 정보를 검색합니다.