Kickstart自动安装系统
创始人
2024-09-26 09:48:56
0

目录

一、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 实验所需环境

  1. 主机名称: node1.com
  2. ip:  192.168.10.130
  3. 关闭防火墙以及selinux
  4. 开启httpd服务
  5. 配置软件仓库能正常工作
  6. 使用的是rhel7.9主机
  7. 开启主机图形  使用init 5 开图形
  8. 配置网络可用
  9. 关闭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
EOF

nmcli connection reload
nmcli connection up $1

hostnamectl 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自动安装系统!!!!

相关内容

热门资讯

安卓系统为什么不封闭,揭秘安卓... 你有没有想过,为什么安卓系统那么开放,却不像苹果iOS那样封闭呢?这背后可是有着不少有趣的故事和原因...
安卓系统更新包多大,解析不同版... 你有没有发现,每次安卓系统更新,手机里都会多出那么几个G的文件?这可真是让人好奇,安卓系统更新包究竟...
安卓手机安装双系统吗,安卓手机... 你有没有想过,你的安卓手机是不是也能像电脑一样,装上两个系统,一个用来工作,一个用来娱乐?没错,这就...
oppo会升级安卓系统,畅享最... 你知道吗?最近有个大消息在手机圈里炸开了锅,那就是OPPO要升级安卓系统啦!这可不是什么小打小闹的更...
安卓系统上安装windows,... 你有没有想过,在安卓手机上安装Windows系统?听起来是不是有点不可思议?但你知道吗,这竟然是可能...
安卓系统怎么进运行框,安卓系统... 你有没有想过,你的安卓手机里有一个超级实用的功能,那就是运行框!它就像是一个小助手,帮你快速找到正在...
安卓系统电视无图像设置,安卓电... 你家的安卓系统电视突然没图像了?别急,让我来给你支个招,让你轻松解决这个问题!一、检查电源和连接线首...
安卓机建议升级系统吗,提升性能 你有没有发现,你的安卓手机最近有点儿慢吞吞的?是不是在犹豫要不要升级系统呢?别急,让我来给你好好分析...
升级不了安卓系统升级,探寻升级... 你有没有遇到过这种情况?手机里的安卓系统突然告诉你,它需要升级,但你左等右等,就是升不上去。这可真是...
备用安卓系统手机推荐,盘点热门... 你有没有想过,如果你的手机突然罢工了,你会怎么办?别担心,今天我就要给你安利几款备用安卓系统手机,让...
旧安卓系统ipad无法更新系统... 你有没有遇到过这种情况?你的旧安卓系统iPad突然告诉你,它无法更新系统了!是不是瞬间感觉心里有点小...
运行安卓6系统命令大全,全面掌... 你有没有想过,你的安卓手机里隐藏着无数强大的功能,只等着你去发现和探索呢?今天,就让我带你走进安卓6...
安卓系统简笔画教程下载,轻松绘... 你有没有想过,用简单的线条就能把复杂的安卓系统画出来?没错,就是那种一看就懂,一画就上手的感觉!今天...
华为如何鸿蒙转安卓系统,轻松实... 你知道吗?最近华为的大动作可是让整个科技圈都沸腾了!他们竟然把鸿蒙系统转到了安卓系统上,这可真是让人...
安卓10系统的问题,安卓10系... 你有没有发现,自从你的手机升级到安卓10系统后,好像有点不对劲呢?别急,让我来给你细细道来,看看安卓...
安卓系统苹果搞笑视频,苹果搞笑... 你知道吗?在互联网的世界里,搞笑视频可是个永恒的热门话题。尤其是那些结合了安卓系统和苹果手机的搞笑片...
卡片机改造安卓系统,探索改造之... 你有没有想过,那些曾经陪伴我们记录美好时光的卡片机,现在竟然也能焕发第二春呢?没错,就是那些小巧便携...
装安卓系统倒车出不来,智能科技... 你有没有遇到过这样的事情:手机装了个安卓系统,结果倒车的时候出不来啦?这可不是闹着玩的,简直让人抓狂...
定制安卓系统哪家好点儿,哪家服... 你有没有想过,手机系统就像是个人的衣服,每个人都需要找到最适合自己的那一款?今天,咱们就来聊聊定制安...
台电用回安卓系统吗,开启智能新... 最近有个话题在科技圈里炒得挺热的,那就是台电是不是要用回安卓系统了?你有没有想过,这个小小的决定背后...