ค้นหาเว็บไซต์

วิธีการติดตั้ง Ubuntu ผ่านเซิร์ฟเวอร์ PXE โดยใช้แหล่ง DVD ในเครื่อง


PXE หรือ Preboot eXecution Environment เป็นกลไกของเซิร์ฟเวอร์-ไคลเอ็นต์ ซึ่งสั่งให้เครื่องไคลเอ็นต์บูตจากเครือข่าย

ในคู่มือนี้ เราจะแสดงวิธีการติดตั้ง เซิร์ฟเวอร์ Ubuntu ผ่านเซิร์ฟเวอร์ PXE ที่มีแหล่งที่มา HTTP ในเครื่องซึ่งมิเรอร์จากอิมเมจ ISO ของเซิร์ฟเวอร์ Ubuntu ผ่านทางเว็บ Apache เซิร์ฟเวอร์ เซิร์ฟเวอร์ PXE ที่ใช้ในบทช่วยสอนนี้คือ เซิร์ฟเวอร์ DNS

ความต้องการ:

  1. การติดตั้ง Ubuntu Server 16.04 หรือ 17.04
  2. อินเทอร์เฟซเครือข่ายที่กำหนดค่าด้วยที่อยู่ IP แบบคงที่
  3. อิมเมจ ISO ของ Ubuntu Server 16.04 หรือ 17.04

ขั้นตอนที่ 1: ติดตั้งและกำหนดค่าเซิร์ฟเวอร์ DNSMASQ

1. ในการตั้งค่าเซิร์ฟเวอร์ PXE ในขั้นตอนแรกเข้าสู่ระบบด้วยบัญชีรูทหรือบัญชีที่มีสิทธิ์รูท และติดตั้งแพ็คเกจ Dnsmasq ใน Ubuntu โดยใช้คำสั่งต่อไปนี้

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 – กำหนดช่วงเครือข่ายของคุณเองสำหรับ DHCP เพื่อจัดสรร IP ให้กับส่วนเครือข่ายนี้ และควรให้ที่อยู่ IP สำหรับไคลเอ็นต์นานเท่าใด
  • dhcp-option=3 – IP เกตเวย์ของคุณ
  • dhcp-option=6 IP เซิร์ฟเวอร์ DNS – สามารถกำหนด IP DNS ได้หลายรายการ
  • เซิร์ฟเวอร์ – ที่อยู่ IP ของผู้ส่งต่อ DNS
  • dhcp-option=28 – ที่อยู่การออกอากาศเครือข่ายของคุณ
  • dhcp-option=42 – เซิร์ฟเวอร์ NTP – ใช้ 0.0.0.0 ที่อยู่สำหรับการอ้างอิงตนเอง
  • dhcp-boot – ไฟล์บูต pxe และที่อยู่ IP ของเซิร์ฟเวอร์ PXE (ในที่นี้ pxelinux.0 และที่อยู่ IP ของเครื่องเดียวกัน)
  • pxe-prompt – การใช้งานสามารถกดปุ่ม F8 เพื่อเข้าสู่เมนู PXE หรือรอ 2 วินาทีก่อนที่จะเปลี่ยนเป็นเมนู PXE โดยอัตโนมัติ
  • pxe=service – ใช้ x86PC สำหรับสถาปัตยกรรม 32 บิต/64 บิต และป้อนข้อความแจ้งคำอธิบายเมนูใต้เครื่องหมายคำพูดสตริง ประเภทค่าอื่นๆ อาจเป็นได้: 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 daemon เพื่อใช้การเปลี่ยนแปลง ตรวจสอบสถานะบริการ DNS เพื่อดูว่าได้เริ่มต้นแล้วหรือไม่

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

ขั้นตอนที่ 2: ติดตั้งไฟล์ TFTP Netboot

4. ในขั้นตอนถัดไป ให้คว้าอิมเมจ ISO เซิร์ฟเวอร์ Ubuntu เวอร์ชันล่าสุดสำหรับสถาปัตยกรรม 64 บิต โดยใช้คำสั่งต่อไปนี้

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

5. หลังจากดาวน์โหลด ISO เซิร์ฟเวอร์ Ubuntu แล้ว ให้เมาต์อิมเมจในไดเร็กทอรี /mnt และแสดงรายการเนื้อหาไดเร็กทอรีที่ติดตั้งโดยการรันคำสั่งด้านล่าง

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

6. จากนั้น คัดลอกไฟล์ netboot จากแผนผังที่ติดตั้ง Ubuntu ไปยังพาธของระบบ tftp โดยใช้คำสั่งด้านล่าง นอกจากนี้ ให้แสดงรายการเส้นทางระบบ 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 โดยดำเนินการคำสั่งด้านล่าง แสดงรายการเนื้อหาของเส้นทางรูทของเว็บ Apache เพื่อตรวจสอบว่าต้นไม้ที่เมาท์ Ubuntu ISO ได้รับการคัดลอกอย่างสมบูรณ์หรือไม่

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

9. จากนั้น เปิดพอร์ต HTTP ในไฟร์วอลล์และนำทางไปยังที่อยู่ IP ของเครื่องของคุณผ่านเบราว์เซอร์ (http://192.168.1.14/ubuntu) เพื่อทดสอบว่าคุณ สามารถเข้าถึงแหล่งที่มาผ่านโปรโตคอล HTTP

ufw allow http

ขั้นตอนที่ 4: ตั้งค่าไฟล์การกำหนดค่าเซิร์ฟเวอร์ PXE

10. เพื่อให้สามารถหมุน rootfs ผ่าน PXE และแหล่งที่มาในเครื่องได้ Ubuntu จำเป็นต้องได้รับคำสั่งผ่านไฟล์ preseed สร้างไฟล์ 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, TFTP และบริการบนเว็บบนเครื่องที่แยกจากกัน เพื่อปรับปรุงความเร็วเครือข่าย PXE

11. เซิร์ฟเวอร์ PXE อ่านและดำเนินการไฟล์การกำหนดค่าที่อยู่ใน pxelinux.cfg ไดเร็กทอรีราก TFTP ตามลำดับนี้: ไฟล์ GUID, ไฟล์ MAC และไฟล์เริ่มต้น

ไดเรกทอรี pxelinux.cfg ถูกสร้างขึ้นแล้วและเต็มไปด้วยไฟล์การกำหนดค่า PXE ที่จำเป็น เนื่องจากก่อนหน้านี้เราได้คัดลอกไฟล์ netboot จากอิมเมจ ISO ที่ติดตั้งบน Ubuntu

ในการเพิ่มไฟล์คำสั่ง preseed ข้างต้นลงในป้ายกำกับการติดตั้ง Ubuntu ในไฟล์กำหนดค่า PXE ให้เปิดไฟล์ต่อไปนี้เพื่อแก้ไขโดยใช้คำสั่งด้านล่าง

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

ในไฟล์การกำหนดค่า txt.cfg ของ Ubuntu PXE ให้แทนที่บรรทัดต่อไปนี้ดังที่แสดงในข้อความที่ตัดตอนมาด้านล่าง

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. ในกรณีที่คุณต้องการเพิ่มคำสั่ง preseed url ลงในเมนู Ubuntu Rescue ให้เปิดไฟล์ด้านล่างและตรวจสอบให้แน่ใจว่าคุณได้อัปเดตเนื้อหาตามที่แสดงในตัวอย่างด้านล่าง

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=http://192.168.1.14/ubuntu/preseed/local-sources.seed ซึ่งระบุที่อยู่ URL ที่ไฟล์ที่กดอยู่ในเครือข่ายของคุณ

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: ติดตั้ง Ubuntu ด้วย Local Sources ผ่าน PXE

16. หากต้องการติดตั้งเซิร์ฟเวอร์ Ubuntu ผ่าน PXE และใช้แหล่งการติดตั้งเครือข่ายท้องถิ่น ให้รีบูตเครื่องไคลเอ็นต์ของคุณ สั่งให้ 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 เสร็จสิ้น ให้เข้าสู่ระบบระบบที่ติดตั้งใหม่และรันคำสั่งต่อไปนี้ด้วยสิทธิ์ root เพื่ออัปเดตแพ็คเกจที่เก็บข้อมูลจากแหล่งเครือข่ายท้องถิ่นเป็นมิเรอร์ Ubuntu อย่างเป็นทางการ

จำเป็นต้องเปลี่ยนมิเรอร์เพื่ออัพเดตระบบโดยใช้ที่เก็บข้อมูลอินเทอร์เน็ต

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

ตรวจสอบให้แน่ใจว่าคุณเปลี่ยนที่อยู่ IP ตามที่อยู่ IP ของแหล่งที่มาในเว็บของคุณเอง

นั่นคือทั้งหมด! ตอนนี้คุณสามารถอัปเดตระบบเซิร์ฟเวอร์ Ubuntu ของคุณและติดตั้งซอฟต์แวร์ที่จำเป็นทั้งหมดได้แล้ว การติดตั้ง Ubuntu ผ่าน PXE และมิเรอร์แหล่งที่มาของเครือข่ายท้องถิ่นสามารถปรับปรุงความเร็วในการติดตั้งและประหยัดแบนด์วิดท์อินเทอร์เน็ตและค่าใช้จ่ายในกรณีที่มีการใช้เซิร์ฟเวอร์จำนวนมากในช่วงเวลาสั้นๆ ที่สถานที่ของคุณ