pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

   2023-02-09 学习力0
核心提示:工作中我们如果安装一台操作系统,我们可以做一个U启动来安装我们所需要的操作系统,但是如果我们如果要给几十台server 安装操作系统,我们在用U启动安装效率太低,这时候我们可以采用pxe + kickstart 来批量安装系统大大节省我们的时间。  PXE 交换的原理C

工作中我们如果安装一台操作系统,我们可以做一个U启动来安装我们所需要的操作系统,但是如果我们如果要给几十台server 安装操作系统,我们在用U启动安装效率太低,这时候我们可以采用pxe + kickstart 来批量安装系统大大节省我们的时间。 

 

PXE 交换的原理

Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client

Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0 Client执行接收到的pxelinux.0文件

Client向TFTP Server发送针对本机的配置信息文件(在TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。

Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client

Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统

Client启动Linux内核

Client下载安装源文件,读取自动化安装脚本

 

 

我以ubuntu 14.04系统为例演示一下怎么实现pxe和kickstart 来实现批量部署系统

 

环境系统: ubuntu14.04 

 

1. 软件安装及配置,首先需要安装 apache tftpserver kickstart  dhcp  配置工具

apt-get install  -y system-config-kickstart tftpd-hpa tftp-hpa apache2  isc-dhcp-server 

 

 

2.将ubuntu-14.04 镜像上传,在apache2 网站上创建挂载目录,将镜像挂载在目录上。 

我们安装完apache2 后在apache2 的网站目录(/var/www/html/) 上创建挂载的目录    (在哪里挂载没有关系只需要将挂载目录上的数据都放在网站目录下) 

mkdir -p /var/www/html/ubuntu-1404/  

网站默认目录是/var/www/html/  如果想要挂载指定位置需要修改 /etc/apache2/sites-available/000-default.conf 文件中默认根目录,修改完记得要重启服务 

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

 

 

挂载镜像到目录上,挂载后的目录是由数据。

mount -t iso9660 ubuntu-14.04.6-server-amd64.iso /opt/tftp/ubuntu-1404

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

永久挂载需要写在开机自动挂载的fstab 里

/root/ubuntu-14.04.6-server-amd64.iso /var/www/html/ubuntu-1404 iso9660 ro,loop,defaults  0 0

 

 

将挂载目录的启动文件cp 到我们tftp 共享目录中(/var/lib/tftpboot/   初始的目录是为空)与网站目录中

cp -arf /var/www/html/ubuntu-1404/install/netboot/* /var/lib/tftpboot/

cp /var/www/html/ubuntu-1404/preseed/ubuntu-server.seed  /var/www/html/

 

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

 

 

在网站目录创建ks 

mkdir -p /var/www/html/ks/

 

生成ks.cfg 文件   (需要支持图形界面如果不是图形界面apt-get install ubuntu-desktop  安装一下)

system-config-kickstart                   (选择一些关键的就可以,其他保持默认根据需求来配置----自己可以百度一下kickstart 详细配置说明)    配置完后在file 中save  file 

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

 

 

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

 

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

保存文件后会有一个ks.cfg 文件存在

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

 

 

修改/var/www/html/ubuntu-server.seed 文件追加一条 (因为在ubuntu12.10版本以后,安装一些包会依赖于预配置的文件系统,会导致使用kickstart方式无法成功安装)

vim /var/www/html/ubuntu-server.seed

d-i live-installer/net-image string http://192.168.1.128/ubuntu-1404/install/filesystem.squashfs

 

 

添加 ks.cfg 文路径,在install标签下的append 添加ks

vim /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/txt.cfg


default install
label install
menu label ^Install
menu default
kernel ubuntu-installer/amd64/linux
append ks=http://192.168.1.128/ks/ks.cfg preseed/url=http://192.168.1.128/ubuntu-server.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet
label cli
menu label ^Command-line install
kernel ubuntu-installer/amd64/linux
append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet
~

 

 

配置dhcp 

/etc/dhcp/dhcpd.conf

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.60;      #地址分配范围
option routers 192.168.1.1;         #网关
option domain-name-servers 192.168.1.1;        #dns  (/etc/resolv.conf 可以查看到)
default-lease-time 6000;          #默认租期
max-lease-time 7200;           #最大租期
filename "pxelinux.0";           #pxe启动文件名称,注意文件最后是数字0,不是字母o
next-server 192.168.1.128;         #tftp 地址
}

 

 

3.重启各个服务

service isc-dhcp-server restart

service tftpd-hpa restart

service apache2 restart

 

4. 验证

起一个虚机设置网络启动 (这个虚机需要和pxe server 在同一个vlan 里)   装好后的虚机

pxe+kickstart 自动化批量部署ubuntu14.04 操作系统

 

 

 

附ks.cfg   

#Generated by Kickstart Configurator
#platform=x86

#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $1$FMLT9HTQ$A9NJbHTiSiCsPq9Qg3h1m0
#Initial user
user test --fullname "" --iscrypted --password $1$MWbigjvn$C5HPkUqvo9PBnu0YnfaoE/
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use Web installation
url --url http://192.168.1.128/ubuntu-1404
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype xfs --size 500
part swap --size 500
part / --fstype ext4 --size 1 --grow
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Ubuntu使用——15(thinkphp路由报错Non-static method think\Route::get() should not be called statically)
    Ubuntu使用——15(thinkphp路由报错Non-static
    在route.php中添加代码:use think\Route;Route::get('/',function (){return 'hello world';});在浏览器中输入http://localhost/tp5-git/public/index.php,报错:[8192] ErrorException in route.php line 13Non-static method think\Route::get() should n
    03-08
  • Ubuntu与Window双系统安装的注意事项
    Ubuntu与Window双系统安装的注意事项
      UBUNTU与WINDOW双系统安装的注意事项 由 匿名 (未验证) 提交于 2019-05-18 10:07:41登录 发表评论29 次浏览假定电脑里面已经存在了Window系统,安装另外一个Linux系统:第一:首先确定电脑里面的window系统引导方式电脑系统的引导方式分为:(1)传统
    03-08
  • Ubuntu 图形界面损坏修复方法!!!亲测有用!!!
    Ubuntu 图形界面损坏修复方法!!!亲测有用!
    1.现象今天做实验的时候打开Ubuntu虚拟机,输入密码之后发现变成这样:然后重新开机,到了输入密码界面不输入,而是输入快捷键CTRL+alt+F1,输入用户名+密码进入之后输入ls,发现我的文件还在,心想这不是系统炸了啊上网搜说是图形界面损坏于是重新来:(参考
    03-08
  • Ubuntu终端输入异常、无法退格(删除文本)、使用方向键命令
    Ubuntu终端输入异常、无法退格(删除文本)、使
    1 起因为了学习嵌入式开发安装去安装的ncurses库,使用命令:sudo apt-get install libncurses5-dev导致系统自带的ncurses-base被自动删除。2 出现的问题误删ncurses-base后导致终端输入窗口出现了一系列的问题:Ubuntu终端输入无法退格(删除文本)、使用↑
    03-08
  • Raspberry Pi (Ubuntu) 上的 VNC 无监视器
    Raspberry Pi (Ubuntu) 上的 VNC 无监视器
    超级方便的无监视器VNC方便的树莓派远程桌面操作,无需显示器\(^^)/通过在页面末尾设置“无显示器设置”,可以在启动树莓派之前和之后连接和断开 HDMI 显示器电缆(这很重要)。来自主 PC 的远程桌面环境树莓派 4Ubuntu 20.04(64位)服务器+桌面设置VNC 设
    03-08
  • 免费供个人使用最多3个! !我尝试注册 ESM 将 Ubuntu LTS 版本的支持期延长 5 年
    免费供个人使用最多3个! !我尝试注册 ESM 将
    我个人使用 Ubuntu 作为我的 Linux 机器的操作系统。 Ubuntu 有正常版本和 LTS(长期支持)版本的操作系统。至此,版本号奇数为普通版,偶数为LTS版,LTS版长期支持5年,而普通版有支持期半年左右。。由于Linux机器用作GPU服务器,由于驱动程序和库的兼容性等
    03-08
  • [WSL2 Ubuntu22.04] 尝试使用 WSLg 运行 Elixir Desktop(未完成)
    [WSL2 Ubuntu22.04] 尝试使用 WSLg 运行 Elixir
    现状启用 WSLg 后,Elixir Desktop 会不会像在 Ubuntu 上一样工作?Elixir 桌面示例我试着跑步窗口显示并似乎在移动,但 Todo 应用程序未显示在窗口中。这是一个空白的显示。显示窗口和菜单。Extra 的内容也可以单独使用。如果您使用 Extra 的 Open Browser
    03-08
  • ubuntu中vi下删除键和上下左右键输入字符异常(
     刚安装的Ubuntu系统,使用vi编辑文本的时候,出现以下现象:点删除键输入了 D回车无效上下左右为字母光标乱跳 原因:自带的vi功能问题 解决:卸载原有vi,重新安装完整版本vim执行以下命令即可: sudo apt-get remove vim-common sudo apt-get install v
    02-10
  • ubuntu禁止ping操作(禁用ICMP协议访问) icmp
    ping命令是计算机之间进行相互检测线路完好的一个应用程序,计算机间交流数据的传输没有经过任何的加密处理,因此我们在用ping命令来检测某一个服务器时,可能在因特网上存在某个非法分子,为了安全我们把ping给禁止掉。通过专门的黑客程序把在网络线路上传输
    02-10
  • Ubuntu16配置静态IP ubuntu16.04配置静态ip
    一、静态IP地址配置sudo vi/etc/network/interfaces然后按照如下格式修改:注意这里的网卡名字是ens33auto loiface lo inet loopbackauto ens33iface ens33 inet staticaddress 192.168.1.106netmask 255.255.255.0gateway 192.168.1.1二、配置DNS#临时修改su
    02-10
点击排行