前言
工作中,又太多上新系统需求,为减少重复工作,整理一份自动化安装系统文档。以下环境为虚拟机,所有服务都部署到一台虚拟机中。并且关闭防火墙等。
准备工作:
提前准备centos7系统文件
虚拟主机IP地址192.168.1.1
centos发行版本号
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
关闭firewall、selinux
[root@localhost ~]# iptables -F #关闭防火墙
[root@localhost ~]# setenforce 0 #临时关闭selinux
一、dhcp安装
1、安装dhcp
[root@localhost /]# yum install dhcp -y
2、复制配置文件模板
[root@localhost /]# cp /usr/share/doc/dhcp-X/dhcpd.conf.example /etc/dhcp/dhcpd.conf
3、修改dhcpd配置
[root@localhost /]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 { #ip子网及掩码
range 192.168.1.200 192.168.1.220; #dhcp分配地址
next-server 192.168.1.1; #指定tftp服务端地址
default-lease-time 600;
max-lease-time 7200;
filename "pxelinux.0"; #指定pxe引导
}
4、重启dhcp服务
[root@localhost /]# systemctl restart dhcpd
二、samba安装
1、安装及启动服务
[root@localhost /]# yum install samba samba-client -y
[root@localhost /]# systemctl start smb nmb
2、修改配置文件
[root@localhost /]# vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
map to guest = bad user #新增,用于免密登陆
[samba]
comment = samba #目录名称
path = /home/samba #服务器端共享目录
writable = yes #写入权限
browseable = yes #访问权限
guest ok = yes #允许guest账户访问
[root@localhost /]# mkdir /home/samba #创建共享目录
[root@localhost /]# chown -R 777 /home/samba/ #提权
[root@localhost /]# systemctl restart smb #重启服务
3、导入centos到共享目录中
win系统在运行中输入\192.168.1.1,将系统上传到共享目录中。将centos7系统isolinux目录下的isolinux.cfg、vmlinuz、initrd.img一同上传。
三、http安装
1、安装及启动服务
[root@localhost /]# yum install httpd -y
[root@localhost /]# systemctl start httpd
2、测试服务是否正常
3、挂载镜像文件网页路径
[root@localhost /]# mkdir /var/www/html/centos7 #创建目录
[root@localhost /]# mount /home/samba/centos7.iso /var/www/html/centos7 #挂载系统目录
[root@localhost /]# systemctl restart httpd #重启服务
四、tftp安装
1、安装tftp及启动服务
[root@localhost /]# yum install tftp-server tftp xinetd syslimux -y
[root@localhost /]# vim /etc/xinetd.d/tftp
disable = no #tftp服务器默认关闭,将yes改成no,
[root@localhost /]# systemctl restart xinetd #重启xinetd服务
2、复制系统内核文件、pxe启动文件、启动菜单等到tftp
[root@localhost /]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #安装好syslimux后自动生成,直接复制
[root@localhost /]# cp /home/samba/vmlinuz /var/lib/tftpboot/ #复制
[root@localhost /]# cp /home/samba/initrd.img /var/lib/tftpboot/ #复制
[root@localhost /]# cp /home/samba/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #复制+改名
3、KS应答文件准备
在系统root目录下已自动生产KS应答文件,将KS复制到www目录下,并修改http路径
[root@localhost /]# cp /root/anaconda-ks.cfg /var/www/html/ks7.cfg #复制+改名
[root@localhost /]# vim /var/www/html/ks7.cfg
cdrom删掉
url --url http://XX #在cdrom空位上新增挂载系统镜像地址
[root@localhost /]# chmod +x /var/www/html/ks7.cfg #添加KS应答文件执行权限
[root@localhost /]# systemctl restart httpd #修改完后重启http服务
4、修改启动菜单
[root@localhost /]# vim /var/lib/tftpboot/pxelinux.cfg/default
timeout 10 #选择时间10=1S
label centos7
menu label ^CentOS 7 #菜单名称
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.1.1/ks7.cfg #KS应答,指向系统挂载路径
五、总结
1、服务内容
dhcp:IP分配,指定pxe启动文件
samba:本机传输系统、引导文件等到虚拟机
tftp:发送引导文件,指定pxe启动等
http:传输系统文件、KS应答软件
2、在安装过程中,遇到的问题
ks应答文件错误,导致一直在安装中报错。更换过内核文件、修改启动菜单、修改测试虚拟机内存至2G等,都报错random: crng init done。最终导出本次虚拟机的ks文件,且就修改cdrom后自启安装成功(第二次再次测试安装时,测试虚拟机需要2G及以上内存才能完成直动安装)。
在本机传输内容到smb共享文件中,win10提示无权限访问,最终是在global下新增map to guest = bad user解决。