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介绍与部署的主要内容,如果未能解决你的问题,请参考以下文章
如何不费吹灰之力的装机?部署PXE实现Kickstart无人值守安装 — 装机界的最强王者