目录
一、Kickstart的介绍
1.1 为什么要使用Kickstart?
1.2 如何解决以上问题?
1.3 Kickstart的作用
二、实验环境
2.1 实验所需环境
2.2 测试所给的环境是否可用
三、安装Kickstart+配置ks文件
3.1 安Kickstart
3.2 配置ks文件
3.2.1 使用图像配置工具配置好需要的系统,在生成必要的文件。
3.2.2 图形化工具介绍
3.2.3 在图形工具中没有办法安装软件。我们可以在我们自己保存的位置打开配置文件自己写入安装包指令。
3.2.4 写完后检测配置文件是否有错误
四、进行资源共享
4.1 查看自己/etc/cdrom的挂载点在哪
4.2 在/var/www/html创建上面挂载点目录
4.3 进行测试
4.5 把ks.cfg加入到/var/www/html
4.5.1 可测试是否在共享资源中:
五、安装dhcp服务器为其他服务器提供分配ip
5.1 安装dhcp服务器
5.1.1 更改的内容:
5.2 最后重启dhcp服务器
六、使用ks文件安装新系统
6.1 在安装时选择第一行安装项并按tab键
6.2 输入ks文件地址
6.3 自动安装
6.3.1 出现下面登录账户就代表安装成功:
6.4 测试
6.4.1 登入进入查看IP地址:
6.4.2 查看网络是否正常:
七、使用网络进行安装系统
7.1 移除新主机的CD/DVD(SATA):
7.2 完成配置
7.3 再次配置dhcp服务器:
7.4 编辑/var/lib/tftpboot/pxelinux.cfg/default
7.4.1 可以界面修改时间 :
7.4.2 把label check默认改到label linux,在修改label linux里的append行的内容:
7.5 点击新系统的电源键的 "打开电源时进入固件"
7.6 用左右键和减或者shift+加号来进行控制
7.7 最后退出保存
7.8 自动安装
7.8.1 完成安装后关闭虚拟机再次进入 "打开电源时进入固件" ,选择硬盘安装,最后进入登录页面
一、Kickstart的介绍
kickstart - 通过网络 PXE 的方式来进行自动化安装 Redhat/Centos 操作系统的一种流程方式,主要通过 NFS 、FTP、HTTP 来执行,需要执行 kickstart,流程如下:
1.1 为什么要使用Kickstart?
当安装Linux操作系统时,安装过程会需要回答很多关于设定的问题,这些问题必须手动选择,否则无法进行安装。当只安装1台Linux系统,手动选择设定工作量比较轻松,当安装多台Linux,这些设定需要重复多次,这些重复动作是效率慢的操作。
1.2 如何解决以上问题?
用文件来记录所有安装过程中问题的答案,并让所有需要安装的主机自动读取。
1.3 Kickstart的作用
解决方案中记录系统安装过程中所有问题答案的文件叫kickstart脚本。
二、实验环境
2.1 实验所需环境
- 主机名称: node1.com
- ip: 192.168.10.130
- 关闭防火墙以及selinux
- 开启httpd服务
- 配置软件仓库能正常工作
- 使用的是rhel7.9主机
- 开启主机图形 使用init 5 开图形
- 配置网络可用
- 关闭VMware dhcp功能
2.2 测试所给的环境是否可用
主机名称: node1.com
ip: 192.168.10.130
关闭防火墙以及selinux
[root@node1 ~]# systemctl stop firewalld #关闭防火墙
[root@node1 ~]# setenforce 0 #selinux调整为警告模式[root@node1 ~]# getenforce #检查selinux
Permissive #检查结果为宽松的,许可的
开启httpd服务
[root@node1 ~]# yum install httpd -y #下载httpd
[root@node1 ~]# systemctl enable --now httpd.service 开启httpd服务并开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@node1 ~]# systemctl status httpd.service #查看httpd服务是否开启
配置软件仓库能正常工作
[root@node1 ~]# yum makecache #建立元数据缓存
使用的是rhel7.9主机
[root@node1 ~]# hostnamectl #查看系统信息
开启主机图形 使用init 5 开图形
[root@node1 ~]# init 5 #如果一开始是图形界面,可以不用执行
配置网络可用
[root@node1 ~]# nmtui #图形化界面
[root@node1 ~]# nmcli #使用nmcli命令,这里没详细写出[root@node1 ~]# cat /bin/vmset.sh #或者通过脚本来编写
#!/bin/bash
cat > /etc/sysconfig/network-scripts/ifcfg-$1 << EOF
DEVICE=$1
ONBOOT=yes
BOOTPROTO=none
IPADDR1=$2
NETMASK1=255.255.255.0
GATEWAY1=192.168.10.2
DNS1=114.114.114.114
NAME=$1
EOFnmcli connection reload
nmcli connection up $1hostnamectl set-hostname $3
cat > /etc/hosts << EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
$2 $3
EOF
[root@node1 ~]# ping www.baidu.com -c2 #看网络是否正常
关闭VMware dhcp功能
在VMware中点击编辑——>虚拟网络编辑器——>把vmnet1和vmnet8的 "使用本地DHCP服务将IP地址分配给虚拟机(D)" ——>最后点击确定
最后完成图形:
三、安装Kickstart+配置ks文件
3.1 安Kickstart
[root@node1 ~]# yum search kickstart #查看有关kickstart软件
[root@node1 ~]# yum install system-config-kickstart -y #安装图形化生成kickstart自动安装脚本的工具
3.2 配置ks文件
3.2.1 使用图像配置工具配置好需要的系统,在生成必要的文件。
[root@node1 ~]# system-config-kickstart #打开图形制作工具
3.2.2 图形化工具介绍
!!!这中间的Package Selection和Pre-Installation Script不需要干什么,所以没有加图片!!!
3.2.3 在图形工具中没有办法安装软件。我们可以在我们自己保存的位置打开配置文件自己写入安装包指令。
[root@node1 ~]# vim ks.cfg
part / --fstype="xfs" --grow --size=1 #在这下面添加四行
%packages
@base
httpd
%end
3.2.4 写完后检测配置文件是否有错误
[root@node1 ~]# ksvalidator ks.cfg #检查语法是否有错
四、进行资源共享
前面已经进行httpd服务下载、运行,以及关闭防火墙和selinux
4.1 查看自己/etc/cdrom的挂载点在哪
[root@node1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 785M 0 785M 0% /dev
tmpfs 802M 0 802M 0% /dev/shm
tmpfs 802M 11M 791M 2% /run
tmpfs 802M 0 802M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 8.9G 8.2G 52% /
/dev/sda1 1014M 170M 845M 17% /boot
/dev/loop0 4.3G 4.3G 0 100% /iso
tmpfs 161M 28K 161M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /rhel7.9
4.2 在/var/www/html创建上面挂载点目录
[root@node1 html]# mkdir rhel7.9
[root@node1 html]# mount /dev/cdrom /var/www/html/rhel7.9/
4.3 进行测试
4.5 把ks.cfg加入到/var/www/html
[root@node1 ~]# cp /root/ks.cfg /var/www/html/
4.5.1 可测试是否在共享资源中:
五、安装dhcp服务器为其他服务器提供分配ip
5.1 安装dhcp服务器
[root@node1 ~]# yum install dhcp -y
[root@node1 ~]# rpm -qc dhcp #查看所有有关dhcp的文件位置
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases[root@node1 ~]# cat /etc/dhcp/dhcpd.conf #查看/etc/dhcp/dhcpd.conf文件
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#[root@node1 ~]# \cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#把dhcpd.conf.example内容复制到/etc/dhcp/dhcpd.conf[root@node1 ~]# vim /etc/dhcp/dhcpd.conf #进入后:set nu在36行之后所有内容删除
5.1.1 更改的内容:
7 option domain-name "example.org"; #公司域名
8 option domain-name-servers 114.114.114.114; #对外分发的dns地址32 subnet 192.168.10.0 netmask 255.255.255.0 { #前面是网络位,后面是子网掩码
33 range 192.168.10.150 192.168.10.160; #地址池
34 option routers 192.168.10.2; #网关
35 }
5.2 最后重启dhcp服务器
[root@node1 ~]# systemctl enable --now dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
六、使用ks文件安装新系统
6.1 在安装时选择第一行安装项并按tab键
6.2 输入ks文件地址
6.3 自动安装
6.3.1 出现下面登录账户就代表安装成功:
6.4 测试
6.4.1 登入进入查看IP地址:
[root@localhost ~]# ip a
6.4.2 查看网络是否正常:
[root@node1 ~]# yum makecache
七、使用网络进行安装系统
7.1 移除新主机的CD/DVD(SATA):
7.2 完成配置
[root@node1 ~]# yum install syslinux -y #下载 syslinux
[root@node1 ~]# yum install tftp-server.x86_64 -y #下载tftp-server.x86_64 共享pxelinux.0数据文件的网络服务
[root@node1 ~]# rpm -ql tftp-server
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot[root@node1 ~]# systemctl enable --now tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@node1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 785M 0 785M 0% /dev
tmpfs 802M 0 802M 0% /dev/shm
tmpfs 802M 11M 791M 2% /run
tmpfs 802M 0 802M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 8.9G 8.2G 52% /
/dev/sda1 1014M 170M 845M 17% /boot
/dev/loop0 4.3G 4.3G 0 100% /iso
tmpfs 161M 28K 161M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /var/www/html/rhel7.9
[root@node1 ~]# cp /var/www/html/rhel7.9/isolinux/* /var/lib/tftpboot/
[root@node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/[root@node1 ~]# cd /var/lib/tftpboot/
[root@node1 tftpboot]# ls
boot.cat grub.conf isolinux.bin memtest splash.png upgrade.img vmlinuz
boot.msg initrd.img isolinux.cfg pxelinux.0 TRANS.TBL vesamenu.c32
[root@node1 tftpboot]# mkdir pxelinux.cfg
[root@node1 tftpboot]# cp isolinux.cfg pxelinux.cfg/default
7.3 再次配置dhcp服务器:
[root@node1 ~]# vim /etc/dhcp/dhcpd.conf
在最后加入这两行:
next-server 192.168.10.130;
filename "pxelinux.0";
[root@node1 ~]# tail /etc/dhcp/dhcpd.conf# This is a very basic subnet declaration.
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.150 192.168.10.160;
option routers 192.168.10.2;
next-server 192.168.10.130;
filename "pxelinux.0";
}[root@node1 ~]# systemctl restart dhcpd
[root@node1 ~]#
7.4 编辑/var/lib/tftpboot/pxelinux.cfg/default
[root@node1 pxelinux.cfg]# vim default
7.4.1 可以界面修改时间 :
7.4.2 把label check默认改到label linux,在修改label linux里的append行的内容:
!!!最后要wq!强制保存退出!!!!
7.5 点击新系统的电源键的 "打开电源时进入固件"
7.6 用左右键和减或者shift+加号来进行控制
7.7 最后退出保存
7.8 自动安装
7.8.1 完成安装后关闭虚拟机再次进入 "打开电源时进入固件" ,选择硬盘安装,最后进入登录页面
!!!!这样就完成了Kickstart自动安装系统!!!!