SLES15SP1 AutoYast - PXE 技术
由于最近在做几个Ceph项目,基本都是50个节点起,那我们在项目中经常使用PXE技术来实现系统自动化安装,提高效率,可能有会说PXE技术太老了没什么好了解,但我觉得的很实用,尤其在项目型工程中,通过PXE技术安装系统,SaltStack 工具批量修改配置。因此今天实验就是介绍在 SLES15SP1 虚拟机环境下,部署PXE远程安装服务,并采用AutoYast工具,实现在另外一台虚拟机中自动化安装SLES15SP1系统。
实验环境

本次环境依旧是在win10 + VMware workstation来部署虚拟机,首先部署一台PXE服务器,安装DHCP和TFTP服务,另外我们还有一台SLES系统仓库。然后通过PXE技术自动化安装SLES15SP1系统。
环境搭建
一、PXE 服务器环境搭建和系统安装
参考这2篇文章:
(1)SUSE Storage6 环境搭建详细步骤 - Win10 + VMware WorkStation
(2)SUSE Linux Enterprise 15 SP1 系统安装
- PXE虚拟机:30GB 系统分区设置,系统分区建议按如下分区表建立
|
分区名 |
设备文件名 |
分区容量 |
文件系统 |
|
/boot |
/dev/sda1 |
1 GB |
XFS |
|
vg00 |
/dev/sda2 |
29 GB |
-- |
|
/ |
/dev/vg00/lvroot |
28 GB |
XFS |
|
swap |
/dev/vg00/lvswap |
1 GB |
Swap |
- PXE客户端:300GB系统分区,模拟物理环境
|
分区名 |
设备文件名 |
分区容量 |
文件系统 |
|
/boot |
/dev/sda1 |
1 GB |
XFS |
|
vg00 |
/dev/sda2 |
200 GB |
-- |
|
/ |
/dev/vg00/lvroot |
184 GB |
XFS |
|
swap |
/dev/vg00/lvswap |
16 GB |
Swap |
注意:300GB磁盘空间,我们只使用200GB,不使用全部磁盘空间主要因为 PXE 环境下自动分区不允许多出 1 字节,尽量采用小于300GB空间大小来分区,不够可以通过LVM在线扩容。
二、SLES15 PXE 部署
1、配置DHCP服务
(1)DHCP安装
# zypper -n in dhcp-server
(2)配置dhcp服务
注意:按照自己服务器地址网段配置
# vim /etc/dhcpd.conf
option domain-name "";
option routers 172.200.50.1;
default-lease-time ;
ddns-update-style none;
########### 下面是TFTP服务器地址和启动文件#####################
next-server 172.200.50.49;
filename "pxelinux.0"; subnet 172.200.50.0 netmask 255.255.255.0 {
range 172.200.50.200 172.200.50.210;
default-lease-time ;
max-lease-time ;
}
(3)修改支持dhcp服务的网络接口,将配置文件内的参数修改成真正提供服务的端口:
# vim /etc/sysconfig/dhcpd
DHCPD_INTERFACE="eth0"
(4)启动服务
# systemctl enable dhcpd.service
# systemctl start dhcpd.service
# systemctl status dhcpd.service
2、apache 安装
(1)安装
# zypper -n in apache2
(2)配置
# vim /etc/apache2/default-server.conf
DocumentRoot "/srv/www/htdocs"
<Directory "/srv/www/htdocs">
....
Options Indexes FollowSymLinks
....
</Directory>
(3)创建仓库
# mkdir /srv/www/htdocs/repo/SUSE/Products/SLES15-SP1-Installer-Pools -pv
# mount SLE--SP1-Installer-DVD-x86_64-GM-DVD1.iso \
/srv/www/htdocs/repo/SUSE/Products/SLES15-SP1-Installer-Pools -r
(4)启动服务
# systemctl start apache2
# systemctl enable apache2
(5)访问apache2
http://172.200.50.49/repo/SUSE
3、生产 autoyast.xml 文件
(1)首先,我们选择一台 300GB 虚拟机,手动方式部署 SLES15SP1
通过手动安装方式,通过命令自动会产生autoyast.xml文件,然后我们在该文件之上修改。
(2)添加仓库
## Pool
zypper ar http://172.200.50.19/repo/SUSE/Products/SLE-Product-SLES/15-SP1/x86_64/product/ \
SLE-Product-SLES15-SP1-Pool
zypper ar http://172.200.50.19/repo/SUSE/Products/SLE-Module-Basesystem/15-SP1/x86_64/product/ \
SLE-Module-Basesystem-SLES15-SP1-Pool
zypper ar http://172.200.50.19/repo/SUSE/Products/SLE-Module-Server-Applications/15-SP1/x86_64/product/ \
SLE-Module-Server-Applications-SLES15-SP1-Pool
zypper ar http://172.200.50.19/repo/SUSE/Products/SLE-Module-Legacy/15-SP1/x86_64/product/ \
SLE-Module-Legacy-SLES15-SP1-Pool
(3)生成autoyast.xml文件
# zypper in autoyast2 autoyast2-installation
# yast clone_system
- 自动生成 /root/autoyast.xml 文件

(4)编辑该配置文件
- 增加仓库文件
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<add-on>
<add_on_products config:type="list">
<listentry>
<media_url><![CDATA[http://172.200.50.19/repo/SUSE/Products/SLE-Module-Basesystem/15-SP1/x86_64/product/]]></media_url>
<product>SLE-Module-Basesystem-SLES15-SP1-Pool</product>
<product_dir>/</product_dir>
</listentry>
</add_on_products>
</add-on>
- 在</bootloader>后<keyboard>前加入<general>,如果缺少<general>,PXE在磁盘分区后需要人工确认。
<bootloader>
<global>
.......
<xen_kernel_append>vga=gfx-1024x768x16 crashkernel=189M\<4G</xen_kernel_append>
<general>
<mode>
<confirm config:type="boolean">false</confirm>
</mode>
</general>
.........
</global>
<loader_type>grub2</loader_type>
</bootloader>
- 删除后autoyast2 autoyast2-installation,后续PXE安装的系统无需该安装包
<software>
<image/>
<packages config:type="list">
.......
<package>autoyast2-installation</package>
<package>autoyast2</package>
.......
</packages>
- 格式化分区,都修改为true
<initialize config:type="boolean">true</initialize>
- 修改完配置文件后复制到PXE服务器上
4、配置 TFTP
(1)首先安装tftp服务
# zypper -n in tftp tftpboot-installation-SLE--SP1-x86_64 tftpboot-installation-common
# systemctl enable tftp.socket
# systemctl restart tftp.socket
# systemctl restart tftp.service
(2)配置TFTP目录,目录结构如下:
mkdir /srv/tftpboot
mkdir /srv/tftpboot/{config,pxelinux.cfg}
cp /root/autoinst.xml /srv/tftpboot/config/sles15sp1_300G.xml
cp /usr/share/syslinux/pxelinux. /srv/tftpboot/
cp /srv/www/htdocs/repo/SUSE/Products/SLES15-SP1-Installer-Pools/boot/x86_64/loader/isolinux.cfg \
/srv/tftpboot/pxelinux.cfg/default
chmod /srv/tftpboot/pxelinux.cfg/default
cp /srv/www/htdocs/repo/SUSE/Products/SLES15-SP1-Installer-Pools/boot/x86_64/loader/message \
/srv/tftpboot/
chmod /srv/tftpboot/message
cp /srv/www/htdocs/repo/SUSE/Products/SLES15-SP1-Installer-Pools/boot/x86_64/loader/initrd \
/srv/tftpboot/
cp /srv/www/htdocs/repo/SUSE/Products/SLES15-SP1-Installer-Pools/boot/x86_64/loader/linux \
/srv/tftpboot/
(3)目录架构如下
# tree /srv/tftpboot/
/srv/tftpboot/
|-- config ---- 注释 A
| `-- sles11sp3.xml
|-- message ---- 注释 B
|-- pxelinux. ---- 注释 C
|-- pxelinux.cfg
| `-- default ---- 注释 D
|-- initrd ---- 注释 E
|-- linux
- 注释A:config目录里面存放的是在网络自动部署中,操作系统默认配置的定义文件,也就是autoyast.xml文件。
- 注释B:这个文件来源于系统安装光盘中,用于客户端在PXE网络启动后,在客户端所看到的提示信息。一般写法可以通过操作系统安装光盘中/boot/x86_64/loader/message获取并且修改。
- 注释C:这个文件来源自系统本身,位置/usr/share/syslinux/pxelinux.0。此文件由syslinux-xxx-xxx.rpm提供。
- 注释D:这个文件来源系统安装光盘中:/boot/x86_64/loader/isolinux.cfg
- 注释E:initrd、linux两个文件都同样来源自系统安装光盘中:/boot/x86_64/loader/
(4)针对message和 default文件内容简单,介绍一下。确定要获得哪个内核和根文件系统的镜像
# vim /srv/tftpboot/message
harddisk - Boot from Hard Disk (this is default)
linux - Installation
sles15_300g - Installation
upgrade - Upgrade
rescue - Rescue System
systemboot - Boot Linux System
mediachk - Check Installation Media
memtest - Memory Test
如上:在客户端会出现上面的提示信息。而真正的控制文件在default文件里面。
# vim /srv/tftpboot/pxelinux.cfg/default
default harddisk # hard disk
label harddisk
localboot 0x80 # install
label sles15_300g
kernel linux
append initrd=initrd install=http://172.200.50.49/repo/SUSE/Products/SLES15-SP1-Installer-Pools/ \
autoyast=http://172.200.50.49/repo/sles15sp1_30G.xml splash=silent showopts textmode=1 #ui gfxboot bootlogo message <== 注释掉
implicit
display message
prompt
timeout
三、部署PXE客户机操作
1、虚拟机具体配置

2、开启虚拟机,进入BIOS

3、选择Boot菜单,网络启动作为第一选项

4、输入 sle15_300g ,开始安装系统



5、这样就顺利的完成了安装


SLES15SP1 AutoYast - PXE 技术的更多相关文章
- 【Linux】使用 PXE+Kickstart 无人值守批量安装系统
一.PXE背景知识 通过 PXE+DHCP+TFTP+VSftpd+Kickstart 服务程序搭建出无人值守安装系统,从而批量部署客户机系统. PXE(Preboot eXecute Environ ...
- PXE与cobbler实现系统自动安装
安装操作系统的流程事实上并不复杂,如果你要给三五台服务器安装系统那么我们手工去安装即可.但是当我们要部署的是大型机房的操作系统的时候显然手动安装去一台一台的点,是不现实的.尤其现在互联网行业高速发展, ...
- Linux基础学习-使用PXE+Kickstart无人值守安装服务
无人值守安装系统 PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技 ...
- 《Linux就该这么学》培训笔记_ch19_使用PXE+Kickstart无人值守安装服务
<Linux就该这么学>培训笔记_ch19_使用PXE+Kickstart无人值守安装服务 文章最后会post上书本的笔记照片. 文章主要内容: 无人值守系统 部署相关服务程序 配置DHC ...
- Linux自动化安装cobbler
1介绍 1.1 PXE PXE技术与RPL技术不同之处为RPL是静态路由,PXE是动态路由.RPL是根据网卡上的ID号加上其他记录组成的一个Frame(帧)向服务器发出请求.而服务器中已有这个ID数据 ...
- Linux选型:开源不是免费 首选红帽和SUSE
首发:http://tech.it168.com/a2014/0324/1606/000001606245.shtml 企业级服务器系统选型报告:http://www.it168.com/redian ...
- Kickstart + http Linux自动化部署服务端
设备需要开启Network Boot功能.具体PXE技术就另外提,本文主要讲解配置. 在搭建该服务器之前需要关闭SELinux和iptables不然可能dhcp服务都起不来,客户端收不到IP地址,无法 ...
- linux系统批量无人值守安装
一:批量无人值守安安装原理 利用DHCP TFTP FTP和PXE技术实现批量安装系统,首先在主server上安装好DHCP TFTP和FTP服务,client通过网卡的PXE技术获取到IP地址和TF ...
- Cobbler自动化部署
一:PXE.Kickstart与Cobbler的概念: PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的技术,需要网卡的硬件支持,工作于C/S的 ...
随机推荐
- MySQL如何选择合适的索引
先来看一个栗子 EXPLAIN select * from employees where name > 'a'; 如果用name索引查找数据需要遍历name字段联合索引树,然后根据遍历出来的主 ...
- POJ-1062 昂贵的聘礼( 最短路 )
题目链接:http://poj.org/problem?id=1062 Description 年轻的探险家来到了一个印 第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用1000 ...
- hdu6333 Harvest of Apples 离线+分块+组合数学(求组合数模板)
Problem B. Harvest of Apples Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K ...
- codeforces 799 D. Field expansion(dfs+思维剪枝)
题目链接:http://codeforces.com/contest/799/problem/D 题意:给出h*w的矩阵,要求经过操作使得h*w的矩阵能够放下a*b的矩阵,操作为:将长或者宽*z[i] ...
- SpringAop应用
1. 引言 为什么要使用Aop?贴一下较为官方的术语: 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方 式和运行期动态代理实现程序功能 ...
- VS Code 前端开发常用快捷键插件
一.vs code 的常用快捷键 1.注释:a) 单行注释:[ctrl+k,ctrl+c] 或 ctrl+/ b) 取消单行注释:[ctrl+k,ctrl+u] (按下ctrl不放,再按k + u) ...
- JS-特效 ~ 03. 楼层跳跃、事件对象event的获取与使用、event的主要内容、screenX、pageX、clientX的区别、放大镜、模拟滚动条
楼层跳跃 100%子盒子会继承父盒子的宽高.父盒子继承body宽高.Body继承html的宽高. 盒子属性:auto:适应盒子自身的宽度或者高度.(对自己负责) 盒子属性:100%:适应盒子父盒子的宽 ...
- 【入门】广电行业DNS、DHCP解决方案详解(三)——DNS部署架构及案
[入门]广电行业DNS.DHCP解决方案详解(三)——DNS部署架构及案 DNS系统部署架构 宽带业务DNS架构 互动业务DNS架构 案例介绍 案例一 案例二 本篇我们将先介绍DNS系统部署架构体系, ...
- FreeSql (二十一)查询返回数据
FreeSql 采用 ExpressionTree 优化读取速读,如果懂技术的你一定知道 .NETCore 技术下除了原生代码,最快就是 Emit 和 ExpressionTree. 项目在初期使用的 ...
- Python面向对象编程——继承与派生
Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...