在实践场景中遇到大量电脑或服务器需要安装操作系统用U盘一个个去安装效率太低且工作量很大,有一种方式可以让局域网内所有没有安装操作系统的主机批量安装操作系统大大的减小工作量并提高工作效率。
下面所有操作在VM虚拟机实现。
这个虚拟机位置可以随意修改下面的硬盘大小可以根据情况随意更改我在这里为了省事就没有更改他的大小
自定义硬件除了母机要选择ISO映像文件安装其他的子机就不用勾选
母机就创建完成了其他的子机跟母机创建的方法是一样的也可以创建一个子机出来进行克隆
子机的内存大小建议2G以上1G内存容易报错导致安装失败。
这里我们安装的是CentOS7其他Linux系统的操作是大同小异的
在此注意的是软件选择记得选带GUI的服务器不要选择默认的最小化安装并且网络记得打开
都选择完毕后可以直接下一步了
[root@localhost ~]# yum update -y #升级系统软件
[root@localhost ~]# yum install httpd dhcp tftp-server syslinux -y
[root@localhost ~]# systemctl start httpd #开启httpd服务
[root@localhost ~]# systemctl enable httpd #将httpd服务设置为开机自启
[root@localhost ~]# systemctl start tftp #开启tftp服务
[root@localhost ~]# systemctl enable tftp #将tftp服务设置为开机自启
[root@localhost ~]# systemctl start dhcpd #开启dhcp服务
[root@localhost ~]# systemctl enable dhcpd #将dhcpd服务设置为开机自启
[root@localhost ~]# systemctl disable firewalld.service #取消防火墙开机自启
[root@localhost ~]# systemctl stop firewalld.service #停止防护墙服务
[root@localhost ~]# vim /etc/selinux/config
按i进行编辑
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing #将enforcing改成disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted按esc 输入:wq!保存并推出
[root@localhost ~]#reboot #重启
注意 虚拟机的CD/DVD要连接才行否则会显示在/dev/sr0上找不到媒体
[root@localhost ~]# mkdir /media/cdrom #创建cdrom文件夹
[root@localhost ~]# mount /dev/sr0 /media/cdrom/ #将镜像挂载到cdrom文件夹中
mount: /dev/sr0 写保护,将以只读方式挂载 #挂载成功
[root@localhost ~]# vim /etc/dhcpd/dhcpd.conf
按i进行编辑
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
#
subnet 192.168.1.0 netmask 255.255.255.0 { #所在子网网段和子网掩码
range 192.168.1.100 192.168.1.200; #编辑dhcp分发地址范围
#DNS服务器可不写
#option domain-name-server DNS服务器IP;
#option domain-name "DNS服务器名称“;
option routers 192.168.1.1; #网关IP
option broadcast-address 192.168.1.255; #广播地址
default-lease-time 600; #默认租约时间
max-lease-time 7200; #最大租约时间filename "pxelinux.0";
next-server 192.168.105;
}
按esc 输入:wq!保存并推出[root@localhost ~]# systemctl restart dhcp #重启dhcp服务
[root@localhost ~]# vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = yes #将yes改成no
per_source = 11
cps = 100 2
flags = IPv4
}
保存并推出[root@localhost ~]# systemctl restart tftp #重启tftp服务
[root@localhost ~]# cd /var/lib/tftpboot #进入tftpboot文件夹
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./ #添加引导文件
[root@localhost tftpboot]#cp /usr/share/syslinux/menu.c32 ./ #菜单文件
[root@localhost tftpboot]#cp /media/cdrom/isolinux/initrd.img ./ #安装引导文件1
[root@localhost tftpboot]#cp /media/cdrom/isolinux/vmlinuz ./ #安装引导文件2
[root@localhost tftpboot]#mkdir pxelinux.cfg #创建pxelinux.cfg文件夹
[root@localhost tftpboot]#cd pxelinux.cfg #进入pxelinux.cfg文件夹
[root@localhost pxelinux.cfg]# vim default
default menu.c32
timeout 300
prompt 0label 1
menu label ^1) Install CentOS7
menu default
kernel vmlinuz
append initrd=initrd.img method=http://192.168.1.105/CentOS7 ks=http://192.168.1.105/ks.cfg #IP填写自己本机的IP[root@localhost pxelinux.cfg ]# cd #返回到主目录
[root@localhost ~]# mkdir /var/www/html/CentOS7 #创建CentOS7目录
[root@localhost ~]# umount /dev/sr0 #之前挂载到cdrom目录现在先取消挂载
[root@localhost ~]# mount /dev/sr0 /var/www/html/CentOS7 #将镜像挂载到CentOS7文件夹中
能看的以下界面就说明已经成功一大半了
[root@localhost ~]# yum install system-config-kickstart.noarch -y
改好语言设置密码别忘了勾选安装后重启选项(注意目标架构安装实体服务器要根据CPU架构来选择安装一般都是x86、AMD64架构)
安装方法选择HTTP
进行硬盘分区
如果不会分区可以看一下这篇文章
https://blog.csdn.net/qq754772661/article/details/113986185?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166574704716782390595931%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166574704716782390595931&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-113986185-null-null.142^v56^new_blog_pos_by_title,201^v3^control&utm_term=centos7%E7%A3%81%E7%9B%98%E5%88%86%E5%8C%BA&spm=1018.2226.3001.4187
配置网卡信息这里选择网络设备名称ens33因为CentOS7网卡名称默认的是ens33然后网络类型选DHCP如果选静态IP就会造成所有系统一个IP
然后点击文件保存到/var/www/html就行了
输入http://母机ip/ks.cfg 成下面这个样子就说明成功了
在这一步就要手动选择系统的安装模式了可以选最小化安装也可以选择其他的如果想全自动安装的话就要改ks.cfg文件就可以了。作者功力有限还做不到完全无人值守安装。