其他综合-Kickstart无人值守安装系统CentOS 7
Kickstart无人值守安装系统CentOS 7
1、概述
1.1 关于PXE
Preboot Execution Environment翻译过来就是预启动执行环境:简称PXE;传统安装操作系统的方法是CD/ROM或U盘引导,而PXE技术解决的是从网络引导安装系统,当然PXE技术不是什么新技术了,是Intel和Microsoft在1998年定义的更大PC98规范的一部分。有关PXE规范的详细文档
1.2 关于pxe引导相关角色说明
PXE作用:引导装机Kickstart作用:将安装系统的过程中通过ks.cfg文件中的配置信息,实现自动安装配置达到无人值守自动安装;TFTP作用:支持PXE 引导的网卡中从tftp服务器端下载pxelinux.0文件、vmlinuz、initrd.img等内核引导文件;DHCP作用:PXE引导过程中获首先获取IP地址,并提供pxelinux.0文件位置;HTTP作用:用于下载ks.cfg以及系统镜像文件
通用的无人值守做法如下:
通过一台没有系统的裸机网卡支持pxe协议,开机后从
dhcp服务器获取ip和pxelinux.0文件并从tftp服务器上加载相关内核引导文件;同时下载kickstart的cfg配置文件,指定系统镜像文件位置加载安装,从而实现无人值守安装!

1.3 环境准备说明
本次测试环境说明:
PXE服务器:CentOS 7.6基于VMware的虚拟机,IP:10.0.0.61,172.16.1.61- 外网
IP段:10.0.0.0(可上网) 内网IP段:172.16.1.0(局域网)
配置服务及安装软件包如下:
DHCP #获取IP地址,并提供pxelinux.0文件位置
TFTP #支持PXE下载内核引导文件
HTTP #下载ks.cfg以及系统镜像文件
Syslinux #提供引导文件
以上所需要的软件包均通过
yum安装
firewall和selinux临时关闭与永久关闭:
##关闭firewalld
systemctl stop firewalld
##永久关闭firewalld
systemctl disable firewalld
##检查结果
systemctl status firewalld
##临时关闭selinux
setenforce 0
##永久关闭selinux
sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/sysconfig/selinux
##检查结果
grep '^SELINUX=' /etc/sysconfig/selinux
若是生产线,请开放
UDP:67、68、69TCP:80端口。
ISO 镜像:
CentOS 7.6
2、准备
2.1 安装所需要的软件包
##yum安装
yum install dhcp tftp tftp-server syslinux httpd -y
2.2 制作安装源
1、确认
CentOS 7.6ISO镜像文件已连接

2、挂载本地光盘制作安装源
##创建挂载点
mkdir –p /media/cdrom
##挂载CentOS7光盘
mount /dev/cdrom /media/cdrom
mkdir -p /var/www/html/centos/7/x86_64
##绑定挂载到http默认目录下
mount --bind /media/cdrom /var/www/html/centos/7/x86_64
2.3 配置kickstart的 ks.cfg文件
##创建ks目录
mkdir /var/www/html/ks
## 查看/var/www/html/ks/目录下ks.cfg文件内容
cat /var/www/html/ks/ks.cfg
#Kickstart Configurator for CentOS 7 by Mine
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
#cdrom
# Install OS instead of upgrade
install
# Use network installation
url --url=http://10.0.0.61/centos/7/x86_64
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
#ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8
# Network information
#network --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.100 --nameserver=223.5.5.5 --netmask=255.255.255.0 --activate
#network --bootproto=static --device=eth1 --ip=172.16.1.100 --netmask=255.255.255.0 --activate
network --bootproto=dhcp --device=eth0 --onboot=off --ipv6=auto
network --hostname=oldboy
# Root password
rootpw --iscrypted $1$oldboy$Npg9Pt9k98Mlg0ZeqHAuN1
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
%packages
@^minimal
@core
kexec-tools
vim
wget
httpd
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
selinux --disabled
reboot
3、配置
3.1 HTTPD服务
启动Httpd服务,并设置开机自启动与查看
##启动httpd服务
systemctl start httpd
##开机自启动
systemctl enable httpd
##查看有无端口
netstat -lntup|grep httpd
3.2 DHCP服务
1、配置dhcp服务
dhcp配置文件在/etc/dhcp/目录下,默认的配置文件没有,但我们可以在帮助文件中找到模板示例文件加以修改,模板示例路径为/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example这里呢,为节省时间,我们直接写入即可。
cat >>/etc/dhcp/dhcpd.conf<<EOF
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 10.0.0.61;
filename "/pxelinux.0";
}
EOF
##查看结果
cat /etc/dhcp/dhcpd.conf
2、启动,设置开机自启动与查看
##启动dhcp服务
systemctl start dhcpd
##开机自启动
systemctl enable dhcpd
##查看有无端口
netstat -lntup|grep dhcpd
3.3 TFTP服务
安装好
tftp-server软件包后 默认的数据根目录是/var/lib/tftpboot/无须修改,只需要复制一些软件引导文件进来即可1、相关文件准备
##引导文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#内核文件
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot
#引导菜单
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot
#制件引导默认文件
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cat >/var/lib/tftpboot/pxelinux.cfg/default <<EOF
default menu.c32
prompt 5
timeout 30
MENU TITLE CentOS 7 PXE Menu
LABEL linux
MENU LABEL Install CentOS 7 x86_64
KERNEL vmlinuz
#APPEND initrd=initrd.img inst.repo=http://10.0.0.61/centos/7/x86_64 ks=http://10.0.0.61/ks/ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth0
#APPEND initrd=initrd.img inst.repo=http://10.0.0.61/centos/7/x86_64 ks=http://10.0.0.61/ks/ks.cfg
APPEND initrd=initrd.img inst.repo=http://10.0.0.61/centos/7/x86_64 ks=http://10.0.0.61/ks/ks.cfg net.ifnames=0 biosdevname=0
EOF
##查看结果
cat /var/lib/tftpboot/pxelinux.cfg/default
2、启动配置开机自启
##开机自启动
systemctl enable tftp
##启动tftp
systemctl start tftp
3、Tftp测试
/var/lib/tftpboot/目录文件结构
##查看结构
tree -L 2 /var/lib/tftpboot/
/var/lib/tftpboot/
├── chain.c32
├── initrd.img
├── mboot.c32
├── memdisk
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz
##测试tftp
[root@oldboyedu ~]# cd /tmp/
[root@oldboyedu /tmp]# pwd;ls
/tmp
[root@oldboyedu /tmp]# tftp 10.0.0.61
tftp> get vmlinuz
tftp> quit
[root@oldboyedu /tmp]# ls
vmlinuz
4、测试
客服端配置
1)、选择自定义配置
在
Vmware软件中,单击左上角的文件,在下拉菜单中选择新建虚拟机。

在弹出的
新建虚拟机向导选项卡里面,选择自定义(高级)

2)、 选择虚拟机硬件兼容性
硬件兼容性一项中,选择最新的,默认即可

3)、安装客服机操作系统
我们后面要自己定制化安装
CentOS系统,所以此处选择稍后安装操作系统

4)、选择客服机操作系统
此处
客服机操作系统选择Linux,版本选择CentOS 64位

5)、命名虚拟机
虚拟机名称命名方法:IP+用途,位置:事先规划好的位置即可

6)、处理器配置
我们目的是测试用的,所以默认即可

7)、内存配置
内存大小,我们给2GB即可

8)、选择网络类型
为了方便学习,
网络类型这项,必须选择使用网络地址转换(NAT)

9)、选择I/O控制类型
这一项,我们默认即可

10)、选择磁盘类型
这一项,我们也默认即可

11)、选择磁盘
磁盘这一项,选择创建新虚拟机磁盘,不要选择其他的。

12)、指定磁盘容量
“磁盘容量
默认20G即可

13)、指定磁盘文件
保持默认即可

14)、完成创建虚拟机
此时,一台新虚拟机的硬件就全部配置完毕了,检查确认无误后,点击
完成按钮,然后直接开启即可

5、检验
直接开启虚拟机,等待几秒即可
DHCP ok

PXE ok

加net.ifnames=0 biosdevname=0网卡名是改成eth0或eth1

最后测试如下


6、附录
6.1 ks文件生成的三种方式
- 方法1
每安装好一台Centos机器,Centos安装程序都会创建一个kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位于/root/anaconda-ks.cfg)
- 方法2
Centos提供了一个图形化的kickstart配置工具。在任何一个安装好的Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。kickstart配置工具命令为redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5)。网上有很多用CentOS桌面版生成ks文件的文章,如果有现成的系统就没什么可说。但没有现成的,也没有必要去用桌面版,命令行也很简单。
- 方法3
读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。
6.2 ks文件配置参数说明
- 命令段:键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项
- 软件包段:
%packages
@groupname:指定安装的包组
package_name:指定安装的包
-package_name:指定不安装的包
在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系。
- 脚本段(可选)
%pre:安装系统前执行的命令或脚本(由于只依赖于启动镜像,支持的命令很少)
%post:安装系统后执行的命令或脚本(基本支持所有命令)
详解如下表所示:
| 关键字 | 含义 |
|---|---|
| install | 告知安装程序,这是一次全新安装,而不是升级upgrade。 |
| url --url=" " | 通过FTP或HTTP从远程服务器上的安装树中安装。 |
| nfs | 从指定的NFS服务器安装 |
| text | 使用文本模式安装。 |
| lang | 设置在安装过程中使用的语言以及系统的缺省语言 |
| keyboard | 设置系统键盘类型。 |
| zerombr | 清除mbr引导信息。 |
| bootloader | 系统引导相关配置。 |
| --location= | 指定引导记录被写入的位置。 |
| --driveorder | 指定在BIOS引导顺序中居首的驱动器 |
| --append= | 指定内核参数.要指定多个参数,使用空格分隔它们。 |
| network | 为通过网络的kickstart安装以及所安装的系统配置联网信息。 |
| static | 方法要求在kickstart文件里输入所有的网络信息。 |
| --ip= | 要安装的机器的IP地址 |
| --gateway= | IP地址格式的默认网关. |
| --netmask= | 安装的系统的子网掩码 |
| --hostname= | 安装的系统的主机名 |
| --onboot= | 是否在引导时启用该设备 |
| --noipv6= | 禁用此设备的IPv6 |
| --nameserver= | 配置dns解析 |
| timezone | 设置系统时区。 |
| authconfig | 系统认证信息。 |
| rootpw | root密码 |
| clearpart | 清空分区。 |
| part | 磁盘分区。 |
| --fstype= | 为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat |
| --asprimary | 强迫把分区分配为主分区,否则提示分区失败。 |
| --size= | 以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。 |
| --grow | 告诉分区使用所有可用空间(若有),或使用设置的最大值。 |
| firstboot | 负责协助配置redhat一些重要的信息。 |
| selinux | 关闭selinux。 |
| firewall | 关闭防火墙。 |
| logging | 设置日志级别。 |
| reboot | 设定安装完成后重启,此选项必须存在 |
6.3 DHCP配置文件说明
range 10.0.0.100 10.0.0.199; # 可分配的起始IP-结束IP
option subnet-mask 255.255.255.0; # 设定netmask
default-lease-time 21600; # 设置默认的IP租用期限
max-lease-time 43200; # 设置最大的IP租用期限
next-server 10.0.0.61; # 告知客户端TFTP服务器的ip
filename "/pxelinux.0"; # 告知客户端从TFTP根目录下载pxelinux.0文件
6.4 生成密码方法
[root@m01 ~]# openssl passwd -1 -salt 'oldboy' '123456'
$1$oldboy$Npg9Pt9k98Mlg0ZeqHAuN1
其他综合-Kickstart无人值守安装系统CentOS 7的更多相关文章
- 其他综合-Cobbler无人值守安装系统 CentOS 7
Cobbler 无人值守安装系统 CentOS 7 1.实验描述 1.1 概述 作为运维,在公司经常遇到一些机械性重复工作要做,例如:为新机器装系统,一台两台机器装系统,可以用光盘.U盘等介质安装,1 ...
- 使用PXE+Kickstart无人值守安装系统
PXE预启动执行环境(即Preboot execute environment) 是一种能够让计算机通过网络启动的引导方式,只要网卡支持PXE协议即可使用,用于在无人值守安装系统服务中引导客户机安装服 ...
- KickStart 无人值守安装系统
一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...
- PXE+Kickstart无人值守安装系统re
PXE(Preboot Excute Environment)预启动执行环境,可以让计算机通过网络启动系统,主要用于无人值守安装系统中引导客户端主机安装Linux操作系统. 由于之前有过使用cobbl ...
- Kickstart无人值守安装系统
1.导言 已经或未来将从事Linux系统运维工作的读者,经常会遇到一些机器式的重复的共走,例如:有时间同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. q 光盘安装系统===> ...
- [ 总结 ] Linux kickstart 无人值守安装系统构建过程
环境:Vmare + Linux虚拟机 注意:网卡桥接
- [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统
一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...
- CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转
一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...
- CentOS 6.6下PXE+Kickstart无人值守安装操作系统
一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...
随机推荐
- Java学习笔记(3)--- 内部类,基本数据类型
1.内部类(nested classes): a.定义: 内部类其实就是一个类中还包含着另外一个类,如同一个人(外部类)是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏: ...
- show()和隐藏hide() slideDown()和 slideUp() fadeIn()和fadeOut()
1==>显示show()和隐藏hide() 是一组动画 与切换toggle()$("div").show():当不传递参数时,没有动画效果,它将某个元素瞬间显示出来 $(&q ...
- 2015年蓝桥杯B组C/C++决赛题解
2015年第六届蓝桥杯B组C/C++决赛题解 点击查看2015年第六届蓝桥杯B组C/C++国赛题目(不含答案) 1.积分之迷 三重循环 枚举A,B,C的值,如果满足两个条件:3个A + 7个B ...
- Python的运用基础3
1. 简述执行Python程序的两种方式以及他们的优缺点? 交互式(jupyter) 优点:运行一句执行一句 缺点:关闭即消失 ==例如== win10系统cmd窗口 命令行式(Pycharm) 优点 ...
- c# WF 第10节 textbox 控件
本节内容: 1:textbox 在哪里 2:textbox 的属性 1:textbox 在哪里 2:textbox 的属性 3:实例 实现如下: 步骤1 :7个label 2个textbox 步骤2 ...
- LeetCode 回文串问题
5. Longest Palindromic Substring 647. Palindromic Substrings 解法一:从中心一点向两边扩展,需要考虑中心为一点,中心为两点. 解法二:马拉车 ...
- day80_10_29git冲突解决与短信服务redis
一.开发中的操作. 在项目开发中,在工作区进行开发,开发结束后提交到本地版本库. 再拉取远程仓库,具体如下: """ 1.开发前,拉一次远程仓库 2.工作区进行开发 3. ...
- Python文件读取中:f.seek(0)和f.seek(0,0)有什么区别
file.seek()方法标准格式是:seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始 ...
- Note | PyTorch1.2 + CUDA10.0 + cuDNN7.6 + Anaconda3配置
目标: 在2080Ti GPU上,运行PyTorch1.2 GPU版本. 经过确认,PyTorch1.2可以搭配CUDA10.0,而CUDA10.0搭配cuDNN7.6(官网下载页面可以直接看到). ...
- 【08月20日】A股滚动市净率PB历史新低排名
2010年01月01日 到 2019年08月20日 之间,滚动市净率历史新低排名. 上市三年以上的公司,2019年08月20日市净率在30以下的公司. 来源:A股滚动市净率(PB)历史新低排名. 1 ...