pxe自动化安装linux

PXE:
Preboot Excution Environment 预启动执行环境
Intel公司研发

  • 基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统
  • PXE可以引导和安装Windows,linux等多种操作系统

1 centos系统的启动流程

启动流程
  bootloader -->kernel(initramfs) -->rootfs-->/sbin/init
anaconda:系统安装程序
  • centos安装程序启动过程
MBR: isolinux/bootcat
stage2: isolinux/isolinux.bin
配置文件: isolinux/isolinux.cfg
  每一个对应的菜单选项: 
      加载内核:isolinux/vmlinuz
      向内核传递参数:append initrd=initrd.img ...  
状态根文件系统并启动anaconda
  默认启动GUI接口
  若是显示指定使用TUI接口:向内核传递text参数即可
  1 按tab键,在后面添加text
  2 按ESC键: boot:linux text

2 准备

  • 系统安装
启动安装过程一般位于引导设备,后续的anaconda及其安装用到的程序包等可来自下面的几种方式:
  本地方式
  本地光盘
  NFS(network file system)
  URL:
    ftp server: yum repository
    http server: yum repository
如果想要手动指定安装源:
  boot: linux askmethod
  • kickstart 文件的位置
  DVD drive: ks=cdrom:/path/to/kickstart_file
  hard drive: ks=好的:device:/directory/kickstart_file
  http server: ks=http://host:port/path/to/kickstart_file
  ftp server: ks=ftp://hosts:port/path/to/kickstart_file
  nfs server: ks=nfs:host:/path/to/kickstart_file
  • kickstart 文件创建
创建kickstart文件的方式
  直接手动编辑
    依据root家目录下的anaconda-ks.cfg 文件进行编辑修改
  可使用创建工具 system-config-kickstart
     依据某模板修改并生成新配置
      /root/anaconda-ks.cfg
检查ks文件语法是否有错:ksvalidator
   ksvalidator kickstart_file
  • 系统光盘中isolinux目录列表
solinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
isolinux.cfg: isolinux.bin的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32:是光盘启动后的安装图形界面,也属于SYSLINUX项目, menu.c32版本是纯文本的菜单
Memtest:内存检测,这是一个独立的程序
splash.jgp:光盘启动界面的背景图
vmlinuz是内核映像
initrd.img是ramfs (先cpio,再gzip压缩)
  • DHCP服务
同网段多个DHCP服务
  dhcp服务必须基于本地
  先到先得的原则
相关协议: arp(地址解析协议) rarp(反地址解析)
  • dhcp的实现
Linux DHCP协议实现程序:dhcp,dnsmasq(dhcp,dns)
DHCP server 应用程序及配置文件
  /usr/bin/dhcpd
    /etc/dhcp/dhcpd.conf --> /etc/initd/dhcpd
     /etc/dhcp/dhcpd6.conf --> /etc/initd/dhcpd6
dhcp server 监听端口:67/udp
dhcp client 端口: 68/udp
dhcpv6 client:546/udp
DHCP client
  dhclient
  自动获取IP信息: /var/lib/dhclient
dhcp的配置文件,需要从安装的程序包中复制
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
option domain-name ""; dns的搜索名称
option domain-name-servers ip1,ip2; dns的地址
default-leasetime time(second);默认地址租期
max-lease-time time(second);最大地址租期
subnet licalnet netmask local_mask {
  range IP1 IP2;表示此dhcp服务提供的ip范围
  option routers ip;得到ip的默认路由
  filename  "pxelinux.0"; 指明引导文件名称
  next-server ip; 指明引导文件的服务器IP地址,使用tftp server
}
  • 安装syslinux 我们需要 pxelinux.0和一些菜单风格
  • 使用 http作为我们yum源的服务
yum install httpd
  1 创建目录方式光盘
     mkdir /var/www/html/centos/7
     mount /dev/sr0 /var/www/html/centos/7
  2 准备kickstart文件
     mkdir /var/www/html/ksdir/
     cp /path/to/kickstart   /var/www/html/ksdir/ks7.cfg
     将centos7的kickstart文件复制到此目录下,注意权限,需要读权限
  • 配置 tftp server
安装tftp server yum install tftp-server
默认的文件目录/var/lib/tftpboot
 1 mkdir /var/lib/tftpboot/pxelinux.cfg  放置default(pxelinux.cfg)文件
 2 将syslinux的包的部分文件复制到指定目录
   cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot
   cp /usr/share/syslinux/menu.c32  /var/lib/tftpboot
 3 将光盘的文件拷到此目录下
   cp /var/www/html/centos/7/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot
   cp /var/www/html/centos/7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
  4 修改default 文件,符合我们的需求
    default menu.c32
    timeout 600
    menu title PXE INSTALL MENU
    label auto
    menu label Auto Install CentOS 7
    kernel vmlinuz
    append initrd=initrd.img ks=http://ip:port/ksdir/ks7.cfg

启动 tftp,dhcp,httpd服务
systemctl start tftp-server dhcpd httpd
然后就可以启动一台新电脑,进行自动化安装

2 将服务升级可以同时实现centos7和centos6的自动化安装

配置centos6 的yum源
  1 创建目录方式光盘
     mkdir /var/www/html/centos/6
     mount /dev/sr0 /var/www/html/centos/6
  2 准备kickstart文件
     cp /path/to/kickstart6   /var/www/html/ksdir/ks6.cfg
     将centos7的kickstart文件复制到此目录下,注意权限,需要读权限
删除/var/lib/tftpboot的目录下所有文件,重新创建
 1 mkdir /var/lib/tftpboot/{pxelinux.cfg,centos6,centos7}  放置default(pxelinux.cfg)文件
 2 将syslinux的包的部分文件复制到指定目录
   cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot
   cp /usr/share/syslinux/menu.c32  /var/lib/tftpboot
 3 将centos6和centos7光盘的文件拷到此目录下,指定目录
   cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6
   cp /var/www/html/centos/7/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7
   cp /isolinux_point/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default(哪张光盘都可以)
  4 修改default 文件,符合我们的需求
    default menu.c32
    timeout 600
    menu title PXE INSTALL MENU
    label auto
    menu label Auto Install CentOS 7
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img ks=http://ip:port/ksdir/ks7.cfg
    menu label Auto Install CentOS 6
    kernel centos6/vmlinuz
    append initrd=centos6/initrd.img ks=http://ip:port/ksdir/ks6.cfg
  • 重新启动服务进行测试
    systemctl restart dhcpd tftp-server httpd
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容