Kickstart自动安装系统

avatar
作者
猴君
阅读量: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自动安装系统!!!!

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!