t :PXE:
預啓動執行環境,是由Intel開發的最新技術,工作於Client/Server的網絡模式,支持終端通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。
一、安裝DHCP服務,實現動態地址分配
~]# yum -y install dhcp ~]# vim /etc/dhcp/dhcpd.conf option domain-name-servers 172.18.0.1; //指明分配的DNS # default-lease-time 3600; max-lease-time 7200; # # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; # subnet 192.168.100.0 netmask 255.255.255.0 { //地址分配池 range 192.168.100.20 192.168.100.99; //地址分配範圍 filename "pxelinux.0"; //引導文件名稱 next-server 192.168.100.10; //引導文件所在的IP地址 }
測試有無語法錯誤,並啓動dhcp服務:
]# service dhcpd configtest Syntax: OK ~]# service dhcpd start Starting dhcpd: [ OK ] //注意:啓動dhcp服務時,會去讀取網卡的配置,如果網卡沒能配置192.168.100.10,會報錯
查看監聽端口:
~]# ss -uan State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 *:67 *:*
二、安裝tftp服務,實現文件傳輸
]# yum -y install tftp-server ]# vim /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no //改爲no就行 per_source = 11 cps = 100 2 flags = IPv4 }
啓動tftp,並查看監聽端口:
]# service xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] ]# ss -uan State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 *:69 *:*
三、安裝httpd,提供遠程下載倉庫
]# yum -y install httpd ]# service httpd start
四、掛載虛擬光盤到虛擬機上
]# mkdir /media/cdrom ]# mount /dev/cdrom /media/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only ]# mkdir /var/www/html/centos ]# mount --bind /media/cdrom/ /var/www/html/centos/
五、下載pxe引導文件
]# yum -y install syslinux
複製引導安裝文件到tftp服務的目錄下:
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ //引導文件 ]# cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ //內核和ramdisk ]# cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot //背景圖片 ]# mkdir /var/lib/tftpboot/pxelinux.cfg/ ]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default //菜單
修改default文件,符合自己的要求:
]# vim /var/lib/tftpboot/pxelinux.cfg/default timeout 100 //修改爲10秒 label autoinst menu label CentOS 6.5 INSTALL menu default kernel vmlinuz append initrd=initrd.img ks=http://192.168.100.10/centos6.5_x86_64.cfg //自動裝機文件
五:配置自動裝機文件kickstart
]# vim /var/www/html/centos6.5_x86_64.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --enable # Install OS instead of upgrade install # Use network installation url --url="http://192.168.100.10/centos" # Root password rootpw 123456 # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text firstboot --disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --disabled # Installation logging level logging --level=info --host=192.168.100.10 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --append="rhgb crashkernel=auto quiet" --location=mbr --driveorder="sda" # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all # Disk partitioning information part / --bytes-per-inode=4096 --fstype="ext4" --grow --size=1 part /boot --bytes-per-inode=4096 --fstype="ext4" --size=200 part swap --bytes-per-inode=4096 --fstype="swap" --size=8192 %packages --nobase //最小化安裝 @core %end
測試能否遠程讀取CentOS倉庫及裝機文件:
六:開啓虛擬機測試能否自動裝機
Cobbler:
Red Hat根據PXE二次封裝的網絡工具,使用更爲簡單:
]# yum -y install cobbler dhcp tftp-server syslinux httpd
啓動cobbler並檢測運行環境:
]# service cobblerd start ]# cobbler check ]# cobbler check Traceback (most recent call last): File "/usr/bin/cobbler", line 36, in <module> sys.exit(app.main()) #報錯,修改配置文件: ]# vim /etc/cobbler/settings server: 192.168.100.10 //把這兩項修改爲虛擬機的IP地址 next_server: 192.168.100.10 ]# service cobblerd restart ]# service httpd start //啓動httpd ]# service xinetd start //啓動tftp
再一次cobbler check:
1、如果當前節點可以訪問互聯網,執行“cobbler get-loaders”命令即可;否則,需要安裝syslinux程序包,而後複製/usr/share/syslinux/目錄下所有文件至/var/lib/cobbler/loaders/目錄中;
2、執行 chkconfig rsync on 命令
3、執行 yum -y install debmirror 命令
4、執行 yum -y install pykickstart 命令
5、執行“openssl passwd -1 -salt $(openssl rand -hex 4)”生成密碼,並用其替換/etc/cobbler/settings文件中default_password_crypted參數的值;
6、執行 yum -y install cman fence-agents 命令
修改完後執行重啓cobblerb並cobbler sync,在次執行cobbler check
]# cobbler check
1、可以不用管,只要複製了syslinux目錄下的文件過去就行;
2、註釋/etc/debmirror.conf文件中的“@dists="sid";”一行;
3、註釋/etc/debmirror.conf文件中的“@arches="i386";”一行;
]# service cobblerd restart Stopping cobbler daemon: [ OK ] Starting cobbler daemon: [ OK ] ]# cobbler sync //在次同步配置文件
導入光盤到虛擬機裏,生成cobbler的distro和profile文件:
]# mount /dev/cdrom /media/cdrom ]# cobbler import --name="Centos6.5-x86_64" --path=/media/cdrom //定義distro ]# cobbler distro list Centos6.5-x86_64 ]# cobbler profile list Centos6.5-x86_64 ]# cobbler profile remove --name Centos6.5-x86_64 //定義distro時會自動生成一個profile文件,不符合我們的要求,刪除
編輯kickstart文件:
vim /var/lib/cobbler/kickstarts/centos6.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --enable # Install OS instead of upgrade install # Use network installation url --url="http://172.18.250.76/cobbler/ks_mirror/Centos6.5-x86_64/" # Root password rootpw 123456 # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text firstboot --disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --disabled # Installation logging level logging --level=info --host=192.168.100.10 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --append="rhgb crashkernel=auto quiet" --location=mbr --driveorder="sda" # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all # Disk partitioning information part / --bytes-per-inode=4096 --fstype="ext4" --grow --size=1 part /boot --bytes-per-inode=4096 --fstype="ext4" --size=200 part swap --bytes-per-inode=4096 --fstype="swap" --size=8192 %packages --nobase //最小化安裝 @core %end
生成符合要求的profile:
]# cobbler profile add --name=centos6.5-x86 --distro=Centos6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.cfg ]# cobbler profile list centos6.5-x86 ]# vim /var/lib/tftpboot/pxelinux.cfg/default //可以修改默認菜單 DEFAULT menu #PROMPT 0 MENU TITLE Cobbler | http://cobbler.github.com TIMEOUT 100 TOTALTIMEOUT 6000 ONTIMEOUT centos6.5-x86
執行cobbler sync,一定不要忘了。。。。。
]# cobbler sync ]# service cobblerd restart Stopping cobbler daemon: [ OK ] Starting cobbler daemon: [ OK ]
測試能否正常裝機:
三、cobbler重裝系統之koan
koan是cobbler的一個輔助工具,koan是kickstart-over-a-network的縮寫安裝在客戶端的使用,koan配合cobbler實現快速重裝linux。
]# yum -y install koan ]# koan --server=192.168.100.10 --list=profiles //列出cobbler中有哪些profile - looking for Cobbler at http://192.168.100.10:80/cobbler_api centos6.5-x86 ]# koan --replace-self --server=192.168.100.10 --profile=centos6.5-x86 //重裝系統 - looking for Cobbler at http://192.168.100.10:80/cobbler_api - reading URL: ........ '--title=kick1463906560'] - reboot to apply changes ]# reboot //輸入此命令重啓後,不能再中止重裝,重啓後自動進入pxe裝機。
和--title=kick1463906560一樣