批量自动安装Centos7系统

批量安装Linux

1. 工作原理

在这里插入图片描述

1. PXE Client向DHCP发送请求,向本网络中的DHCP服务器获取IP。【需要安装DHCP服务】

2. DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端“提供”响应,这个“提供”响应中包含了
	2.1 为客户端分配的IP地址
	2.2 pxe启动程序的TFTP的ip地址[next-server 10.0.0.7]【需要安装TFTP服务】
	2.3 预启动执行环境文件pxelinux.0。[filename "/pxelinux.0"]
		pxelinux.0需要安装yum install syslinux后在/usr/share/syslinux/pxelinux.0【需要安装syslinux软件】

3. PXE客户端收到服务器的pxelinux.0后自动执行
	3.1 pxelinux.0在执行过程中,要读FTP服务器上的配置文件【pxelinux.cfg/default】
		3.1.1 配置文件,是按照规则进行查找的
			比如:一个PXE Client由DHCP Server分配的IP地址为192.168.0.22
				那么相对应的配置文件名为/tftpboot/pxelinux.cfg/C0A80016【注:C0A80016为IP地址192.168.0.22的十六进制表示】。
				如果找不到,就按照顺序C0A80016->; C0A8001->; C0A800->; C0A80->; C0A8->; C0A->; C0->; C->;default 查找配置文件。
    			所有需要在TFTP中新建目录和文件:mkdir pxelinux.cfg/default
    
4. 获取到pxelinux.cfg/default之后,因为default已提前定义了开机启动的最小化系统所需要的文件
	文件都在Centos7的ISO镜像下的目录isolinux/initrd和isolinux/vmlinuz,这两个文件需要复制到TFTP上
	4.1 kernel vmlinuz【Linux的内核】
	4.2 append initrd=initrd.img【指定追加给内核的参数,initrd.img是一个最小的linux系统】
	
5. pxelinux.cfg/default 还需要定义通过什么安装介质来安装linux【只是进入到安装页面,不能自动应答】,这样子就会找到http上的资源【httpd服务】
	如下:repo=http://192.168.10.254/Centos7
  	default linux
    prompt 0
    label linux
      kernel vmlinuz
      append initrd=initrd.img repo=http://192.168.10.254/Centos7

6. 在 default 上配置指定应答文件【ks.cfg】,将根据应答文件自动安装
	如下:ks=http://192.168.10.254/ks.cfg
  	default linux
    prompt 0
    label linux
      kernel vmlinuz
	  append initrd=initrd.img repo=http://192.168.10.254/Centos7 ks=http://192.168.10.254/ks.cfg

2. 安装的服务

2.1 环境拓扑

在这里插入图片描述

2.2 初始化系统

[root@localhost ~]# nmcli connect add type ethernet con-name static36 ifname ens36 autoconnect yes ipv4.method manual ipv4.address 192.168.10.254/24
[root@localhost ~]# nmcli connection up static36
[root@localhost ~]# yum install -y yum-utils	# 此软件包使用yum-config-manager 指定阿里云yum源
[root@localhost ~]# yum-config-manager --add-repo=http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# yum repolist all
[root@localhost ~]# yum install -y bash-completion	# 命令补全软件
[root@localhost ~]# sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
[root@localhost ~]# systemctl start firewalld.service
[root@localhost ~]# systemctl enable firewalld.service
[root@localhost ~]# reboot

#-- NAT转发
[root@localhost ~]# vi /etc/sysctl.conf		# 开启ipv4的转发
net.ipv4.ip_forward = 1
[root@localhost ~]# firewall-cmd --permanent --zone=external --change-interface=ens33	# 配置ens33接口为外网口
[root@localhost ~]# firewall-cmd --permanent --zone=internal --change-interface=ens36	# # 配置ens36接口为内网口
[root@localhost ~]# firewall-cmd --zone=external --add-masquerade --permanent	# 开启external[ens33]可以NAT转发
# 将源地址192.168.10.0/24 NAT到ens33接口上
[root@localhost ~]# firewall-cmd --permanent --direct --passthrough ipv4 -t nat POSTROUTING -o ens33 -j MASQUERADE -s 192.168.10.0/24
[root@localhost ~]# firewall-cmd --reload	# 生效

2.3 安装DHCP服务器

[root@localhost ~]# yum -y install dhcp

[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 192.168.10.0 netmask 255.255.255.0 {
        range 192.168.10.10 192.168.10.200;
		option routers 192.168.10.254;
        option subnet-mask 255.255.255.0;
		option domain-name-servers 223.6.6.6,223.5.5.5;
        default-lease-time 21600;
        max-lease-time 43200;
        next-server 192.168.10.254;
        filename "/pxelinux.0";
}

    
## 指定绑定网卡,因为网卡可能有很多个
[root@localhost ~]# vi /etc/sysconfig/dhcpd
DHCPDARGS=ens66

[root@localhost ~]# firewall-cmd --add-service=dhcp --permanent --zone=internal		# 防火墙区域internal允许dhcp
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd

2.4 tftp安装

## xinetd 管理tftp-server服务
[root@localhost ~]# yum -y install tftp-server xinetd
[root@localhost ~]# vi /etc/xinetd.d/tftp	# 修改disable为no
	disable			= no

[root@localhost ~]# firewall-cmd --add-service=tftp --permanent --zone=internal		# 防火墙区域internal允许tftp
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# systemctl start xinetd
[root@localhost ~]# systemctl enable xinetd

2.5 httpd安装

#-- 将CentOS-7-x86_64-DVD-1908.iso传输到/root下,参考命令【scp .\ISO\CentOS-7-x86_64-DVD-1908.iso root@192.168.168.136:/root/】
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# mkdir /var/www/html/Centos7
#-- 临时挂载
[root@localhost ~]# mount -o loop -t iso9660 /root/CentOS-7-x86_64-DVD-1908.iso /var/www/html/Centos7/
#-- 永久挂载
[root@localhost ~]# vi /etc/fstab
/root/CentOS-7-x86_64-DVD-1908.iso /var/www/html/Centos7/ iso9660 loop,ro 0 0

[root@localhost ~]# firewall-cmd --add-service=http --permanent --zone=internal		# 防火墙区域internal允许http
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

3.复制文件

3.1 pxelinux.0文件复制

[root@localhost ~]# yum -y install syslinux		# 为了得到pxelinux.0预启动文件
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

3.2 配置default

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default linux
prompt 0
label linux
	kernel vmlinuz
	append initrd=initrd.img repo=http://192.168.10.254/Centos7 ks=http://192.168.10.254/ks.cfg

#-- 这里prompt=0,直接读取default的标签[label linux],然后根据标签配置获取TFTP的中的文件vmlinuz和initrd
#-- 根据如上,直接复制vmlinuz和initrd到/var/lib/tftpboot/即可,其他都不需要[其他都是开机画面的定制]
[root@localhost ~]# cp /var/www/html/Centos7/isolinux/vmlinuz /var/lib/tftpboot/
[root@localhost ~]# cp /var/www/html/Centos7/isolinux/initrd.img /var/lib/tftpboot/

[root@localhost ~]# vi /var/www/html/ks.cfg

3.3 ks.cfg 文件配置

# 告知安装程序,这是一次全新安装,而不是升级
install
# 通过http下载安装镜像
url --url="http://192.168.10.254/Centos7"
# 以文本格式安装
text

# 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 --ipv6=auto --activate
network  --hostname=localhost.localdomain

# 设置用户密码123456
# Root password
auth --enableshadow --passalgo=sha512
rootpw --iscrypted $6$0Hu4r5pwNdX1zdsJ$Y58jOsbs0kSlplbtVf3lacoA7Etbf8tHH6BwxR78VT74Ut6D1Q/g.rS5GSwYZD5rAZpA4NmNlTBSZkyNZP3JZ0

# 启动服务
# System services
services --enabled="chronyd"
selinux --disabled
firewall --disabled

# 时区
# System timezone
timezone Asia/Shanghai --isUtc --nontp

# 分区,直接LVM分区,后续如果觉得不够可以自行添加
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --all --initlabel

# 安装完成重启
reboot

# 最小化安装和指定的安装软件
%packages
@^minimal
@core
yum-utils
bash-completion
%end

# KDUMP禁止
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end

# 安装完成后执行的命名,这里设置阿里云的yum源镜像
%post
/usr/bin/yum-config-manager --add-repo=http://mirrors.aliyun.com/repo/Centos-7.repo
%end
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值