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

การตั้งค่า 'เซิร์ฟเวอร์บูตเครือข่าย PXE' สำหรับการติดตั้งการกระจาย Linux หลายรายการใน RHEL/CentOS 7


เซิร์ฟเวอร์ PXE – Preboot eXecution Environment – สั่งให้คอมพิวเตอร์ไคลเอนต์บูต รัน หรือติดตั้งระบบปฏิบัติการจากอินเทอร์เฟซเครือข่ายโดยตรง ทำให้ไม่จำเป็นต้องเขียนแผ่น CD/DVD หรือใช้สื่อทางกายภาพ หรือ ช่วยลดความยุ่งยากในการติดตั้งลีนุกซ์บนโครงสร้างพื้นฐานเครือข่ายของคุณบนเครื่องหลายเครื่องในเวลาเดียวกัน

ความต้องการ

  1. ขั้นตอนการติดตั้งขั้นต่ำของ CentOS 7
  2. RHEL 7 ขั้นตอนการติดตั้งขั้นต่ำ
  3. กำหนดค่าที่อยู่ IP แบบคงที่ใน RHEL/CentOS 7
  4. ลบบริการที่ไม่ต้องการใน RHEL/CentOS 7
  5. ติดตั้งเซิร์ฟเวอร์ NTP เพื่อตั้งเวลาระบบที่ถูกต้องใน RHEL/CentOS 7

บทความนี้จะอธิบายวิธีที่คุณสามารถติดตั้งและกำหนดค่า เซิร์ฟเวอร์ PXE บน RHEL/CentOS 7 x64 บิตพร้อมพื้นที่เก็บข้อมูลการติดตั้งภายในแบบมิเรอร์ แหล่งที่มาที่ให้ไว้ โดยอิมเมจ ISO DVD ของ CentOS 7 ด้วยความช่วยเหลือของเซิร์ฟเวอร์ DNSMASQ

ซึ่งให้บริการ DNS และ DHCP แพ็คเกจ Syslinux ซึ่งมีโปรแกรมโหลดบูตสำหรับการบูทเครือข่าย เซิร์ฟเวอร์ TFTP ซึ่งทำให้ อิมเมจที่สามารถบูตได้พร้อมให้ดาวน์โหลดผ่านเครือข่ายโดยใช้ Trivial File Transfer Protocol (TFTTP) และเซิร์ฟเวอร์ VSFTPD ซึ่งจะโฮสต์อิมเมจ DVD แบบมิเรอร์ที่ติดตั้งในเครื่อง – ซึ่งจะทำหน้าที่เป็น RHEL อย่างเป็นทางการ พื้นที่เก็บข้อมูลการติดตั้งมิเรอร์ /CentOS 7 จากตำแหน่งที่ตัวติดตั้งจะแยกแพ็คเกจที่จำเป็น

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

1. ไม่จำเป็นต้องเตือนคุณว่าต้องมีการกำหนดค่าอินเทอร์เฟซการ์ดเครือข่ายตัวใดตัวหนึ่งของคุณในกรณีที่เซิร์ฟเวอร์ของคุณใช้ NIC มากกว่านั้น จะต้องกำหนดค่าด้วยที่อยู่ IP แบบคงที่จากช่วง IP เดียวกันที่เป็นของ ส่วนเครือข่ายที่จะให้บริการ PXE

ดังนั้น หลังจากที่คุณกำหนดค่าที่อยู่ IP แบบคงที่ อัปเดตระบบของคุณและดำเนินการการตั้งค่าเริ่มต้นอื่นๆ แล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง DNSMASQ daemon

yum install dnsmasq

2. ไฟล์การกำหนดค่าเริ่มต้นหลัก DNSMASQ ที่อยู่ในไดเร็กทอรี /etc อธิบายได้ในตัว แต่ตั้งใจว่าจะแก้ไขได้ยาก โปรดทำตามคำอธิบายที่มีความคิดเห็นสูง

ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณได้สำรองไฟล์นี้ไว้ในกรณีที่คุณต้องการตรวจสอบในภายหลัง จากนั้นสร้างไฟล์การกำหนดค่าเปล่าใหม่โดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบโดยออกคำสั่งต่อไปนี้

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

3. ตอนนี้ ให้คัดลอกและวางการกำหนดค่าต่อไปนี้ในไฟล์ dnsmasq.conf และให้แน่ใจว่าคุณได้เปลี่ยนแปลงข้อความที่อธิบายด้านล่างเพื่อให้ตรงกับการตั้งค่าเครือข่ายของคุณตามลำดับ

interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
Gateway
dhcp-option=3,192.168.1.1
DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
Broadcast Address
dhcp-option=28,10.0.0.255
NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

คำสั่งที่คุณต้องเปลี่ยนแปลงมีดังนี้:

  1. อินเทอร์เฟซ – อินเทอร์เฟซที่เซิร์ฟเวอร์ควรรับฟังและให้บริการ
  2. bind-interfaces – ยกเลิกการใส่หมายเหตุเพื่อผูกเฉพาะบนอินเทอร์เฟซนี้
  3. โดเมน – แทนที่ด้วยชื่อโดเมนของคุณ
  4. dhcp-range – แทนที่ด้วยช่วง IP ที่กำหนดโดยเน็ตเวิร์กมาสก์ของคุณในส่วนนี้
  5. dhcp-boot – แทนที่คำสั่ง IP ด้วยที่อยู่ IP ของอินเทอร์เฟซของคุณ
  6. dhcp-option=3,192.168.1.1 – แทนที่ที่อยู่ IP ด้วยเกตเวย์ส่วนเครือข่ายของคุณ
  7. dhcp-option=6,92.168.1.1 – แทนที่ที่อยู่ IP ด้วย IP เซิร์ฟเวอร์ DNS ของคุณ – สามารถกำหนด IP DNS ได้หลายรายการ
  8. server=8.8.4.4 – ใส่ที่อยู่ IP ของผู้ส่งต่อ DNS ของคุณ
  9. dhcp-option=28,10.0.0.255 – แทนที่ที่อยู่ IP ด้วยที่อยู่การออกอากาศเครือข่าย – เป็นทางเลือก
  10. dhcp-option=42,0.0.0.0 – ใส่เซิร์ฟเวอร์เวลาเครือข่ายของคุณ – เป็นทางเลือก (ที่อยู่ 0.0.0.0 ใช้สำหรับการอ้างอิงตัวเอง)
  11. pxe-prompt – ปล่อยให้เป็นค่าเริ่มต้น – หมายถึงการกดปุ่ม F8 เพื่อเข้าสู่เมนู 60 โดยมีเวลารอไม่กี่วินาที..
  12. pxe=service – ใช้ x86PC สำหรับสถาปัตยกรรม 32 บิต/64 บิต และป้อนข้อความแจ้งคำอธิบายเมนูใต้เครื่องหมายคำพูดสตริง ประเภทค่าอื่นๆ อาจเป็นได้: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI และ X86-64_EFI
  13. enable-tftp – เปิดใช้งานเซิร์ฟเวอร์ TFTP บิวด์อิน
  14. tftp-root – ใช้ /var/lib/tftpboot – ตำแหน่งสำหรับไฟล์ netbooting ทั้งหมด

สำหรับตัวเลือกขั้นสูงอื่นๆ ที่เกี่ยวข้องกับไฟล์การกำหนดค่า โปรดอ่านคู่มือ dnsmasq

ขั้นตอนที่ 2: ติดตั้ง SYSLINUX Bootloaders

4. หลังจากที่คุณแก้ไขและบันทึกไฟล์การกำหนดค่าหลัก DNSMASQ แล้ว ให้ดำเนินการต่อและติดตั้งแพ็คเกจบูตโหลดเดอร์ Syslinx PXE โดยใช้คำสั่งต่อไปนี้

yum install syslinux

5. ไฟล์ PXE bootloaders อยู่ในพาธระบบสัมบูรณ์ /usr/share/syslinux ดังนั้นคุณจึงตรวจสอบได้โดยการแสดงรายการเนื้อหาพาธนี้ ขั้นตอนนี้เป็นทางเลือก แต่คุณอาจต้องทราบเส้นทางนี้ เนื่องจากในขั้นตอนถัดไป เราจะคัดลอกเนื้อหาทั้งหมดไปยังเส้นทาง เซิร์ฟเวอร์ TFTP

ls /usr/share/syslinux

ขั้นตอนที่ 3: ติดตั้ง TFTP-Server และเติมข้อมูลด้วย SYSLINUX Bootloaders

6. ตอนนี้เรามาดูขั้นตอนถัดไปและติดตั้ง เซิร์ฟเวอร์ TFTP จากนั้นคัดลอกไฟล์ bootloders ทั้งหมดที่ได้รับจากแพ็คเกจ Syslinux จากตำแหน่งที่แสดงด้านบนไปที่ / var/lib/tftpboot โดยใช้คำสั่งต่อไปนี้

yum install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot

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

7. โดยปกติแล้ว เซิร์ฟเวอร์ PXE จะอ่านการกำหนดค่าจากกลุ่มของไฟล์เฉพาะ (ไฟล์ GUID อันดับแรกคือ MAC ไฟล์ – ถัดไป ไฟล์ ค่าเริ่มต้น – สุดท้าย) โฮสต์อยู่ในโฟลเดอร์ชื่อ pxelinux.cfg ซึ่งจะต้องอยู่ในไดเร็กทอรีที่ระบุใน tftp-root คำสั่งจากไฟล์การกำหนดค่าหลัก DNSMASQ

สร้างไดเรกทอรีที่ต้องการ pxelinux.cfg และเติมด้วยไฟล์ default โดยใช้คำสั่งต่อไปนี้

mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default

8. ตอนนี้ถึงเวลาแก้ไขไฟล์การกำหนดค่า เซิร์ฟเวอร์ PXE ด้วยตัวเลือกการติดตั้ง Linux distributions ที่ถูกต้อง โปรดทราบว่าเส้นทางทั้งหมดที่ใช้ในไฟล์นี้จะต้องสัมพันธ์กับไดเร็กทอรี /var/lib/tftpboot

ด้านล่างนี้ คุณสามารถดูไฟล์การกำหนดค่าตัวอย่างที่คุณสามารถใช้ได้ แต่แก้ไขอิมเมจการติดตั้ง (ไฟล์เคอร์เนลและไฟล์ initrd) โปรโตคอล (FTP, HTTP, HTTPS, NFS) และ IP เพื่อสะท้อนถึงแหล่งเก็บข้อมูลต้นทางการติดตั้งเครือข่ายของคุณและเส้นทางตามลำดับ

nano /var/lib/tftpboot/pxelinux.cfg/default

เพิ่มข้อความที่ตัดตอนมาทั้งหมดต่อไปนี้ลงในไฟล์

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount

label 2
menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append  initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

ดังที่คุณเห็นอิมเมจสำหรับบูต CentOS 7 (เคอร์เนลและ initrd) อยู่ในไดเร็กทอรีชื่อ centos7 สัมพันธ์กับ /var/lib/tftpboot (บนพาธของระบบสัมบูรณ์ สิ่งนี้จะหมายถึง /var/lib/tftpboot/centos7) และที่เก็บตัวติดตั้งสามารถเข้าถึงได้โดยใช้โปรโตคอล FTP บนตำแหน่งเครือข่าย 192.168.1.20/pub – ในกรณีนี้ repos จะโฮสต์อยู่ในเครื่องเนื่องจากที่อยู่ IP เหมือนกับที่อยู่เซิร์ฟเวอร์ PXE)

นอกจากนี้ เมนู ป้ายกำกับ 3 ยังระบุว่าการติดตั้งไคลเอ็นต์ควรทำจากตำแหน่งระยะไกลผ่าน VNC (ที่นี่แทนที่รหัสผ่าน VNC ด้วยรหัสผ่านที่รัดกุม) ในกรณีที่คุณติดตั้งบนไคลเอ็นต์ที่ไม่มีส่วนหัว และเมนู ป้ายกำกับ 2 ระบุเป็น
การติดตั้งจะเป็นแหล่งอินเทอร์เน็ตมิเรอร์อย่างเป็นทางการของ CentOS 7 (ในกรณีนี้จำเป็นต้องมีการเชื่อมต่ออินเทอร์เน็ตบนไคลเอนต์ผ่าน DHCP และ NAT)

ข้อสำคัญ: ดังที่คุณเห็นในการกำหนดค่าข้างต้น เราได้ใช้ CentOS 7 เพื่อการสาธิต แต่คุณยังสามารถกำหนดรูปภาพ RHEL 7 และปฏิบัติตามคำแนะนำและการกำหนดค่าทั้งหมดได้ ขึ้นอยู่กับ CentOS 7 เท่านั้น ดังนั้นควรระมัดระวังในการเลือกการเผยแพร่

ขั้นตอนที่ 5: เพิ่มอิมเมจสำหรับบูต CentOS 7 ไปยังเซิร์ฟเวอร์ PXE

9. สำหรับขั้นตอนนี้ ต้องใช้เคอร์เนล CentOS และไฟล์ initrd หากต้องการรับไฟล์เหล่านั้น คุณต้องมีอิมเมจ CentOS 7 DVD ISO ดังนั้น ให้ดาวน์โหลด CentOS DVD Image แล้วใส่ลงในไดรฟ์ DVD ของคุณ และเมานต์อิมเมจไปที่พาธของระบบ /mnt โดยใช้คำสั่งด้านล่าง

เหตุผลในการใช้ดีวีดีและไม่ใช่อิมเมจซีดีขั้นต่ำก็คือข้อเท็จจริงที่ว่าเนื้อหาดีวีดีนี้จะถูกนำมาใช้ในภายหลังเพื่อสร้าง
ที่เก็บตัวติดตั้งในเครื่องสำหรับแหล่งที่มา FTP

mount -o loop /dev/cdrom  /mnt
ls /mnt

หากเครื่องของคุณไม่มีไดรฟ์ดีวีดี คุณสามารถดาวน์โหลด CentOS 7 DVD ISO ภายในเครื่องโดยใช้ยูทิลิตี้ wget หรือ curl จากมิเรอร์ CentOS แล้วติดตั้ง

wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
mount -o loop /path/to/centos-dvd.iso  /mnt

10. หลังจากที่เนื้อหา DVD พร้อมใช้งานแล้ว ให้สร้างไดเร็กทอรี centos7 และคัดลอกเคอร์เนลที่สามารถบูตได้ของ CentOS 7 และอิมเมจเริ่มต้นจากตำแหน่งที่เมาท์ DVD ไปยังโครงสร้างโฟลเดอร์ centos7

mkdir /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/vmlinuz  /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img  /var/lib/tftpboot/centos7

เหตุผลในการใช้แนวทางนี้คือ คุณสามารถสร้างไดเร็กทอรีใหม่แยกต่างหากในพาธ /var/lib/tftpboot ได้ในภายหลัง และเพิ่มการกระจาย Linux อื่นๆ ลงในเมนู PXE โดยไม่ทำให้โครงสร้างไดเร็กทอรีทั้งหมดยุ่งเหยิง

ขั้นตอนที่ 6: สร้างแหล่งการติดตั้งมิเรอร์ในเครื่อง CentOS 7

11. แม้ว่าคุณจะสามารถตั้งค่า มิเรอร์การติดตั้ง ผ่านโปรโตคอลที่หลากหลาย เช่น HTTP, HTTPS หรือ NFS ได้ สำหรับคำแนะนำนี้ ฉันเลือก FTP โปรโตคอลเนื่องจากมีความน่าเชื่อถือสูงและติดตั้งง่ายด้วยความช่วยเหลือของเซิร์ฟเวอร์ vsftpd

ติดตั้ง vsftpd daemon เพิ่มเติม คัดลอกเนื้อหาที่ติดตั้ง DVD ทั้งหมดไปยังพาธเซิร์ฟเวอร์เริ่มต้น vsftpd (/var/ftp/pub) – ซึ่งอาจใช้เวลาสักครู่ขึ้นอยู่กับทรัพยากรระบบของคุณและต่อท้าย สิทธิ์ที่สามารถอ่านได้สำหรับพาธนี้โดยการออกคำสั่งต่อไปนี้

yum install vsftpd
cp -r /mnt/*  /var/ftp/pub/ 
chmod -R 755 /var/ftp/pub

ขั้นตอนที่ 7: เริ่มและเปิดใช้งาน Daemons ทั้งระบบ

12. เมื่อการกำหนดค่าเซิร์ฟเวอร์ PXE เสร็จสิ้นในที่สุด ให้เริ่มต้นเซิร์ฟเวอร์ DNSMASQ และ VSFTPD ตรวจสอบสถานะและเปิดใช้งานทั่วทั้งระบบ เพื่อ เริ่มต้นโดยอัตโนมัติหลังจากการรีบูตระบบทุกครั้ง โดยใช้คำสั่งด้านล่าง

systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

ขั้นตอนที่ 8: เปิดไฟร์วอลล์และทดสอบแหล่งการติดตั้ง FTP

13. หากต้องการรับรายการพอร์ตทั้งหมดที่ต้องเปิดบนไฟร์วอลล์ของคุณเพื่อให้เครื่องไคลเอนต์เข้าถึงและบูตจากเซิร์ฟเวอร์ PXE ให้เรียกใช้คำสั่ง netstat และเพิ่ม CentOS 7 กฎไฟร์วอลล์ตามพอร์ตการฟัง dnsmasq และ vsftpd

netstat -tulpn
firewall-cmd --add-service=ftp --permanent  	## Port 21
firewall-cmd --add-service=dns --permanent  	## Port 53
firewall-cmd --add-service=dhcp --permanent  	## Port 67
firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
firewall-cmd --reload  ## Apply rules

14. หากต้องการทดสอบเส้นทางเครือข่าย FTP Installation Source ให้เปิดเบราว์เซอร์ในเครื่อง (ควรเป็น lynx) หรือบนคอมพิวเตอร์เครื่องอื่น แล้วพิมพ์ที่อยู่ IP ของเซิร์ฟเวอร์ PXE ของคุณด้วย
โปรโตคอล FTP ตามด้วยตำแหน่งเครือข่าย /pub ใน URL ที่ยื่น และผลลัพธ์ควรเป็นไปตามที่แสดงในภาพหน้าจอด้านล่าง

ftp://192.168.1.20/pub

15. หากต้องการดีบักเซิร์ฟเวอร์ PXE สำหรับการกำหนดค่าที่ผิดพลาดในที่สุดหรือข้อมูลและการวินิจฉัยอื่นๆ ในโหมดสด ให้รันคำสั่งต่อไปนี้

tailf /var/log/messages

16. สุดท้ายนี้ ขั้นตอนสุดท้ายที่คุณต้องทำคือการเลิกเมานท์ CentOS 7 DVD และถอดสื่อทางกายภาพออก

umount /mnt

ขั้นตอนที่ 9: กำหนดค่าไคลเอนต์ให้บูตจากเครือข่าย

17. ตอนนี้ไคลเอนต์ของคุณสามารถบู๊ตและติดตั้ง CentOS 7 บนเครื่องของพวกเขาโดยการกำหนดค่า Network Boot เป็น อุปกรณ์บู๊ตหลัก จาก BIOS ของระบบหรือโดยการกดปุ่มที่ระบุระหว่าง การทำงานของ BIOS POST ตามที่ระบุไว้ในคู่มือเมนบอร์ด

เพื่อเลือกการบูทเครือข่าย หลังจากที่ข้อความแจ้ง PXE แรกปรากฏขึ้น ให้กดปุ่ม F8 เพื่อเข้าสู่การนำเสนอ จากนั้นกดปุ่ม Enter เพื่อดำเนินการต่อไปยังเมนู PXE

18. เมื่อคุณไปถึงเมนู PXE แล้ว ให้เลือกประเภทการติดตั้ง CentOS 7 ของคุณ กดปุ่ม Enter และดำเนินการตามขั้นตอนการติดตั้งต่อในลักษณะเดียวกับที่คุณอาจติดตั้งจากในเครื่อง อุปกรณ์บูตสื่อ

โปรดทราบว่าการใช้ตัวแปร 2 จากเมนูนี้จำเป็นต้องมีการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานได้บนไคลเอนต์เป้าหมาย นอกจากนี้ที่ด้านล่าง
ภาพหน้าจอที่คุณสามารถดูตัวอย่างการติดตั้งไคลเอนต์ระยะไกลผ่าน VNC

ทั้งหมดนี้เป็นการตั้งค่า เซิร์ฟเวอร์ PXE ขั้นต่ำบน CentOS 7 ในบทความถัดไปจากซีรีส์นี้ ผมจะพูดถึงปัญหาอื่นๆ ที่เกี่ยวข้องกับการกำหนดค่าเซิร์ฟเวอร์ PXE เช่น วิธีตั้งค่าการติดตั้ง CentOS 7 แบบอัตโนมัติโดยใช้ไฟล์ Kickstart และการเพิ่มการกระจาย Linux อื่นๆ ไปที่เมนู PXE – เซิร์ฟเวอร์ Ubuntu และ Debian 7