在kickstart的基础上搭建pxe网络安装环境实现服务器自动部署
1.首先关闭vmware的dhcp
在关闭了dhcp之后会出现没有ip地址的情况,所以需要手动配置ip
2.开启主机图形
使用hostnamectl查看是否具有图形
Operating System是指图形化界面
如果在开启虚拟机之后没有打开可以使用init 5命令打开
如果没有安装图形化界面可以使用yum group install “Server with GUI” -y
3.安装kickstart相关工具
安装图形化生成kickstart自动安装脚本的工具
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.8G 0 4.8G 0% /dev
tmpfs 4.8G 0 4.8G 0% /dev/shm
tmpfs 4.8G 13M 4.8G 1% /run
tmpfs 4.8G 0 4.8G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 45G 4.1G 41G 10% /
/dev/sda1 1014M 183M 832M 19% /boot
tmpfs 982M 44K 982M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /rhel7.9
[root@localhost ~]#
[root@localhost ~]# yum install system-config-kickstart -y
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
......
Installed:
system-config-kickstart.noarch 0:2.9.7-1.el7
Dependency Installed:
system-config-date.noarch 0:1.10.6-3.el7 system-config-date-docs.noarch 0:1.0.11-4.el7
system-config-keyboard.noarch 0:1.4.0-5.el7 system-config-keyboard-base.noarch 0:1.4.0-5.el7
system-config-language.noarch 0:1.4.0-9.el7
Complete!
[root@localhost ~]#
安装apache提供http服务
[root@localhost ~]# yum install httpd -y
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
......
Installed:
httpd.x86_64 0:2.4.6-95.el7
Dependency Installed:
apr.x86_64 0:1.4.8-7.el7 apr-util.x86_64 0:1.5.2-6.el7 httpd-tools.x86_64 0:2.4.6-95.el7 mailcap.noarch 0:2.1.41-2.el7
Complete!
#启动并设置开机自启动
[root@localhost ~]# systemctl enable --now httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]#
4.打开图形化的kickstart脚本生成工具创建安装脚本
system-config-kickstart
基本配置
安装源设置如果没有安装httpd的话就不能用http
而且软件仓库是挂载在/rhel7.9的
所以需要创建一个软连接
[root@localhost ~]# ln -s /rhel7.9/ /var/www/html/
[root@localhost ~]# ll /var/www/html/
total 0
lrwxrwxrwx. 1 root root 9 Aug 5 07:32 rhel7.9 -> /rhel7.9/
#关闭防火墙及SELinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
测试:
引导加载程序
添加分区
/boot分区
swap分区
根分区
分区设置
网络设置这是安装好的网卡设置
身份认证默认就行
防火墙SELinux设置
图形界面设置
安装前执行的脚本
安装后执行的脚本
配置软件仓库
保存到/root目录下面
[root@localhost ~]# ll ks.cfg
-rw-r--r--. 1 root root 1197 Aug 5 09:40 ks.cfg
[root@localhost ~]#
编辑ks.cfs将需要下载的软件包加入其中并测试是否有语法错误
[root@localhost ~]# vim ks.cfg
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --fstype="swap" --size=512
part / --fstype="xfs" --grow --size=1
#在这后面添加
%packages
@base
httpd
%end
%pre
......
#测试语法错误
[root@localhost ~]# ksvalidator ks.cfg
[root@localhost ~]#
将ks.cfg移动到http文件中去
[root@localhost ~]# cp /root/ks.cfg /var/www/html/
[root@localhost ~]# ll /var/www/html/
total 4
-rw-r--r--. 1 root root 1225 Aug 5 09:49 ks.cfg
lrwxrwxrwx. 1 root root 9 Aug 5 07:32 rhel7.9 -> /rhel7.9/
[root@localhost ~]#
使用浏览器查看是否能够访问
安装dhcp服务器,为其他服务器提供分配ip的功能
[root@localhost ~]# yum install dhcp -y
#编写dhcp配置文件
[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
option domain-name "mashang.org"; #公司域名
option domain-name-servers 114.114.114.114; #对外分发的dns地址
default-lease-time 600;
max-lease-time 7200;
# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
#subnet 10.152.187.0 netmask 255.255.255.0 {
#}
# This is a very basic subnet declaration.
subnet 172.25.254.0 netmask 255.255.255.0 { #网络位和子网掩码
range 172.25.254.30 172.25.254.40; #地址池
option routers 172.25.254.2; #网关
}
[root@localhost ~]#
#设置开机启动和运行dhcp
[root@localhost ~]# systemctl enable --now dhcpd
5.kickstart的基础上搭建pxe网络安装环境实现服务器自动部署
在主机上安装pxe
[root@localhost isolinux]# yum install syslinux.x86_64 -y
安装tftp软件包,为了共享pxelinux.0数据文件的网络服务
[root@localhost isolinux]# yum install tftp-server.x86_64 -y
#启动服务并设置开机启动
[root@localhost isolinux]# systemctl enable --now tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@localhost isolinux]#
6.建立数据目录数据文件
将服务器需要的资源拷贝到资源目录下
[root@localhost isolinux]# cp /rhel7.9/isolinux/* /var/lib/tftpboot/
[root@localhost isolinux]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost isolinux]# ll /var/lib/tftpboot/
total 112148
-r--r--r--. 1 root root 2048 Aug 5 11:04 boot.cat
-r--r--r--. 1 root root 84 Aug 5 11:04 boot.msg
-r--r--r--. 1 root root 321 Aug 5 11:04 grub.conf
-r--r--r--. 1 root root 51211620 Aug 5 11:04 initrd.img
-r--r--r--. 1 root root 24576 Aug 5 11:04 isolinux.bin
-r--r--r--. 1 root root 3166 Aug 5 11:04 isolinux.cfg
-r--r--r--. 1 root root 190896 Aug 5 11:04 memtest
-rw-r--r--. 1 root root 26743 Aug 5 11:05 pxelinux.0
-r--r--r--. 1 root root 186 Aug 5 11:04 splash.png
-r--r--r--. 1 root root 2438 Aug 5 11:04 TRANS.TBL
-r--r--r--. 1 root root 56427369 Aug 5 11:04 upgrade.img
-r--r--r--. 1 root root 153104 Aug 5 11:04 vesamenu.c32
-r-xr-xr-x. 1 root root 6769496 Aug 5 11:04 vmlinuz
[root@localhost isolinux]# cd /var/lib/tftpboot/
#创建pxelinux.cfg
[root@localhost tftpboot]# mkdir pxelinux.cfg
#将isolinux.cfg复制到pxelinux.cfg/default
[root@localhost tftpboot]# cp isolinux.cfg pxelinux.cfg/default
[root@localhost tftpboot]#
编辑dhcp文件
[root@localhost tftpboot]# cat /etc/dhcp/dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
option domain-name "mashang.org";
option domain-name-servers 114.114.114.114;
default-lease-time 600;
max-lease-time 7200;
# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
#subnet 10.152.187.0 netmask 255.255.255.0 {
#}
# This is a very basic subnet declaration.
subnet 172.25.254.0 netmask 255.255.255.0 {
range 172.25.254.30 172.25.254.40;
option routers 172.25.254.2;
next-server 172.25.254.100;
filename "pxelinux.0"
}
[root@localhost tftpboot]#
#重启dhcp服务
[root@localhost tftpboot]# systemctl restart httpd
创建一个虚拟机server1
7.修改主机上的被读取文件
[root@localhost tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
修改超时时间:
修改首页标题为hahahaha和资源
8.测试
以下列方式打开
进入此界面使用±来控制上移下移,将Network移动到最上面
如图选择按enter进入界面
进入页面后可以看到修改的超时时间和标题
选择第一个回车