设为首页 收藏本站
查看: 347|回复: 0

[经验分享] Linux基于PXE实现系统自动化部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-20 09:34:18 | 显示全部楼层 |阅读模式
一、前言:

  通常为计算机安装操作系统的方式主要是,光盘安装和U盘安装;在企业生产环境中,会需要对多台客户机或服务器安装Linux操作系统,如果还用常规的方法去安装,费时又费力;PXE批量部署系统即可高效完成此类工作。


二、原理:

  使用光盘(镜像)安装Linux操作系统过程:POST(加电自检)-->引导序列(通过BISO发现引导CD-ROM或U盘)--Bootloader(kernel+ramdisk)-->anaconda(安装程序)


1、自动化部署服务器所需环境:

  PXE:Preboot eXecute Environment,预启动执行环境;网卡支持PXE Bootrom;

  DHCP:Dynamic HostConfiguration Protocol,动态主机设置协议;为客户端提供IP地址;

  TFTP:Trivial File Transfer Protocol,简单文件传输协议;为客户端提供启动引导文件和内核引导文件;

  xinetd:超级守护进程,用来唤醒tftp服务;

  HTTP:HyperText Transfer Protocol,超文本传输协议;为客户端提供kickstart文件及安装源;

  kickstart文件:系统自动化安装脚本;

  syslinux:提供pxelinux.0文件,启动引导文件,相当于bootloader;

  操作系统光盘或镜像:安装源和内核引导文件;


2、实现过程:

PXE采用C/S服务架构:

  1)、Client:客户端加电自检通过BIOS发现支持PXE的网卡,然后PXE Bootrom会向网络中发送广播请求,向网络中的DHCP服务器请求IP地址;

  2)、Server:服务器收到广播,会为客户端提供IP地址和TFTP服务器的IP地址,TFTP中包含PXE Bootrom引导程序所需的文件;

  3)、Client:客户端会向TFTP服务器发送下载请求,下载引导程序文件;

  4)、Server:TFTP服务器接收到请求,传输引导程序文件;


三、实验过程:
1、实验前提:

  1)、客户端:

  网卡支持PXE;


  2)、服务器:

  配置静态IP地址;

1
2
# vim/etc/sysconfig/network-scripts/ifcfg-eth    :修改网络配置文件;
# service networkrestart    :重新启动网络服务;



wKioL1Wpzf_Cf1q4AAC0aTKG2yU277.jpg


  关闭防火墙和SELinux;

1
2
3
4
# chkconfig iptables off    :防火墙设置开机关闭;
# service iptables stop    :光比防火墙服务;
# setenforce 0    :关闭SELinux;
# vim /etc/selinux/conf    :修改SELinux配置文件;



wKioL1WpOerhjkoaAADsS8QRKIY533.jpg


  配置好YUM源,并安装所需软件包:dhcp,tftp-server,xinted,httpd,system-config-kickstart,syslinux;

1
2
3
# mount -o loop /mnt/hgfs/lin/CentOS-6.6-x86_64-bin-DVD1.iso/media/cdrom/    :挂载光盘镜像;
# vim /etc/yum.repos.d/centos.repo    :配置YUM仓库位置;
# yum install dhcp tftp-server xinted httpd system-config-kickstartsyslinux –y    :安装相关服务软件包;



wKiom1WpOFSjgMv7AAAygFNhp-g079.jpg


2DHCP服务配置:
1
2
# /etc/dhcp/dhcpd.conf    :主配置文件;
# /usr/share/doc/dhcp-**/dhcpd.conf.sample    :可参照次主配置文件模板进行修改配置;




1
2
3
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup    :备份原配置文件;
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample/etc/dhcp/dhcpd.conf    :模板覆盖原配置文件;
# vim /etc/dhcp/dhcpd.conf    :修改配置文件;




  全局配置:

1
2
3
4
5
>option domain-name "chencer.org";    :配置域名
>option domain-name-servers 192.168.1.2;    :配置DNS服务器地址
  
>default-lease-time 3600;    :默认租约时间,单位为秒;
>max-lease-time 86400;    :最大租约时间,单位为秒;




  地址池配置:

1
2
3
4
5
6
>subnet 192.168.1.0 netmask255.255.255.0 {
>    range 192.168.1.1 192.168.1.100;    :配置地址池范围;
>    option routers 192.168.1.1;    :网关配置;
>    next-server 192.168.1.2;    :配置tftp服务器地址;
>    filename "pxelinux.0";    :配置PXE引导文件
>}



wKioL1WpO2GD23IsAABZq7BU0bM350.jpg



1
2
3
4
# servicedhcpd configtest    :编辑完成,保存退出,检查配置文件语法;
# chkconfig dhcpd on    :设置开机启动;
# service dhcpd {start|restart}    :启动或重启服务;
# ss –unl    :查看监听端口;dhcpd监听在UDP 67号端口;




3TFTP服务配置:

  1)、xinetd配置:

1
# vim /etc/xinetd.d/tftp    :xinetd是tftp服务的超级守护进程,修改配置文件;



wKiom1WpOe7wWbZaAAEUS0hcTaQ879.jpg



  2)、为tftp服务提供引导文件:

1
2
3
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/    :为TFTP服务器提供启动PXE的工作环境;
# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}/var/lib/tftpboot/    :提供kernel和ramdisk;
# cp /media/cdrom/isolinux/{boot.msg,splash.jpg,vesamenu.c32}/var/lib/tftpboot    :提供安装菜单框架;




1
2
3
# mkdir -p /var/lib/tftpboot/pxelinux.cfg
# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
# vim /var/lib/tftpboot/pxelinux.cfg/default



wKiom1WpOlCzpKwSAAJ6RaQfUhs027.jpg
1
# tree /var/lib/tftpboot/    :检查文件完整性;



wKioL1WpPEvgmohQAAB1RaXbg1U102.jpg



  3)、启动服务:

1
2
3
# chkconfig xinetd on    :设置开机启动;
# service xinetd {start|restart}    :启动或重启xinetd服务;
# ss –unl    :查看监听端口;tftp监听在UDP 69号端口;




4http服务配置:

  1)、提供安装源:

1
2
# mkdir /var/www/html/centos6.6    :创建安装源目录;
# mount --bind /media/cdrom/ /var/www/html/centos6.6/    :挂载镜像到安装源目录;



wKiom1WpOsrgJuw1AAC8N7TWri4241.jpg


  2)、提供kickstart文件:

1
2
# system-config-kickstart    :通过图形界面工具创建kickstart文件保存于/var/www/html/ks.cfg;
# vim -O /root/anaconda-ks.cfg /var/www/html/ks.cfg    :可参照/root/ anaconda-ks.cfg进行修改;




添加或修改以下两行,指定安装源位置:

1
2
>url --url=http://192.168.1.2/centos6.6
>repo --name="CentOS"--baseurl=http://192.168.1.2/centos6.6 --cost=100



wKiom1WpOxKSyN5LAAIbjqHD-Ds024.jpg

  3)、启动服务:

1
2
3
# chkconfig httpd on    :设置服务开机启动
# service httpd {start|restart}    :启动或重启服务;
# ss –tnl    :httpd监听在tcp 80号端口;




四、客户端测试:

BIOS设置为网卡优先:

wKioL1WpPR_yvz97AAHIMfUpa8k902.jpg

安装菜单界面:

wKioL1WpPSjRu1ElAAGJ30wMHgo133.jpg

正在安装:

wKiom1WpO1TThBqlAAFVl-7T-64527.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-88526-1-1.html 上篇帖子: rsync+inotify实现数据的实时同步 下篇帖子: linux_DHCP配置文档 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表