pxe+kickstart部署多个版本的Linux操作系统(下)---实践篇
*安装条件*
系统环境
安装步骤
1、准备工作:关闭 防火墙 和 SELINUX
[root@PxeServer ~]# systemctl stop firewalld.service #关闭当前系统防火墙
[root@PxeServer ~]# systemctl disable firewalld.service #关闭防火墙开机启动
[root@PxeServer ~]# systemctl status firewalld.service #查看防火墙的状态
[root@PxeServer ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/'/etc/selinux/config
[root@PxeServer ~]# setenforce 0
2、配置DHCP服务
[root@PxeServer ~]# yum -y install dhcp
[root@PxeServer ~]# cp -f /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf #复制配置模板文件到DHCP的配置目录中
[root@PxeServer ~]# vi /etc/dhcp/dhcpd.conf
#default-lease-time 600; #默认租约期限
#max-lease-time 7200; #最长租约期限
#log-facility local7; #日志反动地址
subnet 10.9.1.0 netmask 255.255.255.0 {
range 10.9.1.150 10.9.1.200; # 可分配的起始IP-结束IP
option subnet-mask 255.255.255.0; # 设定netmask
option routers 10.9.0.1; # 客户端的默认网关的地址
default-lease-time 21600; # 设置默认的IP租用期限
max-lease-time 43200; # 设置最大的IP租用期限
next-server 10.9.1.252; # 告知客户端TFTP服务器的ip
filename "pxelinux.0"; # 告知客户端从TFTP根目录下载pxelinux.0文件
}
[root@PxeServer ~]# systemctl enable dhcpd
[root@PxeServer ~]# systemctl start dhcpd
查看DCHP端口是否启动
[root@PxeServer ~]# ss -lntup|grep 67
3、配置FTP(共享文件)服务
[root@pxeserver ~]# yum install -y vsftpd
[root@pxeserver ~]# systemctl enable vsftpd
[root@pxeserver ~]# systemctl start vsftpd
[root@pxeserver ~]# ss -lntup |grep vsftpd
[root@noc ~]# ll -h /opt/CentOS-*
-rwxr-xr-x 1 root root 4.2G10月2817:25/opt/CentOS-6.5-x86_64-bin-DVD1.iso
-rwxr-xr-x 1 root root 4.1G10月2817:27/opt/CentOS-7.2-x86_64-DVD-1511.iso
在mnt下创建不同挂载点,挂载镜像:
[root@pxeserver ~]# mkdir -p /mnt/{6,7}
[root@pxeserver ~]# mount /opt/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/6 -o loop
[root@pxeserver ~]# mount /opt/CentOS-7.2-x86_64-DVD-1511.iso /mnt/7 -o loop
在ftp下创建不同目录,将不同版本的安装文件拷贝到对应目录(相对于直接挂载,可以提升读写速度)
[root@pxeserver ~]# mkdir -p /var/ftp/{CentOS6.5,CentOS7.2}
[root@pxeserver ~]# cp -a /mnt/6/* /var/ftp/CentOS6.5/
[root@pxeserver ~]# cp -a /mnt/7/* /var/ftp/CentOS7.2/
4、配置Kickstart一键安装应答文件
[root@pxeserver ~]# mkdir /var/ftp/ks -p
[root@pxeserver ~]# touch /var/ftp/ks/centos{6.5,7.2}_ks.cfg
给ks.cfg文件加上读权限
[root@pxeserver ~]# chmod +r /var/ftp/ks/centos{6.5,7.2}_ks.cfg
#---编辑CentOS6.5_ks.cfg
# Kickstart Configurator for CentOS 6.5 by author Mr.Gao!
#-------------------分割线-------------------------#
#this is new install,is not upgrade
install
#通过 FTP或HTTP协议 从远程服务器上的安装源中提取安装配置
url --url="ftp://10.9.1.252/CentOS6.5/"
#安装方式,文本界面,图形的话graphy
text
#设置在安装过程中使用的语言或者说系统语言类型
lang en_US.UTF-8
#键盘类型
keyboard us
#清除mbr-主引导记录
zerombr
#bootloader:系统引导相关配置
# --location=,指定引导记录被写入的位置. 有效的值如下:mbr(缺省);partition(在包含内核的分区的第一个扇区安装引导装载程序);none(不安装引导装载程序)
# --driveorder,指定在BIOS引导顺序中首位的驱动器
# --append=,指定内核参数.要指定多个参数,使用空格分隔它们
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#为通过网络的kickstart安装以及所安装的系统配置联网信息
#--bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的;static方法要求在kickstart文件里输入所有的网络信息
#!请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行
#--ip=,要安装的机器的IP地址.
#--gateway=,IP地址格式的默认网关.
#--netmask=,安装的系统的子网掩码.
#--hostname=,安装的系统的主机名.
#--onboot=,是否在引导时启用该设备.
#--noipv6=,禁用此设备的IPv6.
#--nameserver=,配置dns解析.
#network --bootproto=dhcp --device=eno16777736 --onboot=yes --noipv6 --hostname=hjl_nb_V6.5
network --bootproto=dhcp --device=em1 --onboot=yes --noipv6 --nameserver=8.8.8.8--hostname=hjl_nb_V6.5
#时区
timezone --utc Asia/Shanghai
#系统认证信息:设置密码加密方式为sha512 启用shadow文件
authconfig --enableshadow --passalgo=sha512
#root密码:可从首次安装后的"~/anaconda-ks.cfg"中提取(若root密码已修改请重新生成一次)
rootpw --xxx(密)
#清空分区:--all 从系统中清除所有分区;--initlable 初始化磁盘标签
#clearpart --none --initlabel
clearpart --all --initlabel
#-------part:磁盘分区--------#
#--fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat
#!--asprimary,强迫把分区分配为主分区,否则提示分区失败
#--size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB
#!--grow,告诉分区使用所有可用空间(若有),或使用设置的最大值
part /boot --fstype=ext4 --asprimary --size=300--ondisk=sda
part swap --fstype=swap --size=32768--ondisk=sda
part /--fstype=ext4 --asprimary --grow --size=300--ondisk=sda
#负责协助配置centos一些重要的信息
firstboot --disable
#首次安装关闭selinux、防火墙
selinux --disabled
firewall --disabled
#设置日志级别
logging --level=info
#!!设定安装完成后重启,此选项必须存在,否则kickstart显示一条消息,并等待用户按任意键后才重新引导,也可以选择halt关机
reboot
#软件包段
%packages
#基本系统组件
@base
@chinese-support
@compat-libraries
@debugging
@development
net-tools
#bind-utils
wget
tree
nmap
sysstat
lrzsz
dos2unix
#脚本段:安装系统后执行的命令或脚本
%post
wget -O /tmp/optimization.sh ftp://10.9.1.252/fresh/optimization.sh &>/dev/null
/bin/sh /tmp/optimization.sh
%end
#---编辑CentOS7.2_ks.cfg
#version=HQHY-CentOS7.2_v1.0
#-------------------分割线-------------------------#
#this is new install,is not upgrade
install
#通过 FTP或HTTP协议 从远程服务器上的安装源中提取安装配置
url --url="ftp://10.9.1.252/CentOS7.2"
# Use text mode install--安装方式,文本界面,图形的话graphy
text
# System language--安装过程的语言类型
lang en_US.UTF-8--addsupport=zh_CN.UTF-8
# Keyboard layouts--键盘类型
keyboard --vckeymap=us --xlayouts='us'
#清除mbr-主引导记录
zerombr
#bootloader:系统引导相关配置
# --location=,指定引导记录被写入的位置. 有效的值如下:mbr(缺省);parti tion(在包含内核的分区的第一个扇区安装引导装载程序);none(不安装引导装 载程序)
# --driveorder,指定在BIOS引导顺序中首位的驱动器
# --append=,指定内核参数.要指定多个参数,使用空格分隔它们
bootloader --location=mbr --driveorder=sda
# Network information--为通过网络的kickstart安装以及所安装的系统配置联网信息:
#--bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的;static方法要求在kickstart文件里输入所有的网络信息
#!请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行
#--ip=,要安装的机器的IP地址.
#--gateway=,IP地址格式的默认网关.
#--netmask=,安装的系统的子网掩码.
#--hostname=,安装的系统的主机名.
#--onboot=,是否在引导时启用该设备.
#--noipv6=,禁用此设备的IPv6.
#--nameserver=,配置dns解析.
#network --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto
network --bootproto=dhcp --device=em1 --onboot=yes --noipv6 --nameserver=8.8.8.8--hostname=hjl_nb_V7.2
# System timezone
timezone Asia/Shanghai--isUtc --nontp
# System authorization information--加密方式
auth --enableshadow --passalgo=sha512
#root密码:可从首次安装后的"~/anaconda-ks.cfg"中提取(若root密码已修改请重新生成一次)
rootpw --xxxxx(密)
#清空分区:--all 从系统中清除所有分区;--initlable 初始化磁盘标签
#clearpart --none --initlabel
clearpart --all --initlabel
#-------part:磁盘分区--------#
#--fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat
#!--asprimary,强迫把分区分配为主分区,否则提示分区失败
#--size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数>字后面加MB
#!--grow,告诉分区使用所有可用空间(若有),或使用设置的最大值
part /boot --fstype="ext4"--asprimary --size=300
part swap --fstype="swap"--size=32768
part /--fstype="ext4"--asprimary --grow --size=300
#--负责协助配置一些重要的信息
firstboot --enable
#首次安装关闭selinux、防火墙
selinux --disabled
firewall --disabled
#设置日志级别
logging --level=info
# Reboot after installation #安装后自动重启,如果BIOS中设置从PXE首先启动,那么会重复安装
# 请注意,安装后应设置为从先硬盘启动
reboot #(默认位置)
#设定所需要的软件包,按需要调整
%packages
@^minimal
@base
@compat-libraries
@core
@development
@debugging
kexec-tools
#net-tools
#bind-utils
wget
tree
nmap
sysstat
lrzsz
dos2unix #%end
#安装脚本:Linux安装完成后执行的脚本可以写在这里
#%post
#wget -O /tmp/optimization.sh ftp://10.9.1.252/fresh/optimization.sh &>/dev/null
#/bin/sh /tmp/optimization.sh
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
5、配置tftp服务
[root@pxeserver ftp]# yum -y install tftp-server tftp xinetd
设置开机自启动
[root@pxeserver ftp]# systemctl enable xinetd.service
[root@pxeserver ftp]# sed -i '14s#yes#no#'/etc/xinetd.d/tftp #disable=no 将yes修改no
[root@pxeserver ftp]# systemctl restart xinetd.service
[root@pxeserver ftp]# ss -nul |grep 69
UNCONN 0 0 *:69 *:*
6、配置支持PXE的引导加载程序
PXE引导配置(bootstrap)
[root@pxeserver ftp]# yum -y install syslinux-tftpboot #(安装引导加载程序,默认直接在tftp下生成;另外安装下面的syslinux也可以,不过需要将文件复制到tftp目录)
[root@pxeserver ftp]# yum -y install syslinux
[root@pxeserver ~]# cp /usr/share/syslinux/pxelinux.0/var/lib/tftpboot/ #pxelinux.0最重要的文件一定要有哦
注:因为是多系统引导安装,所以创建两个不同版本的文件夹,存放不同的引导文件
[root@pxeserver ~]# mkdir -p /var/lib/tftpboot/Cent{6,7}
[root@pxeserver ~]# cp /var/ftp/CentOS6.5/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/Cent6/
[root@pxeserver ~]# cp /var/ftp/CentOS7.2/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/Cent7/
制作启动菜单
default vesamenu.c32 #加载菜单
prompt 1 #显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。
timeout 100 #控制等待时间,单位是十分之一秒
display boot.msg #boot提示设置文件,可直接vim /var/lib/tftpboot/boot.msg添加自定义提示
menu clear #清除菜单选项
menu background splash.png #菜单背景:宽高=640x480,可自行选择png格式图标上传到/var/lib/tftpboot/下,命名为splash.png
menu title HQHY PXE BootMenu:InstallCentos6.5 or 7.2! #标题
label 1、InstallCentOS7.2
menu label ^InstallCentOSLinux7.2
#kernel 参数指定要启动的内核
kernel Cent7/vmlinuz
#append 指定追加给内核的参数,能够在grub里使用的追加给内核的参数,在这里也可以使用;ksdevice:让安装程序使用第一个网络设备
append initrd=Cent7/initrd.img text ks=ftp://10.9.1.252/ks/centos7.2_ks.cfg ksdevice=em1 label 2、InstallCentOS6.5
menu label ^InstallCentOSLinux6.5
kernel Cent6/vmlinuz
append initrd=Cent6/initrd.img text ks=ftp://10.9.1.252/ks/centos6.5_ks.cfg ksdevice=em1
检验安装
1、服务端
[root@pxeserver ~]# systemctl restart dhcpd.service
[root@pxeserver ~]# systemctl restart vsftpd.service
[root@pxeserver ~]# systemctl restart xinetd.service
[root@pxeserver ~]# netstat -tunlp|egrep '80|67|69'
2、客户端
PING baidu.com (111.13.101.208) 56(84) bytes of data.
64 bytes from 111.13.101.208: icmp_seq=1 ttl=128 time=44.4 ms
64 bytes from 111.13.101.208: icmp_seq=2 ttl=128 time=30.6 ms
64 bytes from 111.13.101.208: icmp_seq=3 ttl=128 time=31.1 ms
--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 30.653/35.437/44.481/6.401 ms [root@hjlnb_V7-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 278.9G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 31.3G 0 part [SWAP]
└─sda3 8:3 0 247.3G 0 part /
sr0 11:0 1 1024M 0 rom
pxe+kickstart部署多个版本的Linux操作系统(下)---实践篇的更多相关文章
- pxe+kickstart部署多个版本的Linux操作系统(上)---原理篇
PXE概述: 1.PXE(Pre-bootExecution Environment),预启动执行环境2.通过网络接口启动计算机3.支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系 ...
- 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9
摘要: 安全防护:在Linux操作系统下备份恢复技术的应用 原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...
- Linux 操作系统下为网卡配置ip
Linux操作系统下为网卡配置ip by:授客 QQ:1033553122 1. Linux单一网卡设置多IP的配置方法 在Linux下网卡接口逻辑名被称为eth0,eth1,eth2,..... ...
- Linux 操作系统下,安装软件 apt-get、yum 的区别
Linux 操作系统主要分为两大类: RedHat系列:Redhat.Centos.Fedora等: Debian系列:Debian.Ubuntu等. yum(Yellow dog Updater, ...
- Linux操作系统下Oracle主要监控工具介绍
Oracle监控包括有效且完全地监控Oracle数据库的性能.可用性和使用率等统计量,还包括即时的错误通知和纠正措施,并提供全面的报表和图表.本文中主要介绍几种Linux操作系统下Oracle主要监控 ...
- 15.1 linux操作系统下nand flash驱动框架2
当我们需要在操作系统上读写普通文件的时候,总是需要一层层往下,最终到达硬件相关操作,当然底层设备大多数都是块设备 NAND FLASH就作为一个最底层的块设备. 而写驱动,就是要构建硬件与操作系统之间 ...
- 第19章 使用PXE+Kickstart部署无人值守安装
章节概述: 本章节将教会您通过PXE+DHCP+TFTP+VSftpd+Kickstart服务程序搭建出无人值守安装系统,从而批量部署客户机系统. 这种系统能够实现自动化运维.避免了重复性劳动,帮助提 ...
- linux 操作系统下c语言编程入门
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 ...
- Linux操作系统下的常见系统资源共享
转:http://www.360doc.com/content/07/0420/10/25127_457022.shtml linux下如何挂接(mount)光盘镜像文件.移动硬盘.U盘.Window ...
随机推荐
- String 是一个奇怪的引用类型
开局两张图,内容全靠刷! 马甲哥看到这样的现象,一开始还是有点懵逼. 这个例子,string是纯粹的引用类型,但是在函数传值时类似于值传递: 我之前给前后示例的内存变化图吧: 根因就是大多数高级语言都 ...
- MMF的初步介绍:一个规范化的视觉-语言多模态任务框架
在VQA, Image Caption等任务中,构建模型是一件工作量较大的工作.有没有什么能减少这些重复的工作量呢?与此同时,Pytorch,tensorflow等开源的深度学习工具包发布,大大减少了 ...
- ELK搭建-windows
一.E 二.L 启动 三.K 四.filebeat 五.配置文件使用 1.logstash-sample.conf # Sample Logstash configuration for creati ...
- Echarts的柱状统计图出现x轴统计时间出现间隔显示的问题
今天在使用Echarts的柱状统计图出现x轴统计时间出现间隔显示的问题: 数据都拿到了,放到Json数组都是完整的, 展现是时候 如下图:
- 批量执行异步任务CompletionService
批量执行异步任务CompletionService 核心思想,就是将异步结果放入到阻塞队列中,然后再消费队列,实现异步任务批量执行 接口方法说明 Future<V> submit(Call ...
- CUDA 8的混合精度编程
CUDA 8的混合精度编程 Volta和Turing GPU包含 Tensor Cores,可加速某些类型的FP16矩阵数学运算.这样可以在流行的AI框架内更快,更轻松地进行混合精度计算.要使用Ten ...
- Ucore lab1实验报告
练习一 Makefile 1.1 OS镜像文件ucore.img 是如何一步步生成的? + cc kern/init/init.c + cc kern/libs/readline.c + cc ker ...
- 实战SpringBoot Admin
长话短说哦,直接查看下文吧 目录 声明 先锋 前提 SpringBoot Admin 介绍 服务端的搭建 客户端的搭建 参数的指南 尾声 声明 见名知意,实战SpringBoot Admin,实战!实 ...
- Kubernetes 实战——有状态应用(StatefulSet)
一.简介 有状态实例:新实例和旧实例需要有相同的名称.网络标识和状态 无状态实例:可随时被替换 1. ReplicaSet 和有状态 Pod ReplicaSet 通过 Pod 模板创建多个 Pod ...
- SpringBoot数据访问(二) SpringBoot整合JPA
JPA简介 Spring Data JPA是Spring Data大家族的一部分,它可以轻松实现基于JPA的存储库.该模块用于增强支持基于JPA的数据访问层,它使我们可以更加容易地构建使用数据访问技术 ...