天天看點

PXE + KickStart 自動安裝系統

實驗1:dhcp服務

DHCP端口号:UDP67 UDP68

[root@centos7 ~]#yum -y install dhcp

[root@centos7 ~]#rpm -ql dhcp //此處簡單列出dhcp包裡檔案

/etc/dhcp/dhcpd.conf //dhcp配置檔案,預設為空

/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example //dhcp配置樣闆檔案

[root@centos7 ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf //拷貝樣闆檔案并重命名

[root@centos7 ~]#vim /etc/dhcp/dhcpd.conf //編輯配置檔案

option domain-name "magedu.com";

option domain-name-servers 223.5.5.5, 223.6.6.6,8.8.8.8; //配置多個DNS伺服器

#預設ip租賃時間, 預設用戶端IP租約時間的最大值。機關:秒

default-lease-time 86400;

max-lease-time 172800;

#設定子網,子網路遮罩,dhcp配置設定的ip範圍,及網關

subnet 10.0.0.0 netmask 255.255.255.0 {

range 10.0.0.10 10.0.0.100;

option routers 10.0.0.1;

}

#把用戶端主機mac和配置設定的ip綁定

host centos7 {

hardware ethernet 00:0c:29:10:b6:f1;

fixed-address 10.0.0.10;

[root@centos7 ~]#systemctl start dhcp //啟動服務

[root@centos7 ~]#systemctl enable dhcp //設為開機啟動

[root@centos7 ~]#ss -nul //檢視UDP67 ,UDP68是否監聽

實驗2:實作tftp伺服器

tftp端口号: UDP69

centos7上:

[root@centos7 ~]#yum -y install tftp-server

[root@centos7 ~]#systemctl start tftp

[root@centos7 ~]#systemctl enable tftp

[root@centos7 ~]#ss -nul //檢視UDP69端口是否監聽

[root@centos7 ~]#rpm -ql tftp-server

/etc/xinetd.d/tftp

/usr/lib/systemd/system/tftp.service

/usr/lib/systemd/system/tftp.socket

/usr/sbin/in.tftpd

/var/lib/tftpboot

centos6上:

[root@centos6 ~]yum -y install tftp-server

[root@centos6 ~]chkconfig tftp on

[root@centos6 ~]service xinetd restart

實驗3:PXE 、 kickstart網絡自動化安裝系統

實驗環境:

centos7 IP:10.0.0.200/24 ( dhcp,http,tftp伺服器 )

prefix:24

gateway:10.0.0.1

subnet range 10.0.0.10 10.0.0.100

獨立的非橋接的網段:vmnet6(僅主機模式)

虛拟網絡編輯器:關閉dhcp

關閉selinux,防火牆

  1. 安裝包:httpd、 dhcp、tftp-server和syslinux

    [root@centos7 ~]#yum -y install httpd dhcp tftp-server syslinux

  2. 準備http yum源

    [root@centos7 ~]systemctl start httpd //啟服務

    [root@centos7 ~]systemctl enable httpd //開機啟動

[root@centos7 ~]#mkdir /var/www/html/centos/6/os/x86_64 -pv

[root@centos7 ~]#mkdir /var/www/html/centos/7/os/x86_64 -pv //在http服務/var/www/html下建立centos/7/os/x86_64

[root@centos7 ~]#mount /dev/sr0 /var/www/html/centos/7/os/x86_64 //把CD光牒挂載到centos/7/os/x86_64

打開虛拟機firefox浏覽器測試成功:

http://10.0.0.200/centos/6/os/x86_64/

http://10.0.0.200/centos/7/os/x86_64/

  1. ks檔案

    [root@centos7 ~]#system-config-kickstart //方法一:ks檔案可以用此指令生成

    [root@centos7 ~]#cat /root/anaconda-ks.cfg //方法二:可以參考root目錄下的anacon-ks.cfg檔案

[root@centos7 ~]#mkdir /var/www/html/ks/ //在/var/www/htmp目錄下建立ks目錄

[root@centos7 ~]#vim /var/www/html/ks/centos7-mini.cfg //按需要編輯cfg檔案

備注: 實驗時我有之前準備好的cfg檔案

[root@centos7 ks]#ls

centos6-mini.cfg centos7-mini.cfg ks7-mini.cfg

4.dhcp服務配置

[root@centos7 ~]#vim /etc/dhcp/dhcpd.conf //編輯dhcp服務配置檔案

option domain-name "magedu.com";

option domain-name-servers 223.5.5.5, 223.6.6.6,8.8.8.8;

default-lease-time 86400;

max-lease-time 172800;

next-server 10.0.0.200;

filename "pxelinux.0";

[root@centos7 ~]#systemctl start dhcpd

  1. 準備tftpboot目錄相關檔案

[root@centos7 etc]#rpm -ql syslinux //檢視syslinux包裡檔案

[root@centos7 isolinux]#cp /usr/share/syslinux/{menu.c32,pxelinux.0} /var/lib/tftpboot/ //menu.c32啟動後菜單背景檔案; pxelinux.0 拷貝到tftp工作目錄下

[root@centos7 isolinux]#ls

boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest splash.png TRANS.TBL vesamenu.c32 vmlinuz

[root@centos7 isolinux]#cp initrd.img vmlinuz /var/lib/tftpboot/ //把initrd.img和核心vmkinuz 拷貝到tftp工作目錄下

[root@centos7 isolinux]#mkdir /var/lib/tftpboot/pxelinux.cfg/ //在tftp的/var/lib/tftpboot/路徑下建立pxelinux.cfg目錄

[root@centos7 isolinux]#cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default //拷貝isolinux.cfg 檔案到pxelinux.cfg下并改名為default

[root@centos7 ~]#tree /var/lib/tftpboot/ //tftp工作目錄必須有的檔案結構:

/var/lib/tftpboot/

├── initrd.img

├── menu.c32

├── pxelinux.0

├── pxelinux.cfg

│ └── default

└── vmlinuz

1 directory, 5 files

  1. 準備安裝菜單

[root@centos7 ~]#vim /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32

#prompt 1

timeout 600

menu title Welcome to www.magedu.com

label mini

menu label ^Install an Mini Centos7.5 system

kernel vmlinuz

append initrd=initrd.img ks=http://10.0.0.200/ks/centos7-mini.cfg

label local

menu label Boot from ^local drive

menu default //預設啟動選項

localboot 0xffff

  1. 用戶端測試

繼續閱讀