Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ansible을 사용하여 Junos 디바이스에 연결

Ansible 컬렉션의 juniper.device 모듈 세트를 juniper.device 사용할 때 Junos 디바이스에 연결하는 방법을 이해합니다.

주니퍼 네트웍스는 Junos OS를 실행하는 디바이스와 진화한 Junos OS를 실행하는 디바이스를 관리하는 데 사용할 수 있는 Ansible 모듈을 제공합니다. 주니퍼 네트웍스 모듈은 컬렉션을 juniper.device 통해 배포됩니다. 컬렉션에는 juniper.device 두 가지 모듈 세트가 포함되어 있습니다.

이 문서에서는 다른 프로토콜 및 Ansible 연결을 사용하여 Junos 디바이스에 연결하기 위해서만 모듈 세트를 사용하는 juniper.device 방법에 대해 설명합니다. 모듈을 junipernetworks.junos 사용하여 Junos 디바이스에 연결하는 방법에 대한 자세한 내용은 juniper.device.junos_* Ansible 모듈을 사용하여 Junos 디바이스 관리를 참조하십시오.

연결 방법 개요

이 모듈을 juniper.device 사용하면 SSH, 텔넷 또는 직렬 콘솔 연결을 사용하여 Junos 디바이스에 연결할 수 있습니다. 터미널이나 노트북이 Junos 디바이스의 콘솔 포트에 물리적으로 연결되어 있을 때는 직렬 콘솔 연결을 사용해야 합니다. SSH 또는 텔넷을 사용하여 디바이스의 관리 인터페이스 또는 디바이스의 CONSOLE 포트에 직접 연결된 콘솔 서버에 연결할 수 있습니다.

공장 기본 구성이 있는 새 디바이스 또는 제로화된 디바이스는 콘솔 연결을 통해 액세스해야 합니다. 따라서 Ansible을 사용하여 원격 액세스를 위해 아직 구성되지 않은 디바이스를 초기에 구성할 수 있습니다. 디바이스에 직접 연결되어 있을 때 직렬 콘솔 연결을 사용하거나 디바이스에 직접 연결된 콘솔 서버를 통해 텔넷 또는 SSH를 사용할 수 있습니다.

기본적으로 모듈은 juniper.device SSH를 사용하여 디바이스에 연결합니다. 텔넷 또는 시리얼 콘솔 연결을 사용하려면 매개변수를 mode 적절한 값으로 설정하십시오. 디바이스 mode 에 텔넷을 연결하려면 인수를 에 설정합니다.telnet 시리얼 콘솔 연결을 mode 사용하려면 인수를 에 설정합니다.serial 표 1 에는 연결 모드, 특정 매개 변수에 대한 기본값 및 필요한 Junos OS 구성이 요약되어 있습니다. 모듈은 juniper.device 모든 연결 모드를 지원합니다.

표 1: 연결 juniper.device 모드 모듈 세트

연결 모드

인수의 값 mode

기본 포트

필수 Junos OS 구성

SSH를 통한 NETCONF(기본값)

830

[edit system services]
netconf {
    ssh;
}

시리얼 콘솔 연결

serial

/dev/ttyUSB0

콘솔 서버를 통한 SSH

22

Telnet-Junos 디바이스

telnet

23

[edit system services]
telnet;

콘솔 서버를 통한 텔넷

telnet

23

참고:

SSH를 통해 텔넷 또는 NETCONF를 사용하여 관리 인터페이스에 액세스하려면 먼저 계층 수준에서 [edit system services] 적절한 서비스를 활성화해야 합니다. 텔넷은 일반 텍스트 암호를 사용하므로 잠재적인 보안 취약성을 생성하므로 SSH를 사용하는 것이 좋습니다.

모듈을 juniper.device 사용하여 Junos 디바이스를 관리할 때 원격 디바이스는 주어진 프로토콜에 적합한 자격 증명을 사용하여 Ansible 사용자를 인증할 수 있어야 합니다. 자세한 내용은 Junos 디바이스에서 Ansible 모듈을 실행하는 사용자 인증을 참조하십시오.

모듈은 juniper.device Junos 디바이스에 연결할 때 로컬(작업당) 연결 및 영구(재생당) 연결을 포함하여 다양한 Ansible 연결을 지원합니다. Ansible 연결은 Ansible이 플레이의 각 작업에 대해 호스트에 대한 별도의 연결을 설정하는지 또는 플레이의 모든 작업에 대해 지속되는 호스트에 대한 단일 연결을 설정하는지 여부를 결정합니다. Ansible 연결 지정에 대한 자세한 내용은 로컬 및 영구 Ansible 연결 이해를 참조하십시오.

로컬 및 영구 Ansible 연결 이해하기

모듈은 디바이스와 인터페이스하기 위해 NETCONF를 통해 Junos PyEZ 및 Junos XML API를 사용하기 때문에 모듈은 juniper.device Junos 디바이스에서 Python이 필요하지 않습니다. 따라서 Junos 디바이스에서 작업을 수행하려면 Python이 설치된 Ansible 제어 노드에서 모듈을 로컬로 실행해야 합니다. 플레이북 플레이에 포함 connection: local 시켜 모듈을 로컬에서 실행할 수 있습니다. 를 사용하면 connection: localAnsible은 호스트에서 작업을 수행하는 플레이의 각 작업에 대해 호스트에 대한 별도의 연결을 설정합니다.

또한 모듈은 juniper.device 호스트에 대한 영구 연결 설정을 지원합니다 connection: juniper.device.pyez . 영구 연결을 사용하는 경우 Ansible은 여전히 제어 노드에서 로컬로 모듈을 실행합니다. 그러나 영구 연결은 각 호스트에 대한 단일 연결을 설정하고 유지하며, 이는 플레이의 모든 작업 실행 동안 지속됩니다. 영구 연결은 연극의 각 작업에 대해 호스트에 대한 별도의 연결을 사용하는 것보다 여러 작업을 실행하는 데 더 효율적일 수 있습니다.

표 2 에는 모듈 세트의 모듈에 대한 Ansible 연결이 요약되어 juniper.device 있습니다.

표 2: 에서 juniper.device 지원하는 Ansible 연결 모듈 세트

Ansible 연결

설명

connection: local

Ansible 제어 노드에서 모듈을 로컬로 실행하되 호스트에서 작업을 수행하는 플레이의 각 작업에 대해 호스트에 대한 별도의 연결을 설정합니다.

connection: juniper.device.pyez

Ansible 제어 노드에서 모듈을 로컬로 실행하되 플레이의 모든 작업 실행 동안 지속되는 호스트에 대한 지속적인 연결을 설정합니다.

플레이북에서 로컬 및 영구 연결에 대한 연결 및 인증 매개 변수를 정의할 수 있습니다. 로컬 연결은 각 작업에 대해 호스트에 대한 별도의 연결을 설정합니다. 따라서 플레이의 vars: 섹션과 모듈의 인수 목록에서 로컬 연결에 대한 연결 및 인증 파라미터를 정의할 수 있습니다. 모듈 인수가 우선합니다. 대조적으로, 영구 연결은 플레이의 모든 작업에 대해 단일 연결을 갖습니다. 따라서 연극 섹션 vars: 에서 전 세계적으로 영구 연결을 위한 연결 및 인증 매개 변수를 정의해야 합니다.

다음 플레이북은 플레이의 모든 작업에 사용되는 각 호스트에 대한 영구 연결을 설정합니다. Ansible 볼트 파일에 저장되는 사용자의 자격 증명은 플레이 섹션 vars: 에서 전역적으로 정의됩니다.

SSH를 사용하여 디바이스에 연결

모듈은 juniper.device SSH를 사용하여 Junos 디바이스에 연결할 수 있도록 지원합니다. 디바이스의 관리 인터페이스에서 SSH를 통해 NETCONF 세션을 설정할 수 있습니다. 디바이스의 CONSOLE 포트에 직접 연결된 콘솔 서버와 SSH 연결을 설정할 수도 있습니다. SSH 서버는 Junos 디바이스에서 Ansible 모듈을 실행하는 사용자 인증에 설명된 대로 표준 SSH 인증 메커니즘을 사용하여 사용자를 인증할 수 있어야 합니다. SSH를 통해 NETCONF 세션을 설정하려면 Junos OS 관리형 노드에 대한 Ansible 설정에 설명된 요구 사항도 충족해야 합니다.

모듈은 ~/.ssh/config에 있는 기본 SSH 구성 파일이 있는 경우 자동으로 쿼리합니다. 또한 매개 변수를 ssh_config 포함하여 다른 구성 파일을 지정할 수도 있습니다.

Junos 디바이스 또는 디바이스에 연결된 콘솔 서버에 대한 SSH 연결의 경우, 모듈은 먼저 SSH 공개 키 기반 인증을 시도한 다음 암호 기반 인증을 시도합니다. 비밀번호 기반 인증이 사용되는 경우, 제공된 비밀번호가 디바이스 비밀번호로 사용됩니다. SSH 키를 사용할 때 제공된 암호는 개인 키를 잠금 해제하기 위한 암호입니다. 키를 SSH 키 에이전트에 로드하거나 SSH 개인 키에 빈 암호가 있는 경우에는 암호를 제공할 필요가 없습니다. 그러나 빈 암호와 함께 SSH 개인 키를 사용하는 것은 권장하지 않습니다.

다음 플레이북은 Junos 디바이스와 SSH를 통해 NETCONF 세션을 설정하고 디바이스 팩트를 검색합니다. 플레이북은 SSH 키 에이전트에 로드된 SSH 키를 사용합니다.

또한 이 모듈을 사용하면 콘솔 서버에 대한 SSH 연결을 통해 Junos 디바이스에 연결할 수 있습니다. 이 경우 Junos 디바이스와 콘솔 서버 모두에 대한 로그인 자격 증명을 지정해야 합니다. 및 passwd 매개 변수를 사용하여 user Junos OS 로그인 자격 증명을 지정합니다. 및 cs_passwd 매개 변수를 cs_user 사용하여 콘솔 서버 자격 증명을 지정합니다. SSH 키를 사용할 때는 cs_passwd 비공개 키의 암호입니다. 또한 해당하는 경우 TTY 디바이스에 매핑되는 TCP 포트에 인수를 설정합니다port.

다음 플레이북에서는 콘솔 서버 및 Junos 디바이스에 대한 사용자의 자격 증명을 묻는 메시지를 표시합니다. 모듈은 콘솔 서버에 인증한 다음 Junos 디바이스로 인증합니다. 인증에 성공하면 플레이북은 매니지드 노드에서 디바이스 팩트를 검색하고 Junos OS 버전을 출력합니다.

주니퍼 네트웍스 모듈은 ~/.ssh/config에 있는 기본 SSH 클라이언트 구성 파일이 있는 경우 이를 자동으로 쿼리합니다. 매개 변수를 ssh_config 포함하고 구성 파일의 위치를 지정하여 다른 SSH 구성 파일을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

텔넷을 사용하여 디바이스에 연결

이 모듈을 juniper.device 사용하면 네트워크 디바이스에 대한 암호화되지 않은 액세스를 제공하는 텔넷을 사용하여 Junos 디바이스에 연결할 수 있습니다. 디바이스의 관리 인터페이스 또는 디바이스의 CONSOLE 포트에 직접 연결된 콘솔 서버에 텔넷을 연결할 수 있습니다. 콘솔 서버를 통해 디바이스에 액세스하면 원격 액세스를 위해 아직 구성되지 않은 새 디바이스 또는 제로화된 디바이스를 처음에 구성할 수 있습니다. 관리 인터페이스에 텔넷을 연결하려면 인터페이스에 액세스해야 하는 모든 디바이스의 계층 수준에서 [edit system services] 텔넷 서비스를 구성해야 합니다.

원격 디바이스에 텔넷하려면 매개변수를 mode 에 설정 telnet 하고 선택적으로 포트를 지정하는 매개변수를 port 포함합니다. mode 을 설정 telnet 하지만 매개 변수를 port 생략하면 기본값 port 은 23입니다. 영구 연결의 경우, 섹션 아래에서 와 port 를 정의 mode 하십시오.vars: 로컬 연결의 경우, 섹션 아래 vars: 또는 모듈 인수로 매개 변수를 정의할 수 있습니다.

다음 플레이북은 포트 7016을 사용하여 Junos 디바이스에 텔넷을 연결하고, 디바이스 팩트를 검색하여 파일에 저장합니다. 플레이북은 사용자 이름과 비밀번호를 묻는 메시지를 표시합니다.

직렬 콘솔 연결을 사용하여 디바이스에 연결

이 모듈을 juniper.device 사용하면 직렬 콘솔 연결을 사용하여 Junos 디바이스에 연결할 수 있으며, 이는 원격 액세스를 위해 아직 구성되지 않은 새 디바이스를 처음에 구성해야 할 때 유용합니다. 이 연결 방법을 사용하려면 터미널 또는 노트북이 CONSOLE 포트를 통해 Junos 디바이스에 물리적으로 연결되어 있어야 합니다. Junos 디바이스의 CONSOLE 포트 연결에 대한 자세한 지침은 해당 디바이스의 하드웨어 설명서를 참조하십시오.

직렬 콘솔 연결을 통해 Junos 디바이스에 연결하려면 모듈의 mode 매개 변수serial를 로 설정하고 선택적으로 포트를 지정하는 매개 변수를 port 포함합니다. 로 설정 mode 하지만 매개 변수를 port 생략하면 기본값 port/dev/ttyUSB0serial 입니다. 영구 연결의 경우, 섹션 아래에서 와 port 를 정의 mode 하십시오.vars: 로컬 연결의 경우, 섹션 아래 vars: 또는 모듈 인수로 매개 변수를 정의할 수 있습니다.

다음 플레이북은 CONSOLE 포트를 통해 Junos 디바이스에 연결한 다음 초기 구성을 로드하고 커밋합니다. 플레이북은 사용자 이름과 비밀번호를 묻는 메시지를 표시합니다.