Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

요약 주니퍼 네트웍스의 Ansible 모듈을 사용하면 SSH, 텔넷 또는 시리얼 콘솔 연결을 사용하여 Junos 디바이스에 연결할 수 있습니다.

주니퍼 네트웍스는 Junos 디바이스를 관리하는 데 사용할 수 있는 Ansible 모듈을 제공합니다. 주니퍼 네트웍스 모듈은 Ansible Galaxy에서 호스팅되는 컬렉션과 Juniper.junos 역할을 통해 juniper.device 배포됩니다. 모듈은 이 문서에 설명된 다양한 프로토콜과 Ansible 연결을 사용하여 Junos 디바이스에 연결할 수 있습니다.

연결 방법 개요

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

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

기본적으로 주니퍼 네트웍스 모듈은 SSH를 사용하여 디바이스에 연결합니다. 텔넷 또는 직렬 콘솔 연결을 사용하려면 모듈의 mode 매개 변수를 적절한 값으로 설정합니다. 디바이스에 텔넷하려면 인수를 mode 와 동일하게 "telnet"설정합니다. 직렬 콘솔 연결을 사용하려면 인수를 mode 와 동일하게 "serial"설정합니다. 표 1 에는 연결 모드, 특정 매개 변수에 대한 기본값, 필요한 Junos OS 구성 및 Juniper.junos 해당 연결 모드에 대한 지원이 처음 도입된 릴리스가 요약되어 있습니다. 이 juniper.device 모듈은 최초 출시 시점부터 모든 연결 모드를 지원합니다.

표 1: 주니퍼 네트웍스 Ansible 모듈의 연결 모드

연결 모드

인수의 mode

기본 포트

필수 Junos OS 구성

첫 번째 지원 릴리스(Juniper.junos)

SSH를 통한 NETCONF(기본값)

830

[edit system services]
netconf {
    ssh;
}

1.0.0

시리얼 콘솔 연결

serial

/dev/ttyUSB0

2.0.0

콘솔 서버를 통한 SSH

22

2.2.0

Junos 디바이스에 텔넷 연결하기

telnet

23

[edit system services]
telnet;

1.4.0

2.0.0에 추가된 기본 포트

콘솔 서버를 통한 텔넷

telnet

23

1.4.0

참고:

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

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

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

로컬 및 영구 Ansible 연결 이해

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

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

표 2 에는 Ansible 연결과 이를 지원하는 콘텐츠 세트가 요약되어 있습니다.

표 2: 주니퍼 네트웍스 모듈이 지원하는 Ansible 연결

Ansible 연결

설명

콘텐츠 집합 지원

connection: local

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

juniper.device컬렉션

Juniper.junos역할

connection: juniper.device.pyez

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

juniper.device컬렉션

참고:

Ansible은 더 이상 사용되지 않습니다 connection: local. 따라서 컬렉션 모듈을 사용하는 경우 Ansible이 이후 릴리스에서 로컬 연결에 대한 지원을 제거하는 경우 문제를 방지하기 위해 플레이북에서 사용하는 juniper.device connection: juniper.device.pyez 것이 좋습니다.

를 사용할 connection: local때 Ansible은 각 모듈에 대해 호스트에 대한 별도의 연결을 설정하므로 모듈의 인수 목록에서 모듈별 연결 및 인증 매개변수를 정의할 수 있습니다. 반대로, 를 사용하면 connection: juniper.device.pyez플레이의 모든 작업에서 연결이 유지되므로 모든 모듈에 대해 연결 및 인증 매개 변수를 전역적으로 정의해야 합니다. SSH 구성 파일 또는 Ansible 인벤토리 파일과 같은 다른 수단을 통해 제공하는 것 외에도 플레이 섹션에서 매개 변수를 vars: 정의할 수 있습니다. 자세한 내용은 Junos 디바이스에서 Ansible 모듈을 실행하는 사용자 인증을 참조하십시오.

다음 플레이북은 플레이의 모든 작업에 사용되는 각 호스트에 대한 영구 연결을 설정합니다. Ansible 자격 증명 모음 파일에 저장된 사용자의 자격 증명은 플레이 vars: 섹션에 정의되어 있습니다.

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

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

주니퍼 네트웍스 모듈은 매개 변수가 다른 구성 파일을 지정하지 않는 한 ssh_config ~/.ssh/config에 있는 기본 SSH 구성 파일을 자동으로 쿼리합니다. SSH를 사용하여 Junos 디바이스 또는 디바이스에 연결된 콘솔 서버에 연결할 때 모듈은 먼저 SSH 공개 키 기반 인증을 시도한 다음 암호 기반 인증을 시도합니다. 암호 기반 인증을 사용하는 경우 제공된 암호가 장치 암호로 사용됩니다. SSH 키가 사용 중일 때 제공된 암호는 개인 키의 잠금을 해제하기 위한 암호로 사용됩니다. SSH 개인 키에 빈 암호가 있는 경우 암호가 필요하지 않습니다. 그러나 빈 암호를 사용하는 SSH 개인 키는 권장되지 않습니다.

다음 플레이북은 Junos 디바이스와 SSH를 통해 NETCONF 세션을 설정하고 디바이스 팩트를 검색합니다. 플레이북은 기본 위치에서 SSH 키를 사용합니다.

또한 주니퍼 네트웍스 Ansible 모듈을 사용하면 콘솔 서버에 대한 SSH 연결을 통해 Junos 디바이스에 연결할 수 있습니다. 이 경우 Junos 디바이스와 콘솔 서버 모두에 대한 로그인 자격 증명을 지정해야 합니다. user 및 매개 변수를 사용하여 Junos OS 로그인 자격 증명을 지정하고, 및 passwd cs_passwd 매개 변수를 사용하여 cs_user 콘솔 서버 자격 증명을 지정합니다. SSH 키가 사용 중일 때 은(는) cs_passwd 프라이빗 키의 암호입니다.

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

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

텔넷을 사용하여 장치에 연결

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

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

다음 플레이북은 포트 7016을 사용하여 Junos 디바이스에 텔넷하고, 디바이스 팩트를 검색하여 파일에 저장합니다. 모듈은 기본 사용자를 사용하고 로그인 암호를 묻는 메시지를 표시합니다.

직렬 콘솔 연결을 사용하여 장치에 연결Connect to a device using a serial console connection

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

시리얼 콘솔 연결을 통해 Junos 디바이스에 연결하려면 모듈의 mode 매개 변수를 로 "serial"설정하고, 선택적으로 매개 변수를 포함하여 port 포트를 지정합니다. 로 설정 mode "serial" 하되 매개 변수를 생략 port 하면 의 port 값은 기본적으로 /dev/ttyUSB0. 지속적 연결의 경우, 섹션 아래에 및 port 을(를) 정의 mode 하십시오vars:. 로컬 연결의 경우 매개 변수를 섹션 아래 vars: 또는 모듈 인수로 정의할 수 있습니다.

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