웹사이트 검색

로컬 DVD 소스를 사용하여 PXE 서버를 통해 Ubuntu를 설치하는 방법


PXE 또는 Preboot eXecution Environment는 클라이언트 시스템에 네트워크에서 부팅하도록 지시하는 서버-클라이언트 메커니즘입니다.

이 가이드에서는 Apache 웹을 통해 Ubuntu 서버 ISO 이미지에서 미러링된 로컬 HTTP 소스를 사용하여 PXE 서버를 통해 Ubuntu Server를 설치하는 방법을 보여줍니다. 섬기는 사람. 이 튜토리얼에서 사용되는 PXE 서버는 Dnsmasq 서버입니다.

요구사항:

  1. Ubuntu Server 16.04 또는 17.04 설치
  2. 고정 IP 주소로 구성된 네트워크 인터페이스
  3. Ubuntu Server 16.04 또는 17.04 ISO 이미지

1단계: DNSMASQ 서버 설치 및 구성

1. PXE 서버를 설정하려면 첫 번째 단계에서 루트 계정 또는 루트 권한이 있는 계정으로 로그인하고 Dnsmasq 패키지를 설치합니다. 우분투에서 다음 명령을 실행하여.

apt install dnsmasq

2. 다음으로 dnsmasq 기본 구성 파일을 백업한 후 다음 구성으로 파일 편집을 시작합니다.

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

dnsmasq.conf 파일에 다음 구성을 추가합니다.

interface=ens33,lo
bind-interfaces
domain=mypxe.local

dhcp-range=ens33,192.168.1.230,192.168.1.253,255.255.255.0,1h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
dhcp-option=6,8.8.8.8
server=8.8.4.4
dhcp-option=28,10.0.0.255
dhcp-option=42,0.0.0.0

dhcp-boot=pxelinux.0,pxeserver,192.168.1.14

pxe-prompt="Press F8 for menu.", 2
pxe-service=x86PC, "Install Ubuntu 16.04 from network server 192.168.1.14", pxelinux
enable-tftp
tftp-root=/srv/tftp

위의 구성 파일에서 다음 줄을 적절하게 바꾸십시오.

  • 인터페이스 자신의 컴퓨터 네트워크 인터페이스로 교체합니다.
  • 도메인 – 도메인 이름으로 바꿉니다.
  • dhcp-range – DHCP가 이 네트워크 세그먼트에 IP를 할당하기 위한 자체 네트워크 범위와 클라이언트에 대한 IP 주소를 부여해야 하는 기간을 정의합니다.
  • dhcp-option=3 – 게이트웨이 IP입니다.
  • dhcp-option=6 DNS 서버 IP – 여러 DNS IP를 정의할 수 있습니다.
  • 서버 – DNS 전달자 IP 주소입니다.
  • dhcp-option=28 – 네트워크 브로드캐스트 주소입니다.
  • dhcp-option=42 – NTP 서버 – 0.0.0.0 사용 주소는 자체 참조용입니다.
  • dhcp-boot – pxe 부팅 파일 및 PXE 서버의 IP 주소(여기서는 pxelinux.0 및 동일한 시스템의 IP 주소).
  • pxe-prompt – F8 키를 눌러 PXE 메뉴로 들어가거나 2초 후에 PXE 메뉴로 자동 전환할 수 있습니다.
  • pxe=service – 32비트/64비트 아키텍처용 x86PC를 사용하고 문자열 따옴표 아래에 메뉴 설명 프롬프트를 입력합니다. 다른 값 유형은 PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI 및 X86-64_EFI일 수 있습니다.
  • enable-tftp – 내장 TFTP 서버를 활성화합니다.
  • tftp-root – 네트워크 부팅 파일의 시스템 경로입니다.

3. 또한 dnsmasq 구성 파일 편집을 마친 후 아래 명령을 실행하여 PXE netboot 파일용 디렉터리를 생성하고 변경 사항을 적용하려면 dnsmasq 데몬을 다시 시작하세요. dnsmasq 서비스 상태를 확인하여 서비스가 시작되었는지 확인하세요.

mkdir /srv/tftp
systemctl restart dnsmasq.service
systemctl status dnsmasq.service

2단계: TFTP Netboot 파일 설치

4. 다음 단계에서는 다음 명령을 실행하여 64비트 아키텍처용 Ubuntu 서버 ISO 이미지의 최신 버전을 가져옵니다.

wget http://releases.ubuntu.com/16.04/ubuntu-16.04.3-server-amd64.iso

5. Ubuntu 서버 ISO를 다운로드한 후 /mnt 디렉터리에 이미지를 마운트하고 아래 명령을 실행하여 마운트된 디렉터리 내용을 나열합니다.

mount -o loop ubuntu-16.04.3-desktop-amd64.iso /mnt/
ls /mnt/

6. 다음으로, 아래 명령을 실행하여 Ubuntu 마운트 트리에서 tftp 시스템 경로로 netboot 파일을 복사합니다. 또한 복사된 파일을 보려면 tftp 시스템 경로를 나열하십시오.

cp -rf /mnt/install/netboot/* /srv/tftp/
ls /srv/tftp/

3단계: 로컬 설치 소스 파일 준비

7. Ubuntu 서버의 로컬 네트워크 설치 소스는 HTTP 프로토콜을 통해 제공됩니다. 먼저 다음 명령을 실행하여 Apache 웹 서버를 설치, 시작 및 활성화하십시오.

apt install apache2
systemctl start apache2
systemctl status apache2
systemctl enable apache2

8. 그런 다음 아래 명령을 실행하여 마운트된 Ubuntu DVD의 콘텐츠를 Apache 웹 서버 웹 루트 경로에 복사합니다. Ubuntu ISO 마운트 트리가 완전히 복사되었는지 확인하려면 Apache 웹 루트 경로의 내용을 나열하십시오.

cp -rf /mnt/* /var/www/html/
ls /var/www/html/

9. 다음으로 방화벽에서 HTTP 포트를 열고 브라우저(http://192.168.1.14/ubuntu)를 통해 컴퓨터 IP 주소로 이동하여 테스트합니다. HTTP 프로토콜을 통해 소스에 도달할 수 있습니다.

ufw allow http

4단계: PXE 서버 구성 파일 설정

10. PXE 및 로컬 소스를 통해 rootfs를 피벗할 수 있으려면 Ubuntu는 사전 설정 파일을 통해 지시를 받아야 합니다. 다음 콘텐츠로 웹 서버 문서 루트 경로에 다음 local-sources.seed 파일을 만듭니다.

nano /var/www/html/ubuntu/preseed/local-sources.seed

local-sources.seed 파일에 다음 줄을 추가합니다.

d-i live-installer/net-image string http://192.168.1.14/ubuntu/install/filesystem.squashfs

여기서는 IP 주소를 적절하게 바꾸십시오. 웹 리소스가 위치한 IP 주소여야 합니다. 이 가이드에서는 웹 소스, PXE 서버 및 TFTP 서버가 동일한 시스템에서 호스팅됩니다. 혼잡한 네트워크에서는 PXE 네트워크 속도를 향상시키기 위해 별도의 시스템에서 PXE, TFTP 및 웹 서비스를 실행할 수 있습니다.

11. PXE 서버는 pxelinux.cfg TFTP 루트 디렉터리에 있는 구성 파일을 GUID 파일, MAC 파일, 기본 파일 순서로 읽고 실행합니다.

이전에 Ubuntu 마운트 ISO 이미지에서 netboot 파일을 복사했기 때문에 pxelinux.cfg 디렉터리가 이미 생성되어 필수 PXE 구성 파일로 채워져 있습니다.

위의 미리 설정문 파일을 PXE 구성 파일의 Ubuntu 설치 레이블에 추가하려면 아래 명령을 실행하여 편집할 다음 파일을 엽니다.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg

Ubuntu PXE txt.cfg 구성 파일에서 아래 발췌에 설명된 대로 다음 줄을 바꿉니다.

append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

/srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg 파일에는 다음과 같은 전역 콘텐츠가 있어야 합니다.

default install
label install
	menu label ^Install Ubuntu 16.04 with Local Sources
	menu default
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 
label cli
	menu label ^Command-line install
	kernel ubuntu-installer/amd64/linux
	append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

12. Ubuntu Rescue 메뉴에 사전 시드 URL 문을 추가하려면 아래 파일을 열고 아래 예와 같이 내용을 업데이트했는지 확인하세요.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/rqtxt.cfg

rqtxt.cfg 파일에 다음 구성을 추가합니다.

label rescue
	menu label ^Rescue mode
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true --- quiet

업데이트해야 하는 중요한 줄은 네트워크에서 누른 파일이 있는 URL 주소를 지정하는 url=http://192.168.1.14/ubuntu/preseed/local-sources.seed입니다.

13. 마지막으로 Ubuntu pxe menu.cfg 파일을 열고 아래 스크린샷과 같이 PXE 부팅 화면을 확장하기 위해 처음 세 줄을 주석 처리합니다.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/menu.cfg

다음 세 줄을 주석으로 처리하세요.

#menu hshift 13
#menu width 49
#menu margin 8

5단계: Ubuntu에서 방화벽 포트 열기

14. 아래 발췌에서 설명한 대로 루트 권한으로 netstat 명령을 실행하여 서버에서 수신 대기 상태에 있는 dnsmasq, tftp 및 웹 개방형 포트를 식별합니다.

netstat -tulpn

15. 필요한 포트를 모두 식별한 후 아래 명령을 실행하여 ufw 방화벽에서 포트를 엽니다.

ufw allow 53/tcp
ufw allow 53/udp
ufw allow 67/udp
ufw allow 69/udp
ufw allow 4011/udp

6단계: PXE를 통해 로컬 소스로 Ubuntu 설치

16. PXE를 통해 Ubuntu 서버를 설치하고 로컬 네트워크 설치 소스를 사용하려면 머신 클라이언트를 재부팅하고 BIOS에 네트워크에서 부팅하도록 지시한 다음 첫 번째 PXE 메뉴 화면에서 그림과 같이 첫 번째 옵션을 선택합니다. 아래 이미지.

17. 설치 절차는 평소대로 수행해야 합니다. 설치 프로그램이 Ubuntu 아카이브 미러 국가 설정에 도달하면 위쪽 키보드 화살표를 사용하여 정보를 수동으로 입력이라고 표시된 첫 번째 옵션으로 이동합니다.

18. 이 옵션을 업데이트하려면 [enter] 키를 누르고, 미러 문자열을 삭제하고 웹 서버 미러 소스의 IP 주소를 추가한 다음 Enter를 눌러 다음 그림과 같이 계속하세요. 아래 이미지.

http://192.168.1.14

19. 다음 화면에서 아래와 같이 미러 아카이브 디렉토리를 추가하고 Enter 키를 눌러 설치 프로세스를 계속 진행합니다.

/ubuntu

20. 네트워크 로컬 미러에서 다운로드한 패키지에 대한 정보를 보려면 [CTRL+ALT+F2] 키를 눌러 머신 가상 콘솔을 변경하세요. 그리고 다음 명령을 실행하세요.

tail –f /var/log/syslog

21. Ubuntu 서버 설치가 완료되면 새로 설치된 시스템에 로그인하고 루트 권한으로 다음 명령을 실행하여 로컬 네트워크 소스의 리포지토리 패키지를 공식 Ubuntu 미러로 업데이트합니다.

인터넷 저장소를 사용하여 시스템을 업데이트하려면 미러를 변경해야 합니다.

sudo sed –i.bak ‘s/192.168.1.14/archive.ubuntu.com/g’ /etc/apt/sources.list

자신의 웹 로컬 소스의 IP 주소에 따라 IP 주소를 바꾸십시오.

그게 다야! 이제 Ubuntu 서버 시스템을 업데이트하고 필요한 모든 소프트웨어를 설치할 수 있습니다. PXE 및 로컬 네트워크 소스 미러를 통해 Ubuntu를 설치하면 설치 속도가 향상될 수 있으며, 짧은 시간 내에 많은 수의 서버를 구내에 배포하는 경우 인터넷 대역폭과 비용을 절약할 수 있습니다.