PXE는 여러 구성 요소, 즉 DHCP, HTTP 및 TFTP로 구성됩니다. 이 절차에서는 Ubuntu에서 PXE 서버를 설치하는 방법을 보여줍니다.

DHCP는 NSX Edge와 같은 NSX-T Data Center 구성 요소에 동적으로 IP 설정을 배포합니다. PXE 환경에서 DHCP 서버는 NSX Edge에서 IP 주소를 자동으로 요청하고 수신하도록 합니다.

TFTP는 파일 전송 프로토콜입니다. TFTP 서버는 항상 네트워크에서 PXE 클라이언트를 수신합니다. 이 서버는 PXE 서비스를 요청하는 네트워크 PXE 클라이언트를 감지하면 NSX-T Data Center 구성 요소 ISO 파일과 미리 시드된 파일에 포함된 설치 설정을 제공합니다.

사전 요구 사항

  • 배포 환경에서 PXE 서버를 사용할 수 있어야 합니다. PXE 서버는 어떤 Linux 배포판에도 설치할 수 있습니다. PXE 서버에는 외부 통신용 인터페이스 1개와 DHCP IP 및 TFTP 서비스를 제공하는 인터페이스 1개가 있어야 합니다.

    여러 관리 네트워크가 있으면 NSX-T Data Center 장치에서 다른 네트워크로의 정적 경로를 추가할 수 있습니다.

  • 미리 시드된 구성 파일에 net.ifnames=0 및 biosdevname=0 매개 변수가 설정되어 있는지 확인하여 -- 재부팅 후에도 지속되도록 합니다.

프로시저

  1. (선택 사항) kickstart 파일을 사용하여 Ubuntu 서버에서 새로운 TFTP 또는 DHCP 서비스를 설정합니다.

    kickstart 파일은 첫 번째 부팅 후에 장치에서 실행하는 CLI 명령이 포함된 텍스트 파일입니다.

    가리키는 PXE 서버를 기준으로 kickstart 파일의 이름을 지정합니다. 예:

    nsxcli.install

    파일을 웹 서버(예: /var/www/html/nsx-edge/nsxcli.install)에 복사해야 합니다.

    kickstart 파일에서 CLI 명령을 추가할 수 있습니다. 예를 들어, 관리 인터페이스의 IP 주소를 구성하려면:

    stop dataplane
    set interface eth0 <ip-cidr-format> plane mgmt
    start dataplane

    관리자 암호를 변경하려면:

    set user admin password <new_password> old-password <old-password>

    preseed.cfg 파일에 암호를 지정하는 경우 kickstart 파일에 지정한 암호와 동일한 암호를 사용합니다. 그러지 않을 경우 기본 암호인 "default"를 사용합니다.

    NSX Edge를 관리부에 연결하려면:

    join management-plane <mgr-ip> thumbprint <mgr-thumbprint> username <mgr-username> password <mgr password>
  2. 관리용 인터페이스 1개와 DHCP 및 TFTP 서비스용 인터페이스 1개를 생성합니다.

    DHCP/TFTP 인터페이스가 NSX Edge가 상주하는 동일한 서브넷에 있는지 확인합니다.

    예를 들어 NSX Edge 관리 인터페이스가 192.168.210.0/24 서브넷에 배치될 예정이면 eth1도 동일한 서브넷에 배치합니다.

    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # PXE server's management interface
    auto eth0
    iface eth0 inet static
      address 192.168.110.81
      gateway 192.168.110.1
      netmask 255.255.255.0
      dns-nameservers 192.168.110.10
    
    # PXE server's DHCP/TFTP interface
    auto eth1
    iface eth1 inet static
      address 192.168.210.82
      gateway 192.168.210.1
      netmask 255.255.255.0
      dns-nameservers 192.168.110.10
    
  3. DHCP 서버 소프트웨어를 설치합니다.
    sudo apt-get install isc-dhcp-server -y
  4. /etc/default/isc-dhcp-server 파일을 편집하고 DHCP 서비스를 제공하는 인터페이스를 추가합니다.
    INTERFACES="eth1"
  5. (선택 사항) 이 DHCP 서버를 로컬 네트워크에 대한 공식 DHCP 서버로 지정하려면 /etc/dhcp/dhcpd.conf 파일에서 authoritative; 줄의 주석 처리를 해제합니다.
    ...
    authoritative;
    ...
  6. /etc/dhcp/dhcpd.conf 파일에서 PXE 네트워크에 대한 DHCP 설정을 정의합니다.

    예:

    subnet 192.168.210.0 netmask 255.255.255.0 {
       range 192.168.210.90 192.168.210.95;
       option subnet-mask 255.255.255.0;
       option domain-name-servers 192.168.110.10;
       option routers 192.168.210.1;
       option broadcast-address 192.168.210.255;
       default-lease-time 600;
       max-lease-time 7200;
    }
  7. DHCP 서비스를 시작합니다.
    sudo service isc-dhcp-server start
  8. DHCP 서비스가 실행 중인지 확인합니다.
    service --status-all | grep dhcp
  9. PXE 부팅에 필요한 Apache, TFTP 및 기타 구성 요소를 설치합니다.
    sudo apt-get install apache2 tftpd-hpa inetutils-inetd
  10. TFTP와 Apache가 실행 중인지 확인합니다.
    service --status-all | grep tftpd-hpa
    service --status-all | grep apache2
  11. /etc/default/tftpd-hpa 파일에 다음 줄을 추가합니다.
    RUN_DAEMON="yes"
    OPTIONS="-l -s /var/lib/tftpboot"
  12. /etc/inetd.conf 파일에 다음 줄을 추가합니다.
    tftp    dgram   udp    wait    root    /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
  13. TFTP 서비스를 다시 시작합니다.
    sudo /etc/init.d/tftpd-hpa restart
  14. NSX Edge 설치 관리자 ISO 파일을 임시 폴더에 복사하거나 다운로드합니다.
  15. ISO 파일을 마운트하고 설치 구성 요소를 TFTP 서버 및 Apache 서버로 복사합니다.
    sudo mount -o loop ~/nsx-edge.<build>.iso /mnt
    cd /mnt
    sudo cp -fr install/netboot/* /var/lib/tftpboot/
    sudo mkdir /var/www/html/nsx-edge
    sudo cp -fr /mnt/* /var/www/html/nsx-edge/
  16. (선택 사항) /var/www/html/nsx-edge/preseed.cfg 파일을 편집하여 암호화된 암호를 수정합니다.

    mkpasswd와 같은 Linux 도구를 사용하여 암호 해시를 생성할 수 있습니다.

    sudo apt-get install whois
    sudo mkpasswd -m sha-512
    
    Password: 
    $6$SUFGqs[...]FcoHLijOuFD
    1. 루트 암호를 수정하고, /var/www/html/nsx-edge/preseed.cfg를 편집하고 다음 줄을 검색합니다.
      d-i passwd/root-password-crypted password $6$tgmLNLMp$9BuAHhN...
    2. 해시 문자열을 바꿉니다.

      $, ', " 또는 \와 같은 특수 문자는 이스케이프할 필요가 없습니다.

    3. preseed.cfgusermod 명령을 추가하여 루트나 관리자 또는 둘 다의 암호를 설정합니다.

      예를 들어 echo 'VMware NSX Edge' 줄을 검색하고 다음 명령을 추가합니다.

      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' root; \
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' admin; \

      해시 문자열은 예일 뿐입니다. 모든 특수 문자는 이스케이프해야 합니다. 첫 번째 usermod 명령의 루트 암호는 d-i passwd/root-password-crypted password $6$tgm...에 설정된 암호를 대신합니다.

      usermod 명령을 사용하여 암호를 설정하는 경우 처음 로그인할 때 암호를 변경하라는 메시지가 표시되지 않습니다. 그러지 않은 경우 처음 로그인 시 암호를 변경해야 합니다.

  17. /var/lib/tftpboot/pxelinux.cfg/default 파일에 다음 줄을 추가합니다.

    192.168.210.82를 TFTP 서버의 IP 주소로 바꿉니다.

    label nsxedge
        kernel ubuntu-installer/amd64/linux
        ipappend 2
        append netcfg/dhcp_timeout=60 auto=true priority=critical vga=normal partman-lvm/device_remove_lvm=true netcfg/choose_interface=auto debian-installer/allow_unauthenticated=true preseed/url=http://192.168.210.82/nsx-edge/preseed.cfg mirror/country=manual mirror/http/hostname=192.168.210.82 nsx-kickstart/url=http://192.168.210.82/nsx-edge/nsxcli.install mirror/http/directory=/nsx-edge initrd=ubuntu-installer/amd64/initrd.gz mirror/suite=xenial --
  18. /etc/dhcp/dhcpd.conf 파일에 다음 줄을 추가합니다.

    192.168.210.82를 DHCP 서버의 IP 주소로 바꿉니다.

    allow booting;
    allow bootp;
    
    next-server 192.168.210.82; #Replace this IP address
    filename "pxelinux.0";
  19. DHCP 서비스를 다시 시작합니다.
    sudo service isc-dhcp-server restart
    참고:

    오류가 반환되면(예: "중지: 알 수 없는 인스턴스: 시작: 작업 시작 실패") sudo /etc/init.d/isc-dhcp-server stop을 실행한 다음 sudo /etc/init.d/isc-dhcp-server start를 실행합니다. sudo /etc/init.d/isc-dhcp-server start 명령은 오류 원인에 대한 정보를 반환합니다.

다음에 수행할 작업

베어메탈 또는 ISO 파일을 사용하여 NSX Edge를 설치합니다. 베어 메탈에 NSX Edge 설치 또는 ISO 파일을 통해 가상 장치로 NSX Edge 설치의 내용을 참조하십시오.