有时候安装一两台服务器是轻松的事,但是如果要安装2,3百台的时候那就不是很轻松了,这时候无人值守的操作系统安装就变得非常重要。通过网络自动安装是非常方便而且快捷的。
先关闭防火墙吧
systemctl stop firewalld
systemctl disable firewalld
1.下载安装ISO
首先我们想要下载一个要安装的镜像iso,可以去阿里下载要安装的镜像ISO文件,我这里下载的是CentOS-7-x86_64-Minimal-2009.iso。
下载完成之后,上传到一台服务器上。然后把光盘挂载到目录。如果看到挂载目录下有光盘的内容,那就标识成功了。
mkdir -p /mnt/iso
mount /tmp/CentOS-7-x86_64-Minimal-2009.iso /mnt/iso
ll /mnt/iso
2.安装TFTP
yum install -y tftp-server
vi /etc/xinetd.d/tftp
修改配置,把disable改为no.
# 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 = no
per_source = 11
cps = 100 2
flags = IPv4
}
启动ftpserver
systemctl start tftp
systemctl enable tftp
systemctl status tftp
3.拷贝数据文件到ftp目录
拷贝必要文件,建立pxe的默认配置目录
#拷贝镜像文件
cd /var/lib/tftpboot
cp /mnt/iso/isolinux/initrd.img ./
cp /mnt/iso/isolinux/vmlinuz ./
yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#建立pxe的默认配置目录
mkdir pxelinux.cfg
加入pxe的默认配置
vi pxelinux.cfg/default
default auto
timeout 60
label auto
menu default
kernel vmlinuz
append initrd=initrd.img repo=http://192.168.124.165/centos7/ ks=http://192.168.124.165/ks.cfg quiet
label linux text
kernel vmlinuz
append text initrd=initrd.img method=http://192.168.124.165/centos7/
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=http://192.168.124.165/centos7/
timeout 默认超时60秒,default auto 默认启动菜单"auto" ,后面的label auto就是菜单,后面的配置就是内核加载,如何加载初始化镜像。在后面的http地址在下一步的时候,我们会建立。
4.安装配置nginx
yum -y install nginx
#增加centos镜像下载地址配置
vi /etc/nginx/conf.d/centosdownload.conf
配置文件的内容如下,192.168.124.165这个ip是这台服务器的ip
server {
listen 80;
listen [::]:80;
server_name 192.168.124.165;
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
location / {
autoindex on;
root "/var/lib/tftpboot/";
}
}
#启动nginx,如果出现80端口就代表启动成功
nginx
把ISO的挂载目录,放入nginx访问地址
ln -s /mnt/iso/ /var/lib/tftpboot/centos7
通过浏览器打开nginx的访问地址http://192.168.124.165
5.安装DHCP服务
yum install -y dhcp
#编辑dhcp配置
vi /etc/dhcp/dhcpd.conf
配置文件的配置如下:
subnet 192.168.124.0 netmask 255.255.255.0 {
interface "ens3";
range 192.168.124.10 192.168.124.200;
option domain-name-servers 223.5.5.5;
option routers 192.168.124.1;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.124.165;
filename "pxelinux.0";
}
subnet 指为哪个网段分配网络参数,
range设置为客户端分配的IP地址池,这个可以分配客户端分配从192.168.124.10到192.168.124.200之间的IP地址。
domain-name-servers设置为客户端分配的DNS服务器地址,
routers设置为客户端分配的网关地址。
对网络启动至关重要的参数是next-server和filename,从安装部署流程可以看出,客户端启动计算机通过DHCP获得IP地址后,还需要从TFTP下载启动文件,而next-server设置的即TFTP服务器的地址,filename设置的是在该TFTP文件服务器上共享的启动文件名称,客户端通过这两个参数连接TFTP服务器,并从中下载启动文件
6.配置Kickstart自动应答文件
这是cento7.9的自动应答文件,保存在 /var/lib/tftpboot/ks.cfg,内容如下,这里的root默认密码设置了123456
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts,键盘布局
keyboard 'us'
# Root password root密码
rootpw --iscrypted $1$rtzAm//y$MScUNgC4bHyZidRwzKlkz/
# System language 系统语言
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install 安装模式,text是文本模式,graphical是图形
#text
graphical
# SELinux configuration selinux配置,这里是关闭
selinux --disabled
# Do not configure the X Window System 是否启动图形界面,这里是启动文本界面,因为是服务器安装
skipx
# Firewall configuration 防火墙是否打开,这里是关闭
firewall --disabled
# Network information 网络模式是dhcp
network --bootproto=dhcp --device=ens3
# Reboot after installation
reboot
# System timezone 设置时区
timezone Asia/Shanghai
# Use network installation 这里就是镜像安装地址
url --url="http://192.168.124.165/centos7/"
# System bootloader configuration 启动启动模式,这里是mbr
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information 安装是否清理原来磁盘的所有分区
clearpart --all --initlabel
# Disk partitioning information 系统分区格式,/boot 512MB swap 8192M ,其他的全部给根分区
part /boot --fstype="xfs" --size=512
part swap --fstype="swap" --size=8192
part / --fstype="xfs" --grow --size=1
reboot
#这里是需要安装的软件包,core是必须的,net-tools是另外安装的软件
%packages
@^minimal
@core
net-tools
%end
以上的配置文件,也可以通过 system-config-kickstart生成,但是需要图形界面。这一块我们就不讲。
yum -y install system-config-kickstart
#安装后,可以在图形界面,直接启动system-config-kickstart
以上东西准备好后就可以直接用一个客户机来进行网络系统安装了
这样就会自动安装完成。