KICKSTART无人值守安装服务-学艺不精-请各位大神多多指正
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KICKSTART无人值守安装服务-学艺不精-请各位大神多多指正相关的知识,希望对你有一定的参考价值。
Linux系统批量自动安装
实现原理
将手动安装的所有详细步骤记录到一个文件中,然后有一种软件通过读取这个文件就可以实现自动化安装系统;
工具
这个工具叫做kickstart,kickstart是RedHat公司开源的工具,所以对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的小伙伴可以按照老师的博客进行安装;
以上是关于KICKSTART无人值守安装服务-学艺不精-请各位大神多多指正的主要内容,如果未能解决你的问题,请参考以下文章