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

大家一起探讨,共同进步!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值