Linux System Environment
[root@kickstart ~]# cat /etc/redhat-release #==》系统版本
CentOS Linux release 7.6.1810 (Core)
[root@kickstart ~]#uname –r #==》内核版本
3.10.0-862.el7.x86_64
[root@kickstart ~]#uname -m #==》系统架构
x86_64
[root@kickstart ~]#echo $LANG #==》系统字符集
en_US.UTF-8
标注:本教程安装使用的是CentOS 7.5版本的镜像文件
什么是无人值守安装CentOS系统?
传统安装CentOS操作系统一般使用U盘或光盘进行安装,这样的操作是需要手动进行安装,操作步骤比较多又费时间,少量的主机可以使用这种手动安装操作系统,但是,如果是几十台甚至上百台主机需要安装CentOS操作系统恐怕你熬夜也安装不完。
无人值守安装CentOS系统涉及软件简介
1、PXE
PXE(Preboot Execute Environment,预启动执行环境)是由Intel公司开发的新技术,采用C/S网络模式,支持主机通过网络从远程服务器下载映像,并由此支持通过网络启动操作系统(前提计算机的网卡需要支持PXE技术,现在的网卡都支持此功能)。
2、FTP
FTP(File Transfer Protocol,文件传输协议)是用于在网络上进行文件传输的工具,21端口用于建立连接,22端口用于传输数据。
3、TFTP
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是用来客户机与服务器之间进行简单文件传输的工具,提供不复杂、开销不大的文件传输服务,端口号为69。
4、Vsftpd
vsftpd 是一款基于认证用户权限管理的ftp软件,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证,默认端口21端口。
5、Xinetd服务
Xinetd是TFTP的网络守护进程,TFTP运行和关闭都是由Xinetd服务来管理,xinetd 服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。
6、SYSLinux服务
SYSLinux是一个用于提供引导加载的服务程序。
7、DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机设置协议)是用于局域网动态分配IP地址的工具,主机发送请求消息DHCP服务器使用68端口,DHCP服务器回应应答消息给主机使用67端口。
8、Kickstart
Kickstart 是一种无人值守的安装方式,其工作原理是预先把原本需要手工填写的参数保存成一个ks.cfg 文件,当安装过程中出现需要填写参数情况下,安装程序会先找ks.cfg文件,找到合适的参数则自动执行,找不到合适的参数则需要手动填写。
无人值守安装系统重要的目录文件
1、kickstart应答文件存放路径
[root@kickstart ~]# ls -l /var/ftp/pub/ks.cfg
-rwxrwxrwx 1 root root 1917 Sep 9 14:50 /var/ftp/pub/ks.cfg
2、上传到ftp的CentOS 7镜像文件
[root@kickstart ~]# ls -l /var/ftp/
total 320
-rw-r--r-- 1 root root 14 Sep 7 18:00 CentOS_BuildTag
drwxr-xr-x 3 root root 35 Sep 7 18:00 EFI
-rw-r--r-- 1 root root 227 Sep 7 18:00 EULA
-rw-r--r-- 1 root root 18009 Sep 7 18:00 GPL
drwxr-xr-x 3 root root 57 Sep 7 18:00 images
drwxr-xr-x 2 root root 198 Sep 7 18:00 isolinux
drwxr-xr-x 2 root root 43 Sep 7 18:01 LiveOS
drwxr-xr-x 2 root root 221184 Sep 7 18:03 Packages
drwxr-xr-x 2 root root 20 Sep 9 14:50 pub
drwxr-xr-x 2 root root 4096 Sep 7 18:03 repodata
-rw-r--r-- 1 root root 1690 Sep 7 18:03 RPM-GPG-KEY-CentOS-7
-rw-r--r-- 1 root root 1690 Sep 7 18:03 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root 2883 Sep 7 18:03 TRANS.TBL
3、存放的启动安装系统文件
[root@kickstart ~]# ls -l /var/lib/tftpboot/
total 57920
-rw-r--r-- 1 root root 84 Sep 7 17:38 boot.msg
-rw-r--r-- 1 root root 52893200 Sep 7 17:37 initrd.img
-rw-r--r-- 1 root root 26759 Sep 7 17:31 pxelinux.0
drwxr-xr-x 2 root root 21 Sep 7 22:32 pxelinux.cfg
-rw-r--r-- 1 root root 152976 Sep 7 17:38 vesamenu.c32
-rwxr-xr-x 1 root root 6224704 Sep 7 17:37 vmlinuz
4、安装系统的GRUP菜单配置
[root@kickstart ~]# ls -l /var/lib/tftpboot/pxelinux.cfg/default
-rw-r--r-- 1 root root 3075 Sep 7 22:32 /var/lib/tftpboot/pxelinux.cfg/default
无人值守安装CentOS系统安装步骤
1、关闭Firewalld防火墙及SElinux
2、安装配置DHCP服务
3、安装配置TFTP服务
4、安装配置SYSlinux服务
5、安装配置vsftpd 服务
6、创建KickStart应用文件
7、测试无人值守安装CentOS系统
一、配置阿里云yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
二、关闭firewalld防火墙和SElinux
#==》关闭firewalld防火墙
[root@kickstart ~]# systemctl stop firewalld
[root@kickstart ~]# systemctl disable firewalld
[root@kickstart ~]# systemctl status firewalld
#==》关闭SElinux
[root@kickstart ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
[root@kickstart ~]# grep 'SELINUX=disabled' /etc/sysconfig/selinux
[root@kickstart ~]# setenforce 0
[root@kickstart ~]# getenforce
三、安装配置DHCP服务
标注:本机是DHCP服务器,提供DHCP客户端动态获取IP地址
1、设置本机网卡为固定IP地址 10.0.0.30,本机是提供DHCP服务防止本机IP随意变动
[root@kickstart ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
IPADDR=10.0.0.30
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=223.6.6.6
ONBOOT=yes
2、安装DHCP服务
[root@kickstart ~]# yum -y install dhcp
3、配置DHCP服务
[root@kickstart ~]# vim /etc/dhcp/dhcpd.conf
allow booting; #==》是否响应使用者查询
allow bootp; #==》是否响应激活查询
ddns-update-style interim; #==》配置DHCP-DNS 互动更新模式
ignore client-updates;
subnet 10.0.0.0 netmask 255.255.255.0 {
range dynamic-bootp 10.0.0.150 10.0.0.200; #==》指定IP地址池
option subnet-mask 255.255.255.0; #==》指定子网掩码
option domain-name-servers 10.0.0.30; #==》指定DNS服务器IP地址
default-lease-time 21600; #==》指定默认租约时间,单位秒
max-lease-time 43200; #=》最大租约时间,单位秒
next-server 10.0.0.30; #=》设置服务器从引导文件中安装
filename "pxelinux.0"; #=》开始启动文件名称
}
4、启动DHCP服务并设置开机自启动
[root@kickstart ~]# systemctl start dhcpd
[root@kickstart ~]# systemctl enable dhcpd
[root@kickstart ~]# systemctl status dhcpd
[root@kickstart ~]# ss -tlunp | egrep "67|68"
四、安装配置TFTP服务
标注:TFTP运行和关闭是由 xinetd 网络守护进程服务来管理
1、安装TFTP服务
[root@kickstart ~]# yum -y install tftp-server xinetd
2、配置TFTP服务
标注:把/etc/xinetd.d/tftp配置文件中disable=yes修改成no表示启动TFPT服务
[root@kickstart ~]# vim /etc/xinetd.d/tftp
disable = no
3、启动xinetd服务并设置开机自启动
[root@kickstart ~]# systemctl start xinetd
[root@kickstart ~]# systemctl enable xinetd
[root@kickstart ~]# systemctl status xinetd
[root@kickstart ~]# ss -tlunp | grep 69
五、安装配置SYSLinux服务
标注:SYSLinux是一个用于提供引导加载的服务程序,其中SYSLinux服务包含bootloader有SYSLinux/PXELinux/ISOLinux等,我们要使用到的是PXELinux(PXE网络引导启动)的引导加载程序文件pexlinux.0,默认存放在/usr/share/syslinux目录中
1、安装SYSLinux服务
[root@kickstart ~]# yum -y install syslinux
2、提取SYSLinux提供的引导文件pxelinux.0到TFTP服务程序默认目录
[root@kickstart ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
六、挂载CentOS 7镜像本地主机
1、挂载CentOS 7(ISO)镜像
[root@kickstart ~]# mkdir /media/cdrom
[root@kickstart ~]# mount /dev/cdrom /media/cdrom/
2、提取CentOS 7镜像中需要使用的一些引导文件也复制到TFTP服务程序默认目录
[root@kickstart ~]# cp /media/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root@kickstart ~]# cp /media/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@kickstart ~]# cp /media/cdrom/isolinux/vesamenu.c32 /var/lib/tftpboot/
[root@kickstart ~]# cp /media/cdrom/isolinux/boot.msg /var/lib/tftpboot/
3、提取CentOS 7镜像中开机菜单文件并指定自定的目录命名为default
[root@kickstart ~]# mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@kickstart ~]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
4、配置开机菜单文件
[root@kickstart ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
#==》第 1 行的 default 参数修改为 linux,这样系统在开机时就会默认执行那个名称为 linux 的选项了
1 default linux
#==》第 64 行,我们把默认的光盘镜像安装方式修改成 FTP 文件传输方式,并指定好光盘镜像的获取地址以及 Kickstart 应答文件的获取路径,修改网卡名称为eth0
64 append initrd=initrd.img inst.stage2=ftp://10.0.0.30 ks=ftp://10.0.0.30/pub/ks.cfg quiet net.ifnames=0 biosdevname=0
5、检查
[root@kickstart ~]# ls -l /var/lib/tftpboot/
total 57920
-rw-r--r-- 1 root root 84 Sep 7 17:38 boot.msg
-rw-r--r-- 1 root root 52893200 Sep 7 17:37 initrd.img
-rw-r--r-- 1 root root 26759 Sep 7 17:31 pxelinux.0
drwxr-xr-x 2 root root 21 Sep 7 17:49 pxelinux.cfg
-rw-r--r-- 1 root root 152976 Sep 7 17:38 vesamenu.c32
-rwxr-xr-x 1 root root 6224704 Sep 7 17:37 vmlinuz
七、安装配置vsftpd服务
标注:CentOS 7光盘镜像资源是通过 FTP 协议传输,因此要用到 vsftpd 服务
1、安装vsftpd服务
[root@kickstart ~]# yum -y install vsftpd
2、启动vsftpd服务并设置开机自启动
[root@kickstart ~]# systemctl start vsftpd
[root@kickstart ~]# systemctl enable vsftpd
[root@kickstart ~]# systemctl status vsftpd
[root@kickstart ~]# ss -ltunp | grep 21
3、提取CentOS 7镜像文件到vsftpd服务工作目录中
[root@kickstart ~]# cp -r /media/cdrom/* /var/ftp/
八、创建Kickstart应答文件
标注:Kickstart不是一个服务,是一个应答文件。包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的指定的操作步骤
创建Kickstart应答有三种方法
方法1:
每安装好一台Centos机器,Centos安装程序都会创建一个kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件,生成的文件默认路径位于/root/anaconda-ks.cfg
方法2:
Centos提供了一个图形化的kickstart配置工具,可以通过yum来安装system-config-kickstart 软件包,可以根据自己的需求生成自定义的 Kickstart应答文件。
方法3:
阅读kickstart配置文件的手册,用vi/vim文本编辑器创建你自己的kickstart配置文件。
1、通过vim创建kickstart应答文件,文件放到/var/ftp/pub 目录中并命名为 ks.cfg
[root@kickstart ~]# vim /var/ftp/pub/ks.cfg
#==》安装Linux系统
install
#==》键盘类型为英文
keyboard --vckeymap=us --xlayouts='us'
#==》root加密的密码,也可以设置成不加密的
#rootpw --iscrypted $1$uV3lKOUB$xbDxbXrOTZzIRu4837FDU0
rootpw 123456
#==》使用网络安装并指定ftp服务提供的系统镜像源
url --url=ftp://10.0.0.30
# System language
#==》系统字符集设置为英文的UTF-8
lang en_US.UTF-8
#==》以图形化安装系统,text以文本形式安装系统
#text
graphical
#==》设置地区时间
timezone Asia/Shanghai --isUtc --nontp
#==》设置网卡信息
network --bootproto=static --device=eth0 --gateway=10.0.0.2 --ip=10.0.0.7 --nameserver=10.0.0.2 --netmask=255.255.255.0
#==》指定引导记录被写入的位置
bootloader --location=mbr --boot-drive=sda
#==》清除MBR引导
zerombr
#==》清除分区
clearpart --all –initlabel
#==》磁盘分区
part /boot --asprimary --fstype="ext4" --size=500 #==》boot引导分区
part swap --fstype="swap" --size=4000 #==》swap分区
part / --fstype="ext4" --grow --size=1 #==》主分区,size为1代表将剩下的所有容量分配给当前分区
#==》关闭SELinux
selinux --disabled
#==》关闭防火墙
firewall --disabled
#==》负责协助配置redhat一些重要信息
firstboot --disabled
#==》设置日志级别
logging --level=info
#==》指定要安装的软件包,本教程选择的是以最小化安装
%packages
@^minimal
@compat-libraries
@core
@debugging
@development
@system-admin-tools
wget
vim
tree
nmap
sysstat
lrzsz
bash-completion
%end
#==》关闭kdump功能
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
#==》存放脚本和命令,此处设置阿里云为yum源
%post
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
%end
#==》安装完重启系统
reboot
2、ks.cfg授权所有用户x权限
[root@kickstart ~]# chmod +x /var/ftp/pub/ks.cfg
3、使用命令检查kickstart应答文件是否有语法错误
[root@kickstart ~]# yum -y install pykickstart
[root@kickstart ~]# ksvalidator /var/ftp/pub/ks.cfg
九、使用VMware Workstation创建的虚拟测试
1、虚拟机需要设置成网络启动
2、系统安装完后的分区
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 3.9G 0 part [SWAP]
└─sda3 8:3 0 45.6G 0 part /
sr0 11:0 1 1024M 0 rom
网友评论