PXE+kickstart自動化裝機,及遇到裝機後,界面左上方會出現一個橫槓,然後一直卡着不動的解決方案!

PXE+Kickstart自動化裝機

1.實驗環境

 centos6.9操作系統;vmware 12.0+虛擬化平臺;

生產環境centos7.3-1611

本機IP地址:10.10.10.11

防火牆、selinux都處於關閉狀態

2.實驗步驟

 

2.1 配置安裝服務器yum倉庫爲本地,安裝dhcp服務tftp並配置:

yum源採用阿里的(爲什麼會特意提到yum源?另有深意,客官且往下看,不必糾結於此)。此處需要注意,爲了避免干擾,將所有的yum源改名爲repo.bak(執行以下命令:rename repo repo.bak /etc/yum.repo.d/*),只留下一個阿里的yum源即可

# cat /etc/yum.repos.d/aliBase.repo
[aliBase]
#[development]
name=aliBase
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever
# cat /etc/yum.repos.d/aliEpel.repo
#[aliEpel]
#name=aliEpel
#baseurl=https://mirrors.aliyun.com/epel/$releasever\Server/$basearch/
#enabled=1
#gpgcheck=0

1、安裝dhcpd服務

             yum -y install dhcp

用rpm -ql dhcp查看有關於dhcpd的文件有哪些

[root@node1 ksdir]# rpm -ql dhcp
/etc/NetworkManager
/etc/NetworkManager/dispatcher.d
/etc/NetworkManager/dispatcher.d/12-dhcpd
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/dhcp/scripts
/etc/dhcp/scripts/README.scripts
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/usr/bin/omshell
/usr/lib/systemd/system/dhcpd.service
/usr/lib/systemd/system/dhcpd6.service
/usr/lib/systemd/system/dhcrelay.service
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp-4.2.5
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
/usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example
/usr/share/doc/dhcp-4.2.5/ldap
/usr/share/doc/dhcp-4.2.5/ldap/README.ldap
/usr/share/doc/dhcp-4.2.5/ldap/dhcp.schema
/usr/share/doc/dhcp-4.2.5/ldap/dhcpd-conf-to-ldap
/usr/share/man/man1/omshell.1.gz
/usr/share/man/man5/dhcpd.conf.5.gz
/usr/share/man/man5/dhcpd.leases.5.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
/usr/share/systemtap/tapset/dhcpd.stp
/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases

2、執行以下命令,將默認的dhcp配置文件拷貝到/etc/dhcp/dhcpd.conf,並修改配置文件:

            cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf /etc/dhcp/dhcpd.conf

    option routers 10.10.10.11;                    #網關
    option domain-name-servers 10.10.10.11;        #DNS服務器地址
subnet 10.10.10.0 netmask 255.255.255.0 {
    range 10.10.10.200 10.10.10.250;                #IP地址段
    option subnet-mask 255.255.255.0;               #掩碼
    option domain-name "magedu.org";                #本機對應的域名解析地址,/etc/hosts下面對應的有一句,10.10.10.11 magedu.org,與上面的DNS服務器地址相對應
    next-server 10.10.10.11;                        # 就是TFTP的位置
    filename "pxelinux.0";                          # 告知得從TFTP根目錄下載的boot loader文件名
}

 

 

 

 

 

 

 

 

centos7同樣按上述方式操作

啓動dhcp服務:service dhcpd start

centos7:systemctl start dhcpd

3、 安裝並配置TFTP服務

  yum -y install tftp-server

在centos6下,tftp服務受xinetd管理,配置文件路徑默認:/etc/xinetd.d/tftp

將disable tftp改爲no即可。

啓動tftp服務:service xinetd start

centos7: yum -y install xinetd tftp-server

編輯/etc/xinetd.d/tftp,將disable tftp改爲no

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
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

systemctl start xinetd

4、 安裝pxe模式下的syslinux包,並將相關文件拷貝至tftp服務的文件存放路徑 /var/lib/tftpboot/

yum -y install syslinux

cp -a /usr/share/syslinux/{menu.c32,vesamenu.c32,pxelinux.0} /var/lib/tftpboot/

mkdir /var/lib/tftpboot/pxelinux.cfg

ls -l /var/lib/tftpboot/

-rw-r--r-- 1 root root 61796 Oct 16 2014 menu.c32 # 提供圖形化菜單功能

-rw-r--r-- 1 root root 26759 Oct 16 2014 pxelinux.0 # boot loader文件

drwxr-xr-x 2 root root 4096 Feb 24 20:02 pxelinux.cfg # 開機的菜單設定在這裏

-rw-r--r-- 1 root root 163728 Oct 16 2014 vesamenu.c32 # 也是提供圖形化菜單功能,但界面和menu.c32不同

pxelinux.cfg是個目錄,可以放置默認的開機選項,也可以針對不同的客戶端主機提供不同的開機選項。一般來說,可以在pxelinux.cfg目錄內建立一個名爲default的文件來提供默認選項。

5、 從鏡像中獲取Linux內核文件,因爲此前已將所有鏡像文件做了拷貝(yum本地倉庫配置),直接執行:

                  cp /app/rhel6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7

                  cp /app/rhel6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

                 編輯default文件,修改timeout值爲10(此項改動會使等待時間縮短爲1s)

                 centos7配置同樣按上述操作進行

 

6、 通過HTTP服務提供安裝文件

               yum -y install httpd

               mkdir /var/www/html/centos6

               mount /dev/cdrom /var/www/html/centos6

              servive httpd start

             centos7:

             yum -y install httpd

             mkdir /var/www/html/centos7

             mount ./CentOS-7.3-x86_64-Everything-1611.iso /var/www/html/centos7

             systemctl start httpd

7、 安裝system-config-kickstart工具,生成ks.cfg文件。注意此項操作應藉助X-Manager或其他工具實現(建議使用X Shell配置)

yum -y install system-config-kickstart

system-config-kickstart

按照需求進行配置,注意在配置安裝方式時,選擇HTTP安裝,第一行寫server的IP,第二行寫按安裝文件目錄,本例爲/centos6(/centos7)。最後將ks.cfg文件保存在http服務Rootdocument默認目錄/var/www/html下。

配置kickstatrt文件是PXE批量部署的關鍵所在!圖文模式配置請參考以下博客:https://www.linuxidc.com/Linux/2019-11/161255.htm

(1)如果你在編輯ks文件的時候,如果出現這種情況:

那麼你需要將yum源的倉庫名做一下修改,修改之後再編輯ks文件就不會出現這種情況了。將yum倉庫名修改爲development,如下:

# cat /etc/yum.repos.d/aliBase.repo
#[aliBase]
[development]
name=aliBase
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever
# cat /etc/yum.repos.d/aliEpel.repo
#[aliEpel]
#name=aliEpel
#baseurl=https://mirrors.aliyun.com/epel/$releasever\Server/$basearch/
#enabled=1
#gpgcheck=0

這時候再重新編輯ks文件就不會出現上述問題!

 

在這裏我只給大家展示一下自己的kickstart文件

[root@node1 ksdir]# cat ks7.cfg 
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$UKr4gbXz$ZsWz9rO3mnf9V/cy.SLew/
# Use network installation
url --url="http://10.10.10.11/centos/7/os/x86_64"
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled

# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr 
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --size=10000
part swap --fstype="swap" --size=1000
part /boot --fstype="xfs" --size=400
%packages
%end

8、 編輯/var/lib/tftpboot/pxelinux.cfg目錄下的default文件,在第一個標籤append下添加一條ks記錄:

ks=http://10.10.10.11/ks7.cfg

centos7:

[root@node1 pxelinux.cfg]# cat /var/lib/tftpboot/pxelinux.cfg/default 
default menu.c32
timeout 10
menu title auto install CentOS
label centos7_Desktop
  menu label Install CenOS 7.6  
  kernel centos7/vmlinuz
  menu default
  append initrd=centos7/initrd.img ks=http://10.10.10.11/ksdir/ks7.cfg

至此,自動化裝機server端配置完成。

 

寫在最後:

1、安裝虛擬機的時候要注意,非最小化安裝,至少給虛擬機分配2G的內存,否則會報錯

2、虛擬機實驗的話需要使用同一塊網卡,否則無法使用dhcp服務。

3、用虛擬機給實際的服務器用pxe安裝系統的話,要用橋接網絡

4、這裏寫一個我自己遇到的一個奇怪的問題:

虛擬機安裝完畢之後,它提示機器要重啓,然後就開始重啓,先出現以下界面:

然後,奇怪的事情發生了!它一直卡在了下一個界面:

就這樣一直卡着不動,按ESC鍵和F8、F10都沒有反應!

問題排查的思路:httpd沒問題,selinux沒問題,防火牆沒問題,tftp也沒問題,那我就想到了只有一種可能:ks文件寫的有問題。果不其然,我打開ks文件,發現有一項配置他沒有生效:

我們選的是第一項,當我保存了文件之後,他給我修改成了第二項!奇怪的很,當我再打開文件,無論怎麼修改,再打開它始終變成了第二項!所以我只好手動修改配置文件來解決這個問題了!

 

在生產環境下,BIOS中服務器的默認啓動方式可能爲UEFI,在pxe+kickstart模式下,這種啓動模式並不十分適用,實際調試過程中將UEFI改爲Legacy後,才順利進入自動安裝過程。如果覆蓋安裝原有的操作系統,需要手動將啓動順序調整爲網絡啓動,且安裝結束更改爲本地硬盤啓動。

利用工具system-config-kickstart進行ks文件生成時,LVM無法支持,如果確實要配置,建議在宿主機完成裝機後,利用該工具打開/root下的anaconda-ks.cfg,在此基礎上修改並保存爲我們需要的ks文件。

U盤裝linux系統:

在利用工具刻錄好U盤後,裝機過程出現dracut-initqueue[600]: 字樣;原因是利用工具UltroISO在Window下寫入U盤的安裝文件路徑,沒有被linux安裝程序識別

解決辦法:

dracut:/# cd /dev

dracut:/dev# ls

找到安裝文件所在的位置,即U盤的設備號 (sdb4 類似)

重啓在安裝界面按下Tab鍵,修改啓動配置

vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet

改爲:

vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet (前面找到的U盤的設備號)

 

如還有疑問,可加QQ:1930818140   PXE批量部署大咖羣:884844262

大家一起探討,共同進步!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章