PXE Network Installation

Post by jetsada on 2010-04-01 10:54:18, Last Modify : 2010-04-01 11:43:17
Filed under RedHat , CentOS , Fedora | Reads : 4194

การ install OS สำหรับเครื่องจำนวนมาก ๆ นั้นเป็นงานที่ต้องใช้เวลานาน กว่าจะ install แต่ละเครื่องเสร็จ  จะดีกว่าใหม ถ้าเราสามารถ install เครื่องทั้งหมดนั้นได้พร้อม ๆ กัน โดยผ่าน network

เรามาลองเซ็ตระบบเพื่อ install Linux ผ่าน network กัน

เริ่มต้นตรวจสอบ package

  1. ตรวจสอบ package เหล่านี้ว่ามีในระบบหรือไม่ โดยสั่ง

    rpm -q syslinux dhcp tftp ftp dhcp httpd

ถ้าแพ็คเก็จตัวใดยังไม่ได้ติดตั้งให้ติดตั้งโดยหา package จากแผ่น CentOS หรือ ผ่าน yum

เปิด Firewall

  1. เปิด port ที่ iptables โดย (Graphic mode)

    1. ไปที่ System → Administration → Security Level and Firewall

    2. ที่แท็บ Firewall options คลิกเลือก FTP, NFS4,HTTP เพิ่ม

    3. ที่ other ports คลิก add เพื่ออณุญาตให้ port 69 ซึ่งใช้โดย tftp สามารถผ่านได้

    4. คลิก apply และ ok

Config DHCP

  1. คอนฟิกไฟล์ dhcpd.conf โดยตั้งค่าตามนี้

โดยที่ไฟล์จะอยู่ที่ etc/dhcpd.conf

#dhcp configuration file

ddns-update-style none;

# network 192.168.123.0 range from 192.168.123.151 to 192.168.123.200

# subnet mask 255.255.255.0

subnet 192.168.123.0 netmask 255.255.255.0 {

range 192.168.123.151 192.168.123.200;

option subnet-mask 255.255.255.0;

#option broadcast-address 66.13.175.247;

option routers 192.168.123.1;

#option domain-name-servers 66.13.175.242, 4.2.2.2, 4.2.2.1;

#option domain-name "ringofsaturn.com";

default-lease-time 86400;

max-lease-time 2592000;

#server-name "DHCPserver";

# option root-path "/tftpboot";

 

# tftp server ip

next-server 192.168.123.52;

#boot loader from tftp

    filename "linux-install/pxelinux.0";

}

กรณีที่ในเครื่องมีการ์ดแลนหลายใบ ให้ระบุการ์ดที่จะทำการแจก dhcp โดยกำหนดที่

    กำหนดค่าการ์ดที่จะให้แจก dhcp ในกรณีที่มีการ์ดหลายใบในเครื่อง โดยกำหนดที่ /etc/sysconfig/dhcpd และทำการเปลี่ยนค่าของ Interface DHCPDARGS=ethX โดย ethX เป็นการ์ดที่จะกำหนดให้แจก dhcp

# Command line options here

DHCPDARGS=eth0

 

Start Web Server

สั่ง start service httpd เพื่อให้ web server start ขึ้นมา  และทำการสร้าง directory ขึ้นมาและนำไฟล์ในแผ่น dvd ของ centos มาเก็บไว้ที่ directory นี้ทั้งหมด  หรือไม่ก็ทำการ mount ไฟล์ iso มายัง directory ที่สร้างขึ้น

Config Service TFTP

  1. คอนฟิกไฟล์ tftp โดยไปที่ /etc/xinetd.d/tftp โดยเพิ่ม -u nobody -s /tftpboot ที่บรรทัด server_args

 

# default: off

# description: The tftp server serves files using the trivial file transfer

# protocol. The tftp protocol is often used to boot diskless

# workstations, download configuration files to network-aware printers,

# and to start the installation process for some operating systems.

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -u nobody -s /tftpboot

disable = no

per_source = 11

cps = 100 2

flags = IPv4

}

 

  1. ก๊อปปี้ไฟล์ vmlinuz และ initrd.img จากแผ่น centos ซึ่งจะอยู่ที่ /image/pxeboot/ นำมาวางไว้ที่ /tftpboot/linux-install/

     

  2. สร้างโฟลเดอร์ pxelinux.cfg

  3. เข้าโฟลเดอร์ pxelinux.cfg

  4. สร้างไฟล์ defaultโดยมีเนื้อหาดังนี้

prompt 1

label centos

kernel vmlinuz

append initrd=initrd.img

 

label 1 # เป็นข้อความที่เมื่อบูทจาก network และพิมพ์ข้อความนี้จะเลือกบูท kernel และ image ที่ระบุไว้

kernel vmlinuz # kernel ที่ระบุ

append initrd=initrd.img # image ที่ระบุ

network ks=http://192.168.123.50/ks.cfg # ระบุไฟล์ path file kickstart for auto install
 

  1. สั่ง restart service dhcpd และ xinetd

    service dhcpd restart

    service xinetd restart

  2. นำเครื่องลูก มาต่อ บูตผ่าน pxe เมื่อได้รับ ip และขึ้น prompt แล้ว ให้พิมพ์ centos จะเข้าสู่การ setup ผ่าน network ซึ่งจะมีให้เลือกว่าจะลงผ่านวิธีใด (local CDROM, Harddrive, ,http, ftp, nfs) เลือก http และเลือกการ์ด network ที่เราต่อกับ network ที่รับ dhcp มา การ config ip ให้ใช้ dynamic ip เลย

  3. ต่อไปให้กรอก Nameserver ip เป็นเบอร์ ipของ server

  4. FTP site name /website name ให้ใส่ ip เครื่อง server

  5. centos directory ให้ใส่ centos

  6. จะเข้าสู่การลง os ปกติ