Kickstart自动安装系统

news2024/11/15 15:33:21

目录

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1981456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

日志采集格式

本实验需要两个虚拟机&#xff0c;一个用于配置&#xff0c;一个用于查看测试结果 node1主机上的配置 vim /etc/rsyslog.conf #添加配置&#xff0c;写入指定的日志格式 13 module(load"builtin:omfile" Template"HAHA") 14 $template HAHA,"%FROM…

Ceres Cuda加速

文章目录 一、简介二、准备工作三、实现代码四、实现效果参考资料一、简介 字Ceres2.2.1版本之后,作者针对于稠密矩阵的分解计算等操作进行了Cuda加速,因此这里就基于此项改动测试一下效果。 二、准备工作 1、首先是需要安装Cuda这个英伟达第三方库,https://developer.nvidi…

eclipse免安装版64位 2018版本(java开发软件)

前言 eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言&#xff0c;它只是一个框架和一组服务&#xff0c;用于通过插件组件构建开发环境。 一、下载地址 下载地址&#xff1a;分享文件&#xff1a;eclipse v2018.zip下载 二、安装步骤 1、下载解压后将…

日撸Java三百行(day13:链表)

目录 一、链表的基础知识 二、链表的代码实现 1.链表创建 2.链表遍历 3.链表定位查找 4.链表插入 5.链表删除 6.数据测试 7.完整的程序代码 总结 一、链表的基础知识 在之前顺序表的学习中&#xff0c;我们其实提到过链表。链表它是线性表在不同的物理存储方式下派生…

HarmonyOS 音视频之音频采集实战

HarmonyOS 音视频之音频采集实战 背景 应用开发过程中很多场景都有音频采集需求&#xff0c;比如聊天功能的发送语音功能&#xff0c;实时语音转文本功能&#xff0c;实时语音通话&#xff0c;实时视频通话等。在Android和iOS端&#xff0c;系统提供了两种形式&#xff1a; …

图+代码 | Bloom Filter实现及应用

什么是布隆过滤器&#xff08;Bloom Filter&#xff09;&#xff1f; 布隆过滤器是一种空间复杂度很低的概率型数据结构&#xff0c;用于判断一个元素是否在一个集合中。它有两种可能的返回结果&#xff1a; 元素可能在集合中&#xff1a;这可能是一个真阳性&#xff08;确实…

使用Variadic Templates(可变参数模板)实现printf

最近学习了C2.0版本的一些新的特性&#xff0c;利用Variadic Templates&#xff08;可变参数模板&#xff09;实现printf函数。 语言环境 Dev-C 5.11 并需要自己的环境是支持C11的&#xff0c;例如:Dev-C 5.11可以通过以下步骤进行修改&#xff1a; 源码 #include <io…

编程与AI:保持竞争力的策略

人工智能时代&#xff0c;程序员如何保持核心竞争力&#xff1f; 随着AIGC&#xff08;如chatgpt、midjourney、claude等&#xff09;大语言模型接二连三的涌现&#xff0c;AI辅助编程工具日益普及&#xff0c;程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工…

顶刊、顶会、水刊的论文读哪个,如何做一个称职的学术裁缝_来自B站水论文的程序猿

系列文章目录 文章目录 系列文章目录一、顶刊、顶会要看二、水刊&#xff1a;SCI4区&#xff0c;部分3区 看水刊&#xff0c;发现新大陆1、数据集2、性能3、复现 三、如何做一个称职的学术裁缝1、缝合2、编故事 一、顶刊、顶会要看 通过顶刊、顶会知道好的东西长什么样子即可&…

【从零开始一步步学习VSOA开发】创建VSOA的client端

创建VSOA的client端 创建工程 参考 hellovsoa 工程&#xff0c;创建 client 工程&#xff0c;工程源码修改如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/select.h> #include "vsoa_client.h&q…

全球情绪检测与识别市场规划预测:2030年市场规模将接近3166亿元,未来六年CAGR为22.6%

一、引言 随着人工智能和机器学习技术的飞速发展&#xff0c;情绪检测与识别在多个领域的应用日益广泛&#xff0c;其市场潜力日益凸显。本文旨在探索情绪检测与识别行业的发展趋势、潜在商机及其未来展望。 二、市场趋势 全球情绪检测与识别市场的增长主要受人工智能和机器学…

【mathtype】word中如何输入4×4的矩阵,甚至阶数更多

在写论文或者使用word操作的时候&#xff0c;我们可能会使用矩阵插入我们所写的word中&#xff0c;今天小编就分享一下如何在word中输入矩阵。首先&#xff0c;我们word中需要安装mathtype的插件。 ①打开word&#xff0c;鼠标点击mathtype&#xff0c;再点击内联 ② 出现以下…

C++学习记录

C学习 1.const,mutable,初始化列表,this指针2.static使用类友元作用友元全局函数友元类友元成员函数 运算符重载左移运算符 <<下标运算符赋值运算符括号运算符一元运算符 自动类型转换隐式类型转换 转换函数 继承继承方式构造函数继承名字遮蔽和类作用域名字覆盖类作用域…

大气能见度测量仪的功能优势:安心守护

大气能见度是衡量空气质量与交通安全的重要指标之一&#xff0c;它直接关系到人们的出行安全、航空航行的顺畅以及环境监测的准确性。为此&#xff0c;大气能见度测量仪应运而生&#xff0c;以其独特的功能优势&#xff0c;成为现代气象观测与交通管理中不可或缺的高科技设备。…

数据资源:机遇与挑战并存的新时代

数据资源&#xff1a;机遇与挑战并存的新时代 2023年全国数据生产总量达到32.85泽字节&#xff08;ZB&#xff09;&#xff0c;同比增长22.44%&#xff0c;数据生产规模持续扩大&#xff0c;其中非结构数据增长尤为突出&#xff0c;这得益于5G、AI技术的发展和智能设备的应用。…

ME31K-创建合同

ME31K创建合同 合同分为&#xff1a;数量合同和价值合同 CMK代表数量合同。CWK代表价值合同。 输入对应数量或价值后&#xff0c;点击保存。 点击保存后。系统会带出一个合同号。 可以引用这个合同号&#xff0c;去创建采购订单或者计划协议。

【从零开始一步步学习VSOA开发】创建VSOA的server端

创建VSOA的server端 创建工程 参考 hellovsoa 工程&#xff0c;创建 server 工程&#xff0c;工程源码修改如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <netinet/in.h> #include <arpa/inet.h> #…

zabbix7.0TLS-02-客户端zabbix-agent部署和配置

文章目录 1 介绍2 工作模式2 部署2.1 RPM 包方式部署 3 配置3.1 配置文件位置3.2 主配置文件布局3.2.1 常规参数3.2.2 高级参数 3.3 部分配置参数详解3.3.1 通用参数3.3.2 被动模式参数3.3.3 主动模式参数 4 测试4.1 Agent 本机测试4.2 在服务端 Zabbix-server 测试和 Agent 的…

Opengl 安装

安装Cmake&#xff1a;Download CMake 安装GLFW&#xff08;source package&#xff09;:An OpenGL library | GLFW glad.dav1d.de 下载glad&#xff0c;选择version3.3 Core --Generate生成。然后点击glad.zip文件下载。 在cmake配置glfw&#xff1a;config-generate 构建GLF…

场外个股期权也可以随时平仓?场外期权行权是什么时候?

今天带你了解场外个股期权也可以随时平仓&#xff1f;场外期权行权是什么时候&#xff1f;A股场外个股有期权&#xff0c;主要对应的标的是沪深交易所上市的个股&#xff0c;除了st、次新股等受到限制&#xff0c;90%的股票都可以购买。 场外个股期权是否可以随时平仓 场外个…