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 ...
随机推荐
- 游刃于私有网络与公共网络之间的NAT
网络地址转化技术NAT 1. 应用场景 2. NAT 2.1 静态NAT 2.2 动态NAT 2.3 NAPT 2.4 EASY IP 3. NAT配置 3.1 静态NAT 3.2 动态NAT 3.3 ...
- 实战|教你用Python玩转Mysql
爬虫采集下来的数据除了存储在文本文件.excel之外,还可以存储在数据集,如:Mysql,redis,mongodb等,今天辰哥就来教大家如何使用Python连接Mysql,并结合爬虫为大家讲解. 前 ...
- GO语言基础---值传递与引用传递
package main import ( "fmt" ) /* 值传递 函数的[形式参数]是对[实际参数]的值拷贝 所有对地址中内容的修改都与外界的实际参数无关 所有基本数据类型 ...
- GO语言的JSON01---序列化
package main import ( "encoding/json" "fmt" ) /* 定义待序列化结构体 属性一定要可见,否则json包无法访问 * ...
- MySQL笔记01(黑马)
一.数据库基本介绍 目标:了解数据库的功能和常见数据库分类.数据库产品 数据库基本知识 数据库分类 SQL简介 MySQL访问 1.数据库基本知识 目标:了解数据库的概念和数据库的作用 概念 数据库: ...
- python学习笔记03-变量和字符串
变量 变量:把一个值赋值给一个名字时,它会储存在内存中,称之为变量(virable):但在python中并不会储存在变量里,仅仅是类似于给值加了标签 变量的使用规则: 1.使用变量,首先需要给变量赋值 ...
- Unicode编码转换, MD5加密,URL16进制加密解密
一.站长网址:http://www.msxindl.com/ 1.Unicode与中文互转 16进制Unicode编码转换.还原 :http://www.msxindl.com/tools/uni ...
- Dynamic Anchor Learning for Arbitrary-Oriented Object Detection(DAL)
面向任意目标检测的动态锚点学习 摘要:面向任意的目标广泛地出现在自然场景.航空照片.遥感图像等中,因此面向任意的目标检测得到了广泛的关注.目前许多旋转探测器使用大量不同方向的锚点来实现与地面真实框的空 ...
- css基本内容笔记(学习整理)
一.css简介 1.什么是css 层叠样式表. 层叠:层层叠加,若果有冲突应用优先级高,不冲突的部分共同作用 样式表:就是css属性样式的集合: 2.作用 a.修饰html,使得html样式更好看 b ...
- Java语言中的这些知识点有没有用过,工作中有没有入过这些坑?
在Java语言中,有一些相对生僻的知识,平时用的机会可能不是很多,但如果不了解不掌握这些知识点的话,也可能会掉入陷阱之中,今天我们就来初步梳理一下: 1. goto是java语言中的关键字. &quo ...