Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Apstra ZTP(디바이스)

Apstra ZTP 개요

참고:

이 문서는 Apstra ZTP 4.0 버전에 적용됩니다. 사용 중인 주니퍼 Apstra 버전에 해당하는 Apstra ZTP 버전을 사용합니다. Apstra 버전은 4.0보다 이전 버전으로 Apstra ZTP 버전 1.0.0 또는 2.0.0을 사용합니다. 자세한 내용은 Juniper Apstra 3.3.0 사용자 가이드를 참조하십시오.

Apstra ZTP는 데이터센터 인프라 시스템을 위한 제로터치 프로비저닝 서버입니다. (Apstra ZTP는 이전에 Apstra 환경에서 ZTP 구현에 사용되었던 커뮤니티 지원 Aeon-ZTPS 소프트웨어를 대체합니다.) Apstra ZTP를 사용하면 기본 NOS 메커니즘의 차이점을 고려하지 않고도 Apstra 데이터센터 디바이스를 부트스트랩할 수 있습니다. Apstra 관점에서 ZTP는 초기 부팅에서 디바이스 에이전트를 통해 Apstra가 관리하는 지점으로 디바이스를 처리하는 프로세스입니다.

ZTP의 구성 방식에 따라 프로세스에는 다음과 같은 기능이 포함될 수 있습니다.

  • DHCP 서비스
  • 디바이스 관리자/루트 암호 설정
  • 디바이스 시스템 에이전트를 위한 장비 사용자 생성
  • NOS 업그레이드/다운그레이드
  • 설치 라이선스(Cumulus만 해당)
  • 온박스 또는 오프박스 디바이스 시스템 에이전트 설치

벤더별 정보도 참조하십시오.

참고:

ZTP 프로세스 중에 문제가 있을 때 장비가 잠기지 않도록 하기 위해 ZTP는 기본 하드 코딩 자격 증명을 사용합니다. 이러한 자격 증명은 다음과 같습니다.

  • 루트/관리자
  • 아오사드민/ 아사드민

Apstra에서 제공하는 VM 이미지(.ova, .qcow2.gz, .vhdx.gz)를 사용하거나 자체 ZTP 서버를 구축하고 기존 ZTP/DHCP 프로세스의 일부로 Apstra에서 제공하는 디바이스 프로비저닝 스크립트를 사용하여 부팅 프로세스의 일환으로 디바이스에 에이전트를 자동으로 설치할 수 있습니다. Apstra ZTP 참조 구현은 다음 3단계로 구성됩니다.

  1. 일반 DHCP 단계
    • DHCP를 통해 IP 주소를 요청합니다.
    • 디바이스는 할당된 IP 주소와 실행 스크립트에 대한 포인터를 수신합니다(또는 Apstra에서 제공하는 VM 이미지를 사용하는 경우 설치할 OS 이미지).
  2. 초기화 단계
    • 이 장치는 TFTP를 사용하여 ZTP 스크립트를 다운로드합니다.
    • 이 장치는 다운로드한 스크립트를 실행하여 관리할 준비를 합니다. 여기에는 디바이스가 지원되는 OS를 실행하는지 확인하는 것이 포함됩니다.
  3. I Agent 설치 단계
    • ZTP 스크립트는 장비에 장비 시스템 에이전트를 설치하기 위해 API 호출을 수행합니다.

Apstra ZTP 4.0 VM 서버 리소스 요구 사항

Apstra ZTP 4.0은 DHCP, HTTP 및 TFTP 서버를 실행하는 Ubuntu 18.04 LTS 서버로 실행되며 환경에 맞게 커스터마이즈되어야 하는 Apstra 제공 ZTP 스크립트를 포함합니다. 아래 표는 프로덕션 환경에 대한 최소 서버 사양을 보여주고 있습니다.

리소스 설정
게스트 OS 유형 Ubuntu 18.04 LTS 64비트
메모리 2GB
Cpu vCPU 1개
디스크 스토리지 64gb
네트워크 최소 1개 이상의 네트워크 어댑터. 처음에는 DHCP용으로 구성됨

Apstra ZTP 4.0 네트워크 요구 사항

소스 대상 포트 역할
디바이스 에이전트 DHCP 서버(갱신) 및 브로드캐스트(요청) udp/67 -> udp/68 DHCP 클라이언트
디바이스 에이전트 Apstra ZTP 모든 -> tcp/80 부트스트랩 및 API 스크립트
Arista 및 Cisco Device 에이전트 Apstra ZTP 모든 -> udp/69 POAP 및 ZTP용 TFTP
Apstra ZTP 컨트롤러 모든 -> tcp/443 디바이스 시스템 에이전트 Installer API

Apstra ZTP 서버 및 디바이스 에이전트는 ZTP 전용 네트워크 요구 사항 외에도 컨트롤러에 대한 연결을 필요로 합니다. 자세한 내용은 필수 수정 포트 를 참조하십시오.

Apstra ZTP 4.0.0 및 Apstra 4.0.0부터 시작하여 Apstra GUI에서 디바이스 ZTP 상태를 모니터링할 수 있습니다.

왼쪽 탐색 메뉴에서 Devices > ZTP Status > Devices로 이동합니다.

DHCP 및 ZTP와 상호 작용하는 각 디바이스는 알려진 경우 시스템 ID(일련 번호), ZTP Status, ZTP 최신 이벤트 및 장비 상태가 마지막으로 업데이트된 시기와 함께 나열됩니다.

장비에 대한 전체 DHCP 및 ZTP 로그를 보려면 "로그 보기" 아이콘을 클릭합니다.

DHCP 또는 ZTP와 상호 작용하는 모든 디바이스가 나열됩니다. 디바이스에 대한 로그가 더 이상 필요하지 않은 경우 "삭제" 아이콘을 클릭합니다.

모든 프로세스의 로그 파일은 디렉토리에서 /containers_data/logs 찾을 수 있습니다.

Apstra ZTP 4.0.0 및 Apstra 4.0.0부터 시작하여 Apstra GUI에서 Apstra ZTP 서버의 ZTP 서비스를 모니터링할 수 있습니다.

왼쪽 탐색 메뉴에서 Devices > ZTP Status > Services로 이동합니다.

각 서비스 이름에는 Docker IP 주소, 서비스 상태 및 서비스 상태가 마지막으로 업데이트된 시점이 포함됩니다.

Apstra ZTP VM 다운로드 및 구축

Apstra ZTP 소프트웨어는 독립형 Apstra ZTP VM에서 제공됩니다.
  1. 등록된 지원 사용자로서 주니퍼 지원 다운로드에서 적합한 Apstra VM 이미지를 다운로드하십시오.
    VMware OVA 이미지 apstra-ztp-4.0.*-<build-version>.ova (예: apstra-ztp-4.0.1-11.ova)
    Microsoft Hyper-V apstra-ztp-4.0.*-<build-version>.vhdx.gz (예: apstra-ztp-4.0.1-11.vhdx.gz)
    Linux KVM QCOW2 이미지 apstra-ztp-4.0.*-<build-version>.qcow2.gz (예: apstra-ztp-4.0.1-11.qcow2.gz)
  2. 제공된 SHA512/MD5 체크섬에 대해 다운로드한 파일을 검증합니다.
  3. 적절한 리소스로 VM을 구축합니다.
  4. TFTP, NGINX(HTTP), DHCPd, Status. 및 MySQL Docker 컨테이너는 기본적으로 활성화되고 실행됩니다.
  5. Apstra ZTP DHCP 서버를 사용하지 않으려면 dhcpd 컨테이너를 중지하고 비활성화하십시오.

정적 관리 IP 주소 구성(Apstra ZTP)

기본적으로 Apstra ZTP Server는 DHCP를 통해 eth0 인터페이스에 IP 주소를 할당하려고 시도합니다. Apstra ZTP 서버를 DHCP 서버로 사용하는 경우 정적 관리 IP 주소를 설정해야 합니다.

  1. 사용자 관리자로서 Apstra 서버에 SSH를 입력합니다. (ssh admin@<apstra-server-ip>Astra 서버의 IP 주소는 어디에 있는 <apstra-server-ip> 가).
  2. /etc/netplan/01-netcfg.yaml 정적 관리 IP 주소를 구성하려면 파일을 편집합니다. 아래 예제를 참조하십시오. (넷플랜 사용과 관련한 자세한 내용은 https://netplan.io/examples 참조)
  3. 다음 방법 중 하나에 변경 사항을 적용합니다.
    • 명령 sudo reboot으로 Apstra 서버를 재부팅합니다.
    • 명령 sudo netplan apply을 실행합니다.

ZTP 사용자 구성

API 쓰기 액세스(예: 관리자)가 있는 구성된 Apstra GUI 사용자를 사용할 수 있지만, 사전 정의된 역할 device_ztp 할당된 지정된 사용자(예: "ztp")를 생성하는 것이 좋습니다. device_ztp 역할을 통해 해당 역할을 가진 사용자는 컨트롤러에 API를 호출하여 장치 시스템 에이전트 설치를 요청할 수 있습니다. 자세한 내용은 사용자/ 역할 관리(User / Role Management)를 참조하십시오.

DHCP 서버 구성

Apstra 소프트웨어는 장비 관리 네트워크를 위한 ISC DHCP 서버와 함께 제공됩니다. 다른 DHCP 서버를 사용하는 경우 Apstra에서 제공하는 DHCP 서버에 대해 이 가이드에서 설명한 것과 동일한 옵션을 구성하는 것이 귀하의 책임입니다. 예를 들어 주니퍼 디바이스를 사용하는 경우 서버가 다음을 포함하도록 하여 디바이스가 Apstra ZTP junos_apstra_ztp_bootstrap.sh 파일을 다운로드해야 합니다.

DHCP 구성 파일은 디렉토리의 Apstra ZTP VM에 /containers_data/dhcp 있습니다.

참고:

모든 구성 파일은 에 의해 root소유됩니다. sudo를 사용하여 명령어 사용 sudo 또는 root 명령어 사용 sudo -sroot 명령을 실행해야 합니다.

  1. dhcpd.conf vi 또는 nano 텍스트 편집기를 통해 파일을 편집합니다.
  2. 관리 네트워크에 해당하는 "그룹"을 추가합니다.
    tftp-server-name ZTP 서버의 IP 주소(URL이 아님)
    subnet IP 관리 네트워크 및 넷마스크
    range 동적 DHCP IP 주소 범위 전체 범위가 사용 가능하고 해당 범위에서 정적으로 구성된 IP 주소가 사용되지 않도록 합니다.
    option routers 관리 네트워크를 위한 기본 게이트웨이 라우터
    host 정적 DHCP IP 주소
    hardware ethernet DHCP 협상에 사용되는 관리 인터페이스의
    fixed-address 디바이스용으로 사용할 수 있습니다. 스위치 MAC 주소 사용
  3. 다음과 같은 DHCP 매개변수는 선택 사항입니다.
  4. Cumulus Linux와 함께 ZTP를 사용하는 경우 다음을 편집해야 합니다.
    • cumulus-provision-url: TFTP URL(ZTP 서버의 IP 주소 사용)
  5. SONiC과 함께 ZTP를 사용하는 경우 다음을 편집해야 합니다.
    sonic-provision-url: TFTP URL(ZTP 서버의 IP 주소 사용)
  6. DHCP 구성을 수정한 후 명령으로 sudo docker restart dhcpd Apstra ZTP DHCP 프로세스를 다시 시작합니다.

ZTP용 컨트롤러 IP 주소 구성

컨트롤러 IP 및 Apstra ZTP 사용자 이름은 Apstra ZTP 4.0 서버의 /containers_data/status/app/aos.conf 파일에 구성되어야 합니다.

ip 컨트롤러의 IP 주소
user ZTP 또는 관리 사용자의 사용자 이름
password 사용자 암호

Apstra ZTP 구성 파일 편집

Apstra ZTP VM에는 TFTP 및 nginx HTTP 서버가 포함되어 있습니다. 이들 서버는 구성을 요구하지 않습니다. 두 서버 모두 디렉토리의 /containers_data/tftp 파일을 지원합니다.

이 파일에는 ztp.json Apstra ZTP 스크립트에 대한 모든 구성이 포함되어 있습니다 ztp.py.

  1. ztp.json vi 또는 nano 텍스트 편집기를 통해 파일을 편집합니다.
  2. 파일은 ztp.json 다음으로 구성됩니다.
    기본값 - 값은 더 구체적인 키가 정의되지 않는 한 모든 디바이스에 사용됩니다.
    "defaults": {
      "device-root-password": "root-password-123",
      "device-user": "admin",
      "device-user-password": "admin-password-123",
      "system-agent-params": {
        "agent_type": "onbox",
        "install_requirements": false
      }
    }
    플랫폼 - 값은 보다 구체적인 키가 정의되지 않는 한 네트워크 플랫폼("cumulus", "nxos", "eos", "junos", "sonic")의 모든 디바이스에 사용됩니다.
    "cumulus": {
      "cumulus-versions": ["3.7.13"],
      "cumulus-image": "http://192.168.59.4/cumulus-linux-3.7.13-bcm-amd64.bin",
      "license": "cumulus_license_file",
      "custom-config": "cumulus_custom.sh",
    }
    모델 - 값은 특정 장비 모델(예: "N9K-C93180YC-FX")의 모든 디바이스에 사용됩니다.
    "N9K-C93180YC-FXC3396": {
      "custom-config": "93180_cumulus_custom.sh",
    }
    일련 번호 - 값은 특정 디바이스 일련 번호와 일치하는 디바이스에 사용됩니다(예: "525400B3C311").
    "525400B3C311": {
      "cumulus-versions": [ "3.7.13" ],
      "cumulus-image": "http://192.168.59.4/cumulus-linux-3.7.13-bcm-amd64.bin"
    }

    보다 구체적인 데이터가 다른 데이터보다 우선합니다. 예를 들어, 특정 일련 번호에 대한 데이터는 다른 데이터보다 우선합니다. 그런 다음 플랫폼을 모델링한 다음 최종적으로 기본 데이터를 지정합니다.

  3. Tthe ztp.json 파일은 다음 키를 사용합니다.
    junos-versions - 주니퍼 Junos 장비의 유효한 버전. 디바이스가 이 목록에서 버전을 실행하지 않는 경우 ZTP는 이미지로 디바이스를 junos-image 업그레이드합니다. "junos-versions": [ "20.2R2-S3.5" ]
    junos-image - 실행 중인 버전이 목록에 있는 버전과 일치하지 않을 경우 로드할 Juniper Junos TGZ 이미지의 junos-versions 파일 이름.
    • 기본적으로 이미지 이름은 ZTP 서버의 디렉토리에서 TFTP를 통해 ZTP 서버 /container_data/tftp/ 에서 로드됩니다. 예를 들어: "junos-image": "jinstall-host-qfx-5-20.2R2-S3.5-signed.tgz"
    • 이미지 전송을 위해 HTTP 서버를 사용하려면 IP 주소가 있는 유효한 HTTP URL을 입력합니다. 예를 들어: "junos-image": "http://192.168.59.4/jinstall-host-qfx-5-20.2R2-S3.5-signed.tgz"

    이 설명은 컨트롤러의 HTTP를 사용하여 주니퍼 Junos 이미지를 전송합니다.

    sonic-versions- SONiC 디바이스의 유효한 버전. 디바이스가 이 목록에서 버전을 실행하지 않는 경우 ZTP는 이미지로 디바이스를 sonic-image 업그레이드합니다. "sonic-versions": [ "SONiC-OS-3.1.0a-Enterprise_Base" ]
    sonic-image - 실행 중인 버전이 목록에 있는 버전과 일치하지 않으면 SONiC ONIE BIN 이미지의 sonic-versions 파일명 로드.
    • 기본적으로 이미지 이름은 ZTP 서버의 디렉토리에서 TFTP를 통해 ZTP 서버 /container_data/tftp/ 에서 로드됩니다. 예를 들어: "sonic-image": "sonic-3.1.0a-bcm.bin"
    • 이미지 전송을 위해 HTTP 서버를 사용하려면 IP 주소가 있는 유효한 HTTP URL을 입력합니다. 예를 들어: "sonic-image": "http://192.168.59.3/sonic-3.1.0a-bcm.bin"

    이 예에서는 컨트롤러의 HTTP를 사용하여 SONiC 이미지를 전송합니다.

    nxos-versions - NX-OS 디바이스의 유효한 버전. 디바이스가 이 목록에서 버전을 실행하지 않는 경우 ZTP는 이미지로 디바이스를 nxos-image 업그레이드합니다. "nxos-versions": [ "9.2(2)", "9.3(6)" ]
    nxos-image - 실행 중인 버전이 목록에 있는 버전과 일치하지 않는 경우 로드할 NX-OS 이미지의 nxos-versions 파일 이름.
    • 기본적으로 이미지 이름은 ZTP 서버의 디렉토리에서 TFTP를 통해 ZTP 서버 /container_data/tftp/ 에서 로드됩니다. 예를 들어: "nxos-image": "nxos.9.3.6.bin"
    • 이미지 전송을 위해 HTTP 서버를 사용하려면 IP 주소가 있는 유효한 HTTP URL을 입력합니다. 예를 들어: "nxos-image": "http://192.168.59.4/nxos.9.3.6.bin"

    이 예에서는 ZTP 서버의 HTTP를 사용하여 Cisco NX-OS 이미지를 전송합니다.

    eos-versions - Arista EOS 장비의 유효한 버전. 디바이스가 이 목록에서 버전을 실행하지 않는 경우 ZTP는 이미지로 디바이스를 eos-image 업그레이드합니다. "eos-versions": [ "4.22.3M", "4.24.5M" ]
    eos-image - 실행 중인 버전이 목록에 있는 버전과 일치하지 않으면 로드될 Arista EOS SWI 이미지의 eos-versions 파일 이름.
    • 기본적으로 이미지 이름은 ZTP 서버의 디렉토리에서 TFTP를 통해 ZTP 서버 /container_data/tftp/ 에서 로드됩니다. 예를 들어: "eos-image": "EOS-4.24.5M.swi"

    • 이미지 전송을 위해 HTTP 서버를 사용하려면 IP 주소가 있는 유효한 HTTP URL을 입력합니다. 예를 들어: "eos-image": "http://192.168.59.3/dos_images/EOS-4.24.5M.swi"

    이 예에서는 컨트롤러의 HTTP를 사용하여 Arista EOS 이미지를 전송합니다.

    cumulus-versions - Cumulus Linux 장비의 유효한 버전. 디바이스가 이 목록에서 버전을 실행하지 않는 경우 ZTP는 이미지로 디바이스를 cumulus-image 업그레이드합니다. "cumulus-versions": [ "3.7.12", "3.7.13" ]
    cumulus-image - 실행 중인 버전이 목록에 있는 버전과 일치하지 않으면 Cumulus Linux ONIE BIN 이미지의 cumulus-versions 파일명 로드.
    • 기본적으로 이미지 이름은 ZTP 서버의 디렉토리에서 TFTP를 통해 ZTP 서버 /container_data/tftp/ 에서 로드됩니다. 예를 들어: "cumulus-image": "cumulus-linux-3.7.13-bcm-amd64.bin"
    • 이미지 전송을 위해 HTTP 서버를 사용하려면 IP 주소가 있는 유효한 HTTP URL을 입력합니다. 예를 들어: "cumulus-image": "http://192.168.59.4/cumulus-linux-3.7.13-bcm-amd64.bin"

    이 예에서는 ZTP 서버의 HTTP를 사용하여 Cumulus Linux 이미지를 전송합니다.

    device-root-password - ZTP 프로세스는 디바이스 루트 암호를 이 값으로 설정합니다. Arista EOS 및 Cisco NX-OS 디바이스의 device-root-password 경우 시스템 admin 암호에 대한 암호를 설정하는 데 사용됩니다. "device-root-password": "root-admin-password"
    device-user / device-user-password - 장비 시스템 에이전트에 사용되는 사용자 이름 및 암호. 또한 필요한 경우 ZTP 프로세스는 이 사용자 이름과 암호를 가진 사용자를 장비에 만듭니다.
    "device-user": "aosadmin",
    "device-user-password": "aosadmin-password"
    license - TFTP 디렉토리에 있는 Cumulus Linux 라이선스 파일의 파일 이름 또는 HTTP 서버의 파일을 가리키는 URL. "license": "cumulus_license_file"
    custom-config - TFTP 디렉토리의 사용자 지정 구성 셸 스크립트의 파일 이름 또는 HTTP 서버의 파일을 가리키는 URL. 이 셸 스크립트는 ZTP 동안 실행되어 장치에 사용자 지정 구성을 추가할 수 있습니다. 자세한 내용은 아래 플랫폼별 정보 섹션을 참조하십시오. "custom-config": "cumulus_custom.sh"
    system-agent-params 아래에서 설명한 대로 디바이스에서 새로운 사용자 및 디바이스 시스템 에이전트를 생성하는 데 사용되는 정보입니다.
    agent_type - 에이전트 유형, 온박스 또는 오프박스 "agent_type": "onbox"
    install_requirements - 항상 false로 설정. 현재 지원되는 네트워크 운영 체제에 필요하지 않습니다. "install_requirements": false
    job_on_create - 디바이스에 에이전트를 설치하도록 install 설정.

    "job_on_create": "install"

    Junos 예

    {
            "junos": {
                    "junos-versions": ["21.2R1-S2.2"],
                    "junos-image": "http://10.85.24.52/juniper/21.2R1-S2.2/jinstall-host-qfx-5e-x86-64-21.2R1-S2.2-secure-signed.tgz",
                    "device-root-password": "root123",
                    "device-user": "admin",
                    "device-user-password": "admin",
                    "system-agent-params": {
                            "platform": "junos",
                            "agent_type": "offbox",
                            "job_on_create": "install"
                    }
            },
            "QFX10002-36Q": {
                   "junos-versions": ["21.2R1-S2.2"],
                    "junos-image": "http://10.85.24.52/juniper/21.2R1-S2.2/jinstall-host-qfx-10-f-x86-64-21.2R1-S2.2-secure-signed.tgz"
            },
            "JNP10002-60C [QFX10002-60C]": {
                    "junos-versions": ["21.2R1-S1.3"],
                    "junos-image": "http://10.85.24.52/juniper/21.2R1-S1.3/junos-vmhost-install-qfx-x86-64-21.2R1-S1.3.tgz"
            }
    }
    platform - (오프박스 에이전트에만 필요) 장비 플랫폼으로 설정("eos", "nxos", "junos"). 모든 소문자 안에 있어야 합니다. "platform": "junos"
    open_options - (오프박스 에이전트만 해당) 오프박스 에이전트와 디바이스 API 인터페이스 사이에 HTTPS를 사용하도록 설정. open_options 정의되지 않으면 연결이 HTTP로 기본 설정됩니다.
    "open_options": {
      "proto": "https",
      "port": "443"
    }
    packages - 시스템 에이전트에 업로드할 추가 SDK 또는 확장 텔레메트리 패키지를 구성하도록 설정합니다.
    "packages": [
      "aos-deployment-helper-nxos",
      "aosstdcollectors-builtin-nxos",
      "aosstdcollectors-custom-nxos"
    ]

사용 가능한 system-agent-params 모든 옵션에 /api/system-agents대한 REST API 설명서는 Swagger를 참조하십시오.