什么是Kickstart Installations?
Kickstart Installations(启动安装),实现无人值守自动化安装
Kickstart files(启动文件),安装前准备好,可用来自动执行安装。它可以保存在单个服务器系统上,支持一对多:即单个文件在多台计算机上安装CentOS
所有 Kickstart scripts (启动脚本)和日志也都会存储在目录中
启动安装的过程
启动安装的方法:DVD,NFS,FTP,HTTP/HTTPS, Hard drive (硬盘)
过程:1、创建启动文件
2、使 Kickstart files在可移动媒体、硬盘驱动器或网络位置上可用
3、创建启动介质(安装源),用于开始安装
4、使安装源可用
5、启动Kickstart Installations
-
创建启动文件
如果有安装好的CentOS,在 /root 目录下就会生成一个 anaconda-ks.cfg 文件。
PS:# 为需root用户执行;$ 为任意用户执行,以下均以此标准
一:可以按照对CentOS的要求通过 ios 镜像先装一下,这样就可以拿到一份不怎么需要修改的 Kickstart 配置文件
# cd /root 》 ls 》 anaconda-ks.cfg
二:使用 Kickstart Configuration Tool 来创建和修改 Kickstart 配置文件
# yum install system-config-kickstart # 安装K...C...Tool # system-config-kickstart # 启动K...C...Tool
验证 Kickstart 配置文件
使用 ksvalidator 验证 Kickstart 的配置文件语法
# yum install pykickstart
$ ksvalidator /path/to/kickstart.ks # 路径为kcikstart文件的路径
Kickstart 配置文件参考
文件(ks.cfg)保存一下,后面会用到
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext 123456
# Use network installation
url --url="http://192.168.1.101/CentOS/7/repo"
# System language
lang en_US
# 用户协议
eula --agreed
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
user --groups=wheel --name=admin --password=$6$dFOvxfykHlSQW0Al$lYq0jhdvX0MzJsfF5poagu2tRGdb9
//xrzTIvfF6JKE1q2yflO19nGZf/A77/Pyp0vIjmk7f31gFmrtrypxBa/
--iscrypted --gecos="admin"
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --fstype="xfs" --size=2048
part / --fstype="xfs" --grow --size=1
%packages
...
...
...
%end
创建启动介质
Kickstart files必须放置在以下位置之一
-
在可移动介质上,如 DVD 或 USB 闪存驱动器
PS:将完整iso刻录到DVD上,并设置计算机为从该磁盘启动
-
连接到安装系统的硬盘上
PS:将完整iso放在 硬盘/USB 上安装系统
-
在从安装系统可接触到的网络共享上
PS:将iso镜像或安装树复制到可从安装系统访问的网络上,通过网络进行安装
使Kickstart files可用
这里选择基于网络的方法:PXE 网络服务器启动,从网络共享下载Kickstart files,远程存储库下载文件中指定的软件包
搭建yum源
# yum install httpd
# systemctl enable httpd
# systemctl start httpd
# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system #选择性执行
# systemctl status tftp
# mkdir -p /var/www/html/CentOS/7/repo #用来放iso
# mount -r /dev/sr0 /var/www/html/CentOS/7/repo #/dev/cdrom你的iso路径
这里建议使用启动连接的iso挂载,不然会有各种问题
搭建tftp server
# yum install tftp-server # yum install tftp # yum install xinetd # vi /etc/xinetd.d/tftp
# service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no #将此值改为no,表明开启此服务 per_source = 11 cps = 100 2 flags = IPv4 } # systemctl enable tftp # systemctl start tftp
# systemctl status tftp# 关闭防火墙 # firewall-cmd --add-service=tftp # 关闭SElinux # vi /etc/selinux/config # 将SELINUX=enforcing改为SELINUX=disabled # 重启SElinux
配置DHCP server
网络启动没地方配置ip,只能自动获取
# yum install dhcp
#vi /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 192.168.48.0 netmask 255.255.255.0 {
range 192.168.48.10 192.168.48.100;
option routers 192.168.48.1;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.48.128;
# next-server 192.168.48.2;
filename "pxelinux.0";
}
}
~
# systemctl start dhcpd # systemctl enable dhcpd # systemctl status dhcpd #查看状态
配置 PXE 启动文件
# yum install syslinux # tftp 默认目录为 /var/lib/tftpboot # mkdir -p /var/lib/tftpboot/pxelinux # cp /path_to/syslinux/{pxelinux.0, vesamenu.c32 , menu.c32} /var/lib/tftpboot/pxelinux # 注:/path_to 路径
创建启动菜单
# mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
# vi /var/lib/tftpboot/pxelinux/pxelinux.cfg/default
default vesamenu.c32
timeout 100
label 1
menu label ^1)Install CentOS7 x86_64(KickStart)
kernel images/CentOS/7/vmlinuz
append initrd=images/CentOS/7/initrd.img ks=http://192.168.1.101/CentOS/7/ks.cfg
label 2
menu label ^2)Install CentOS7 x86_64(Manual)
kernel images/CentOS/7/vmlinuz
append initrd=images/CentOS/7/initrd.img inst.repo=http://192.168.1.101/CentOS/7/repo
CentOS Kickstart files
使安装源可用,默认启动菜单指定了内核文件,没有就无法正常启动。
# mkdir -p /var/lib/tftpboot/pxelinux/CentOS/7/
# cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/CentOS/7/
PS:/path_to_x86_64_images:如果挂在路径不知道,通过 find / -name "pxeboot" 查找到pxeboot路径
启动Kickstart Installations
设置BIOS启动为PXE启动,通常情况下按“F12”
来源:oschina
链接:https://my.oschina.net/chulan/blog/4277479