Install and configuration PXE server in ubuntu

  • ابتدا بسته‌های زیر را نصب نمایید :
# apt install dnsmasq apache2
  • در مرحله‌ی بعد از پرونده‌ی dnsmasq.conf یک پشتیبان گرفته و آن را با یک ویرایشگر باز کنید :
# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
# vim /etc/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,192.168.1.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-option=3 به منظور آدرس مسیریاب یا Default GW می‌باشد.
  • عبارت dhcp-option=6 به منظور آدرس خادم DNS است. استفاده‌ی چندین مرتبه از این عبارت بدون مشکل است.
  • عبارت dhcp-option=28 به منظور آدرس broadcast شبکه می‌باشد.
  • عبارت dhcp-option=42 به منظور آدرس خادم NTP می‌باشد. در صورتی که مقدار 0.0.0.0 برای این عبارت در نظر گرفته شود، تنظیمات مربوطه به عهده‌ی سیستم‌عامل واگذار می‌شود.
  • عبارت dhcp-boot به منظور درج آدرس IP خادم PXE است.
  • مقدار عبارات pxe-prompt و pxe-service دلخواه بوده و باید متناسب با خادم تغییر یابند.
  • در ادامه :
# mkdir /srv/tftp
# systemctl enable dnsmasq.service
# systemctl restart dnsmasq.service
# systemctl status dnsmasq.service
# systemctl enable apache2
# systemctl start apache2
# systemctl status apache2
  • در مرحله‌ی بعد پرونده‌ی ISO را در مسیر زیر Mount کنید :
# mkdir /mnt/iso/ubuntu-16.04.6-server-amd64/ -p
# mount -o loop ubuntu-16.04.3-desktop-amd64.iso /mnt/iso/ubuntu-16.04.6-server-amd64/
  • در ادامه :
# cp -rf /mnt/iso/ubuntu-16.04.6-server-amd64/install/netboot/* /srv/tftp/
# cp -rf /mnt/iso/ubuntu-16.04.6-server-amd64/* /var/www/html/
  • در صورتی که دیوارآتش بر روی خادم فعال است :
# ufw allow http
# ufw allow 53/tcp
# ufw allow 53/udp
# ufw allow 67/udp
# ufw allow 69/udp
# ufw allow 4011/udp
  • آدرس مخزن به صورت زیر است :
http://<Your_IP_Address>/ubuntu
  • پرونده‌ی زیر را با یک ویرایشگر باز کنید :
# vim /var/www/html/ubuntu/preseed/local-sources.seed
  • سپس خط زیر را به آن اضافه کنید :
d-i live-installer/net-image string http://192.168.182.128/ubuntu/install/filesystem.squashfs
  • نکته: توجه نمایید که آدرس 192.168.182.128 فرضی بوده و باید متناسب با خادم تعویض شود.
  • خط بالا می‌شود تا فرآیند نصب از طریق خادم PXE صورت گیرد اما تمام مراحل از کاربر پرسیده می‌شود. همچنین در ادامه‌ی فرآیند نصب باید آدرس مخزن نیز لحاظ شود که در ادامه‌ی مستند گفته می‌شود.
  • می‌توان خطوط زیر را به پرونده‌ی local-sources.seed اضافه کرد تا مرحله‌ی اضافه کردن آدرس مخزن به صورت دستی توسط کاربر انجام نشود.
d-i live-installer/net-image string http://192.168.182.128/ubuntu/install/filesystem.squashfs
d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string 192.168.182.128
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string

d-i apt-setup/local0/repository string http://mirror.iranserver.com/ubuntu xenial main restricted universe multiverse
  • در ادامه پرونده‌ی زیر را با یک ویرایشگر باز کنید :
# vim /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg
  • سپس عبارت زیر را در جلوی عبارت append قرار دهید :
auto=true url=http://192.168.182.128/ubuntu/preseed/local-sources.seed
  • یعنی این پرونده باید به شکل زیر باشد :
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.182.128/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
  • در ادامه پرونده‌ی زیر را با یک ویرایشگر باز کنید :
# vim /srv/tftp/ubuntu-installer/amd64/boot-screens/rqtxt.cfg
  • سپس عبارت زیر را در جلوی عبارت append قرار دهید :
auto=true url=http://192.168.182.128/ubuntu/preseed/local-sources.seed
  • یعنی این پرونده باید به شکل زیر باشد :
label rescue
        menu label ^Rescue mode
        kernel ubuntu-installer/amd64/linux
        append auto=true url=http://192.168.182.128/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true --- quiet
  • در ادامه پرونده‌ی زیر با یک ویرایشگر باز کنید :
# vim /srv/tftp/ubuntu-installer/amd64/boot-screens/menu.cfg
  • سپس عبارات زیر را با استفاده از # به حالت توضیح تبدیل کنید :
# menu hshift 13
# menu width 49
# menu margin 8
  • در نهایت کافیست خادم خام را روشن کرده تا مراحل نصب آغاز شود.
  • در مرحله‌ی نصب سیستم عامل Ubuntu در قسمت choose a mirror of the ubuntu archive باید گزینه‌ی enter information manually انتخاب شود.

  • در صفحه‌ی باز شده آدرس خادم PXE را به صورت زیر وارد کنید :
http://192.168.182.128

  • در مرحله‌ی بعد آدرس پوشه‌ای که سیستم‌عامل درون آن قرار دارد را وارد کنید.
  • این آدرس با توجه به تنظیمات به صورت زیر است :
/ubuntu

  • بعد از به پایان رسیدن فرآیند نصب پیشنهاد می‌شود آدرس مخزن سیستم‌عامل به صورت زیر عوض شود.
# sed -i.bak ‘s/192.168.182.128/archive.ubuntu.com/g’ /etc/apt/sources.list
  • توجه نمایید که آدرس 192.168.182.128 آدرس خادم PXE می‌باشد.

  • مطالعه‌ی بیشتر در این خصوص در اینجا | لوکال
  • مطالعه‌ی بیشتر در خصوص پرونده‌ی local-sources.seed در اینجا

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *