KICKSTART无人值守安装服务-学艺不精-请各位大神多多指正

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KICKSTART无人值守安装服务-学艺不精-请各位大神多多指正相关的知识,希望对你有一定的参考价值。

 Linux系统批量自动安装

实现原理

将手动安装的所有详细步骤记录到一个文件中,然后有一种软件通过读取这个文件就可以实现自动化安装系统;

工具

这个工具叫做kickstartkickstartRedHat公司开源的工具,所以对Centos兼容性最好,注意kickstart是一个项目的名称,没有这个软件;

cobbler

cobbler是对kickstart的所有组件的封装,本质上就是个网页版本的kickstart

 kickstart的原理及组件

什么是PXE

PXE,全名Pre-boot Execution Environment,预启动执行环境;

       通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;

       PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议;

原理图:

技术分享图片技术分享图片

环境准备:

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[[email protected] ~]# uname -r 3.10.0-693.el7.x86_64
[[email protected] ~]# getenforce Disabled
[[email protected] ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[[email protected] ~]# hostname -I
10.0.0.201 172.16.1.201

安装DHCP服务

安装DHCP

yum -y install dhcp

配置DHCP

cat >>/etc/dhcp/dhcpd.conf<<EOF
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.201;
filename "/pxelinux.0";
}
EOF

启动dhcp查看日志

[[email protected] ~]# systemctl start dhcpd
[[email protected] ~]# systemctl status dhcpd
tailf /var/log/messages

那些年我们踩过的坑(1

新建空白虚拟机,建完后做快照

技术分享图片技术分享图片


安装TFTP服务

1     安装

yum -y install tftp—server

2     启动

systemctl start tftp.socket

那些年我们踩过的坑(2

技术分享图片

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

[[email protected] ~]# cd /var/lib/tftpboot/ # TFTP服务的根目录
[[email protected] tftpboot]# ls
[[email protected] tftpboot]#
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

那些年我们踩过的坑(3

技术分享图片

首先排除最简单故障原因:selinux是否关闭,防火墙是否关闭

上面的错误是因为pxelinux.0这个小系统的配置文件(default)不存在,或者文件名不对;

那些年我们踩过的坑(4

技术分享图片

如何找到这个配置文件

第一步:挂载镜像

第二步:

mkdir -p /var/www/html/CentOS7
mount /dev/cdrom /var/www/html/CentOS

第三步:从镜像中找到相关的配置文件

cp -a /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

安装HTTP服务

作用1:提供自动应答文件下载

作用2:提供安装系统所需的所有rpm包下载

yum -y install httpd
systemctl start httpd.service

检查步骤


http://10.0.0.201/CentOS7/
curl http://172.16.1.201/CentOS7/



编辑default文件


append initrd=initrd.img method=http://172.16.1.201/CentOS7/    ----第一种方法
append initrd=initrd.img inst.repo=http://172.16.1.201/CentOS7/ ----第二种方法


编写KS文件(包含安装的所有步骤)

方法1:新装CentOS系统/root/anaconda-ks.cfg

方法2:图形CentOS系统提供的图形工具

方法3:了解ks文件语法,编写ks文件。(推荐)

 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("密码"))'


开始自动安装系统,enjoy!

附:KS配置文件

 default配置

default ks
prompt 0
 
label ks
  kernel vmlinuz
  append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1

Centos7-ks.cfg

# Kickstart Configurator for CentOS 7 by MsyLinux
install
url --url="http://172.16.1.201/CentOS7/"
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
network  --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.202 --nameserver=223.5.5.5 --netmask=255.255.255.0 --activate
network  --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 --activate
network  --hostname=Cobbler
#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw  --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/
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
@^minimal
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
wget
vim
bash-completion
%end
 
%post
systemctl disable postfix.service
%end

技术分享图片

下方博客是老男孩老师的博客,里边详细的讲解了kickstart在Centos6上的安装过程及实践过程,如有需要基于Centos6环境配置kickstart的小伙伴可以按照老师的博客进行安装;

老男孩-Centos6环境kickstart配置


以上是关于KICKSTART无人值守安装服务-学艺不精-请各位大神多多指正的主要内容,如果未能解决你的问题,请参考以下文章

PXE+Kickstart 无人值守安装服务

PXE+Kickstart无人值守安装系统

PXE实现无人值守安装

linux系统服务-PXE批量部署kickstart无人值守

PXE网络装机实现kickstart无人值守装机

PXE+kickstart 无人值守安装操作系统