Linux 应用Kickstart部署系统
Kickstart 是一种无人值守系统安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件,所以只要文件内包含了安装过程中需要人工填写的所有参数,那么就完全不需要运维人员的干预,可自动完成安装工作。
由于当前的客户端主机并没有完整的操作系统,也就不能完成FTP协议的验证了,所以需要使用TFTP协议帮助客户端获取引导及驱动文件.vsftpd服务程序用于将完整的系统安装镜像通过网络传输给客户端.当然,只要能将系统安装镜像成功传输给客户端即可,因此也可以使用httpd来替代vsftpd服务程序.
配置DHCP服务程序
配置DHCP服务的目的是为了给局域网内暂时没有IP地址的机器分配一个IP地址,同时传输引导配置文件pxelinux.0,需要注意的是,应该开启DHCP的BOOTP功能,这样当用户获取到IP地址后,会主动请求获取引导驱动文件,从而进入下一步操作.
1.首先通过Yum仓库,安装DHCP服务程序.
[root@localhost ~]# yum install -y dhcp
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package 12:dhcp-4.2.5-68.el7.x86_64 already installed and latest version
Nothing to do
2.编辑DHCP主配置文件,写入以下内容,开启BOOTP功能.
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
[root@localhost ~]# cat /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.1.0 netmask 255.255.255.0 { #指明分配网段
range 192.168.1.100 192.168.1.200; #分配的网段(100-200)
next-server 192.168.1.10; #指定TFTP服务器的地址
filename "pxelinux.0"; #指定PXE引导程序的文件名
default-lease-time 21600;
max-lease-time 4320;
}
3.启动DHCP服务,并设置开机自启动
[root@localhost ~]# systemctl restart dhcpd
[root@localhost ~]# systemctl enable dhcpd
配置TFTP服务程序
TFTP作为一种基于UDP协议的简单文件传输协议,不需要用户认证即可获取到用户所需的文件资源,因此接下来配置TFTP服务程序,为客户主机提供引导及驱动文件,当客户端有了基本的驱动程序之后,在通过VSFTP服务程序将完整的光盘镜像文件传输过去.
1.首先通过Yum仓库,安装TFTP服务程序.
[root@localhost ~]# yum install -y tftp tftp-server xinetd
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package tftp-5.2-22.el7.x86_64 already installed and latest version
Package tftp-server-5.2-22.el7.x86_64 already installed and latest version
Nothing to do
2.TFTP是由xinetd服务守护的,所以要开启TFTP只需要修改xinetd服务的几个参数即可
[root@localhost ~]# vim /etc/xinetd.d/tftp
[root@localhost ~]# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot #设置默认工作目录
disable = no #设置ftp开机自启动
per_source = 11
cps = 100 2
flags = IPv4
}
3.重启xinetd服务,并设置为开机自启动
[root@localhost ~]# systemctl restart xinetd
[root@localhost ~]# systemctl enable xinetd
配置SYSLinux服务程序
SYSLinux是一个用于提供引导加载的服务程序,与其说SYSLinux是一个服务程序,不如说我们更需要里面的引导文件,在安装SYSLinux服务程序软件包后/usr/share/syslinux目录下回出现很多引导文件.
1.首先通过Yum仓库,安装SYSLinux服务程序.
[root@localhost ~]# yum install -y syslinux mtools
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package syslinux-4.05-13.el7.x86_64 already installed and latest version
Package mtools-4.0.18-5.el7.x86_64 already installed and latest version
Nothing to do
2.然后拷贝pxelinux.0引导文件到/var/lib/tftpboot目录下
[root@localhost ~]# cp -a /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# ls -l /var/lib/tftpboot/
total 28
-rw-r--r--. 1 root root 26826 May 10 2016 pxelinux.0
3.挂载RHEL光盘,并拷贝Linux的系统菜单和微内核
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# cp -a /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root@localhost ~]# cp -a /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@localhost ~]# cp -a /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
[root@localhost ~]# cp -a /mnt/isolinux/boot.msg /var/lib/tftpboot/
4.然后再TFTP目录中新建pxelinux.cfg目录,并将开机选项菜单复制到TFTP目录中,重命名为default.
[root@localhost ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cp -a /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/
[root@localhost ~]# mv /var/lib/tftpboot/pxelinux.cfg/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
5.编辑这个default文件,修改以下内容
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
59 menu separator # insert an empty line
60
61 label linux
62 menu label ^Install Red Hat Enterprise Linux 7.5
63 menu default #添加默认选择菜单
64 kernel vmlinuz
65 append initrd=initrd.img ks=ftp://192.168.1.10/pub/ks.cfg #指定主服务器IP地址
66
67 label check
68 menu label Test this ^media & install Red Hat Enterprise Linux 7.5
69 # menu default #注释掉,不用测试功能
70 kernel vmlinuz
71 append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.5\x20Server.x86_64 rd.live.check quiet
72
73 menu separator # insert an empty line
配置VSFTP服务程序
前面的微内核传输完毕后,加载了开机菜单,下面我们就要使用VSFTP完整的传输RHEL镜像到远程主机了,当然你也可以使用Web网站替代VSFTP的功能,不过还是推荐使用VSFTP.
1.首先通过Yum仓库,安装VSFTP服务程序.
[root@localhost ~]# yum install -y vsftpd
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package vsftpd-3.0.2-22.el7.x86_64 already installed and latest version
Nothing to do
2.拷贝RHEL光盘文件到/var/ftp/pub目录下,并赋予相应的权限.
[root@localhost ~]# mkdir -r /var/ftp/pub
[root@localhost ~]# cp -r /mnt/* /var/ftp/pub
[root@localhost ~]# chmod 777 -R /var/ftp/pub
[root@localhost ~]# chown ftp.ftp -R /var/ftp/pub
3.开启VSFTP匿名访问模式,并设置开机自启动
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl enable vsftpd
创建KickStart应答文件
KickStart其实准确的说,并不是一个服务程序,而是一个应答文件,其中包含了系统安装过程中所需要的配置参数选项等,在我们安装完系统后,root的家目录里会有一个anaconda-ks.cfg文件,其实这就是安装完本系统的剧本,我们也可以多次利用.
1.这里我们直接复制下面的应答文件,改个名字即可使用啦.
#此处应配置生成装机文件 本步骤跳过(以下是测试脚本)
#-------------------------------------------------------------------
[root@localhost ~]# vim ks.cfg
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation#
url --url="ftp://192.168.1.10/pub/" #此处修改为服务器IP
# Root password
rootpw --iscrypted $1$K4WAmqxk$ccusVq9PIk6f1uMqJ48fI1
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --size=500
part swap --fstype="swap" --size=2000
part / --fstype="ext4" --grow --size=1
clearpart --all --initlabel
%packages
@base
%end
#-------------------------------------------------------------------
0
[root@localhost ~]# cp -a ks.cfg /var/ftp/pub #拷贝生成的脚本到指定目录下
如果觉得以上脚本不能满足生产需求,可以安装system-config-kickstart软件包,这是一款图形界面工具,可以方便的配置生成系统安装脚本.到此位置我们的PXE环境配置完成,另开一台机器,测试效果即可.
Linux 应用Kickstart部署系统的更多相关文章
- Ubuntu 16.04 PXE+kickstart部署系统
#PXE+TFTP+Kickstart 自动部署服务器系统系统Ubuntu16.04apt-get install isc-dhcp-servervim /etc/default/isc-dhcp-s ...
- 使用 PXE+Kickstart 实现无人值守批量部署系统
一.废话两句 在云数据中心,一次几十台甚至几百台服务器上线,系统安装将变得非常繁琐,系统安装好了后还会涉及很多配置,如果一台台来安装的话工作量非常大.(虽然有加班费,开个玩笑)为了解决这个问题,我们需 ...
- linux服务器批量部署应用系统shell脚本(Tomcat/jetty)
linux服务器批量部署应用系统shell脚本: 1.请更换代码内的服务器地址(Tomcat或jetty服务器) serverRoot=/home/undoner/java_tool/apache-t ...
- 使用Qt Creator作为Linux IDE,代替Vim:实现两台Linux电脑远程部署和gdb调试(一台电脑有桌面系统,一台电脑无桌面系统)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/libaineu2004/article/details/62423830 尊重作者,支持原创,如 ...
- 第19章 使用PXE+Kickstart部署无人值守安装
章节概述: 本章节将教会您通过PXE+DHCP+TFTP+VSftpd+Kickstart服务程序搭建出无人值守安装系统,从而批量部署客户机系统. 这种系统能够实现自动化运维.避免了重复性劳动,帮助提 ...
- HP DL360 G7通过iLO部署系统
HPDL360 G7通过iLO部署系统 HP DL360 G7是没有光驱的服务器,可使用USB外置光驱.PXE网络安装.ILO方式的安装操作系统 一.HP iLO 简介 iLO 是一组芯片,内部是vx ...
- Linux项目自动部署
场景:linux中自动部署项目在工作中经常遇到,快速高效的部署项目能够大幅提高工作效率.现在将项目部署的过程记录下来,以供参考,其中用到的知识点现在还有很多不很清楚,后面要好好琢磨琢磨! 1 项目部署 ...
- SLAM+语音机器人DIY系列:(一)Linux基础——2.安装Linux发行版ubuntu系统
摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...
- linux定时任务调度定系统——opencron
linux定时任务调度定系统——opencron https://gitee.com/terrytan/opencron/#%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83 一 ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
随机推荐
- 离散化/线段树 (POJ - 2528 Mayor's posters)
Mayor's posters https://vjudge.net/problem/POJ-2528#author=szdytom 线段树 + 离散化 讲解:https://blog.csdn.ne ...
- 一、swift对象存储环境搭建
系列导航 一.swift对象存储环境搭建 二.swift添加存储策略 三.swift大对象--动态大对象 四.swift大对象--静态态大对象 五.java操作swift对象存储(官网样例) 六.ja ...
- 九、dockerfile指令讲解
系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...
- 嵌入式软件工程师笔试面试指南-ARM体系与架构
哈喽,大家好.我终于回来了!19号刚提交完大论文,就被抓去出差了,折腾了整整一周,26号晚上,才回到学校.鸽了好久都没更新干货了.今天更新一篇关于Arm的笔试面试题目,文章内容已同步更新在github ...
- 记一次el-checkbox包裹一层div,点击div勾选复选框,点击复选框却没反应的bug
<div class="account-item" v-for="item in accountList" :key="item.id" ...
- MES系统初探(一)
什么是MES系统 MES系统是制造执行系统(Manufacturing Execution System)的缩写,是一种用于监控.控制和优化制造过程的软件系统.它主要负责协调生产计划.生产调度.生产执 ...
- python global函数的使用
1.在全局变量与局部变量均存在时自定义的函数优先使用局部变量,自定义函数并不能改变全局变量的值. 查看运行结果: 2.在没有局部变量时,使用全局变量,且函数内部不能改变全局变量的值 查看运行结果: ...
- java项目实战-spring-基本用法01-day24
目录 1. spring 简单介绍 2. IOC/DI --控制反转--是啥 3. 实现 3. 如果 对象的 属性为引用数据类型 如何 实例化对象 4 如何用注解的方式 以少量的代码实现对象的创建于获 ...
- JUC包常用类原理
放眼望去,java.util.concurrent包下类大致包括:atomic 原子类.锁.并发集合.线程池.工具类.我们挑重要的了解一下. Atomic 原子类 Java针对并发编程已经有了各种锁, ...
- ElasticSearch使用实践(文档操作)
可以使用Docker安装ES和Kibana: 使用docker-compose安装ElasticSearch和Kibana: version: '3.1' services: elasticsearc ...