分类: LINUX
2019-04-09 11:27:16
【一】环境配置
vmware workstation |
14.1.2 |
用于创建虚拟机 |
linux镜像 |
CentOS-7-x86_64-DVD-1804(7.5版) |
虚拟机使用的操作系统 |
FTP服务 |
|
用来存放系统安装文件 |
TFTP服务 |
|
用来存放PXE的相关文件 |
DHCP服务 |
|
用来给虚拟机分配IP |
kickstart |
|
用于生成ks.cfg配置文件 |
vmware workstation的虚拟网络编辑器配置
【编辑】--->【虚拟网络编辑器】
准备两台虚拟机: server和clent
server
配置
NAT模式网卡配置
ens33 |
192.168.18.10 |
client
配置
NAT模式网卡配置
server虚拟机安装的DHCP服务自动分配
【二】部署流程
根据【一】中的server服务器配置,创建一台server虚拟机,以下操作全部在server虚拟机
2.1 安装FTP服务
yum -y install vsftpd #安装FTP服务
systemctl start vsftpd #开启FTP服务
systemctl enable vsftpd #设置为开机自启动
2.2 安装TFTP服务
yum -y install tftp tftp-server xinetd
配置tftp服务器
修改tftp配置文件,修改配置文件里面的13,14行,改成以下内容
vim /etc/xinetd.d/tftp
注:server_args = -s /tftpboot # 表示服务器默认的目录是 /tftpboot
启动xinetd服务,然后查看服务端口是否打开
systemctl start xinetd
systemctl enable xinetd
lsof -i:69 #查看69端口正在被哪个进程使用
2.3安装DHCP服务
yum -y install dhcp
配置DHCP服务
#复制dhcpd.conf.sample到/etc/dhcp/目录下,覆盖掉dhcpd.conf
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
#编辑dhcpd.conf,内容如下
配置完,先不启动DHCP ,等所有的软件安装好,最后再启动
2.4 配置使用PXE启动所需要的相关文件
#安装软件
yum -y install system-config-kickstart
yum -y insatll syslinux
#准备TFTP服务所需文件
[root@master ~]# mount /dev/sr0 /var/ftp/pub/
[root@master ~]# mkdir /tftpboot
[root@master ~]# mkdir /tftpboot/pxelinux.cfg
[root@master~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ #注,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件。
[root@master~]# cp /var/ftp/pub/images/pxeboot/initrd.img /tftpboot/
[root@master ~]# cp /var/ftp/pub/images/pxeboot/vmlinuz /tftpboot/
[root@master~]# cp /var/ftp/pub/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@master~]# chmod 644 /tftpboot/pxelinux.cfg/default
目录/tftpboot结构
目录/var/ftp结构
修改default,指定安装操作系统的方式和ks.cfg文件路径
vim /etc/tftpboot/pxelinux.cfg/default
2.5 制作kickstart的无人值守安装文件
#创建本地yum源
mount /dev/sr0 /var/ftp/pub/ #挂载光盘
vim /etc/yum.repos.d/cdrom.repo #创建cdrom.repo源,内容如下
/etc/yum.repos.d结构
[root@master yum.repos.d]# tree /etc/yum.repos.d
/etc/yum.repos.d
├── cdrom.repo
└── old
├── CentOS-Base.repo
├── CentOS-CR.repo
├── CentOS-Debuginfo.repo
├── CentOS-fasttrack.repo
├── CentOS-Media.repo
├── CentOS-Sources.repo
└── CentOS-Vault.repo
1 directory, 8 files
生成ks.cfg文件,这里选择修改/root下面的anaconda-ks.cfg文件,复制到/var/ftp目录下,并重命名为ks.cfg,修改后的内容如下
[root@master ftp]# cat ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url="ftp://192.168.18.10/pub"
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$7YQWNmmo1BqZWpjm$TfBG/IsjfJPcZuGNJSR.fvHstA015CAYe2T70lrA608xyMXLZ46WwprVGj54zxabWQVJIvgCccPCWa9XFsyV2.
# System services
services --disabled="chronyd"
reboot
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
%packages
@^minimal
@core
@development
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
2.6 重启FTP服务
systemctl restart vsftpd
2.7关闭防火墙
iptables -F
service iptables save
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/conf
systemctl stop firewalld
systemctl disable firewalld
2.8 启动DHCP服务,设置为开机启动
systemctl start dhcpd
systemctl enable dhcpd
【三】批量安装操作系统
根据【一】中的client的配置创建一台虚拟机,然后点击【开启此虚拟机】,直接就进入了网络启动,然后
开始自动装机
【四】安装过程中发生的错误
1. /dev/root does not exist
原因:一开始client的内存配置为1G,在安装的过程中出现此错误
解决:将client的内存设置为3G,恢复正常
2. Failed to get… kickstart
原因:/root/anaconda-ks.cfg的权限为600,复制到/var/tfp并重命名为ks.cfg后,没有改变权限
任然为600,所以发生此错误
解决:实际上ks.cfg需要644的权限,改变权限后,恢复正常
3. 执行到图形化后发生未知错误,KeyError:
'minimal'
原因:ks.cfg编辑错误,url
--url="ftp://root:root@192.168.18.10/pub"
解决:改为 url
--url="ftp://192.168.18.10/pub"后,恢复正常,这里ftp服务器不需要用户名和密码