kickstart介绍与部署

Posted yjiu1990

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kickstart介绍与部署相关的知识,希望对你有一定的参考价值。

linux批量自动安装部署

实现原理:将手动安装的所有详细步骤记录到一个文件中,然后通过一种软件读取这个文件就可以实现自动安装部署。这一个软件工具叫kickstart。
kickstart是RedHat公司开源软件的工具,对centos兼容性最好,kickstart是一个项目名称,没有这一个软件。
cobbler是对kickstart的所有组件的封装,本质上就是网页版本的kickstart

kickstart工作原理及组件

kickstart组件之PXE
PXE(Pre-bootExecution Environment),预启动执行环境,通过网络接口启动计算机,不依赖本地存储设备或本地已安装的系统
PXE客户端会调用网际协议IP、用户数据报协议,动态主机设定协议(DHCP),小型文件传输协议(TFTP)等网络协议

技术图片

KS文件语法

ks文件组成
命令段
包组段  以%packages开头,以%end结束
脚本段  以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本
        以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本

kickstart文件语法检查
yum install pykickstart
ksvalidator /var/www/html/ks_config/CentOS-7-ks.cfg 

请记住这个验证工具有其局限性。Kickstart 文件可能会很复杂;ksvalidator 可保证其语法正确,且该文件不包含淘汰的选项,但它无法保证安装会成功。它也不会尝试验证 Kickstart 文件的 %pre、%post 和 %packages 部分。

root加密密码生成
python -c ‘import crypt; print(crypt.crypt("密码"))‘

PXE+kistart部署批量安装系统

第一个里程:环境准备,基础优化
systemctl stop firewalld.service
setenforce 0
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
第二个里程:安装DHCP服务并配置DHCP配置文件
yum -y install dhcp
[[email protected] /]# cat /etc/dhcp/dhcpd.conf 

# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.100 172.16.1.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 172.16.1.202;
filename "/pxelinux.0";
}
第三个里程:启动DHCP服务,通过抓包工具查看DHCP获取过程
启动服务
systemctl start dhcpd
查看服务日志
tail -F /var/log/messages
安装linux下的抓包工具
yum -y install wireshark
tshark -ni 网卡名称
第四个里程:安装http服务,并将光盘进行挂载
yum -y install httpd
mkdir -p /var/www/html/CentOS7
mount /dev/cdrom /var/www/html/CentOS7
第四个里程:安装TFTP服务,并启动
yum -y install tftp-server
systemctl start tftp.socket
第五个里程:将光盘中的内容拷贝到TFPT根目录中
查看tftp根目录在哪
[[email protected] /]# rpm -ql tftp-server 
/var/lib/tftpboot
cp /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
第六个里程:安装syslinux,并将pexlinu.0配置文件复制到tftp根目中
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
第七个里程:编辑default文件
[[email protected] /]# cat /var/lib/tftpboot/pxelinux.cfg/default 
default ks
prompt 0
label ks
  kernel vmlinuz
  append initrd=initrd.img ks=http://172.16.1.202/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
第八个里程:编辑ks文件
mkdir -p /var/www/html/kc_config
[[email protected] /]# cat  /var/www/html/ks_config/CentOS7-ks.cfg 
# Kickstart Configurator for CentOS 7 by yao zhang
#命令段
install
url --url="http://172.16.1.202/CentOS7/"
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#配置静态IP地址

network  --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.203 --n
ameserver=223.5.5.5 --netmask=255.255.255.0 --activatenetwork  --bootproto=static --device=eth1 --ip=172.16.1.203 --netmask=255.255.255.
0 --activatenetwork  --hostname=Cobbler

#配置动态IP地址
#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
#设置密码,密文方式,生成密文方式:python -c ‘import crypt; print(crypt.crypt("密码"))‘

rootpw  --iscrypted $6$qs/lWQujVOmfz0L.$p6CfsyidQc.frLTXIIB412HNKhgriwjyz12y5HBufZ
qfa.ior8OrUpTeuAO.UfjhgxkZAnZMMkT.pVcGmTg6r.clearpart --all --initlabel
#开始发区
part /boot --fstype xfs --size 1024
part swap --size 1024
part / --fstype xfs --size 1 --grow
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot

#包组段:以%packages开头,以%end结束
%packages
@^minimal
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet 
wget 
vim 
bash-completion
%end

#脚本段:以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本
#       以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本
%post
systemctl disable postfix.service
%end
第九个里程:正式开始自动安装系统
ps:系统内存不能小于2G,否则会报硬盘空间不足

技术图片

kickstart常见问题1

技术图片

首先排除最简单故障原因:selinux是否关闭,防火墙是否关闭
上面的错误是因为pxelinux.0这个小系统的配置文件(default)不存在,或者文件名不对

kickstart常见问题2

技术图片

上面报错是在TFTP服务的根目录找不到启动文件pxelinux.0

以上是关于kickstart介绍与部署的主要内容,如果未能解决你的问题,请参考以下文章

部署kickstart无人值守

kickstart自动部署centos

Centos7 实战Kickstart 批量系统部署

如何不费吹灰之力的装机?部署PXE实现Kickstart无人值守安装 — 装机界的最强王者

自动化批量部署Linux系统(Kickstart+DHCP+NFS(http)+TFTP+PXE)

pxe+kickstart部署多个版本的Linux操作系统(下)---实践篇