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

[经验分享] PXE部署centos系统

[复制链接]

尚未签到

发表于 2019-4-17 16:40:42 | 显示全部楼层 |阅读模式
DSC0000.jpg

PXE服务器

裸机安装操作系统的方法:
光盘安装、U盘安装、PXE网络安装、从硬盘直接安装

PXE:是预启动执行环境缩写(preboot execute environment)。是intel公司推出的一款通过网络来引导操作系统的协议。广泛应用于网吧无盘系统。只需要将无盘服务器维护好,就能保证网络中的无盘工作站(客户机)的系统能正常运行。

PXE本讲目标:
       用centos7系统部署一台PXE服务器,实现通过PXE网络来给PXE客户机手动或自动安装centos7操作系统。

PXE服务器需要的支撑软件:DHCP、TFTP、syslinux(提供pxe引导程序文件pxelinux.0)、文件共享(nfs、ftp、http、samba)等

PXE服务器和客户机的工作过程:
1.PXE客户机发出DHCP请求,向服务器申请IP地址。
2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机TFTP(简单文件传输协议)服务器的IP地址和PXE引导程序文件pxelinux.0。
3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
5.PXE客户机通过网络来启动到系统安装主界面。
6.PXE客户机向文件共享服务器发起获取centos或windows系统安装文件的请求。
7.文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统的操作。

kickstart自动化系统安装:
在PXE服务器上用vim或kcikstart工具创建一个系统自动安装的应答文件ks.cfg,并用文件共享服务来共享ks.cfg文件。ks.cfg自动应答文件中是记录的安装操作步骤。客户机在进入安装界面时会自动根据ks.cfg文件中的内容来完成安装操作。

DSC0001.jpg DSC0002.jpg

DSC0003.jpg



DSC0004.jpg DSC0005.jpg
PXE中各服务器软件的功能:
DHCP:用来给PXE客户机自动分配TCP/IP设置(包括IP地址、子网掩码、网关、DNS等)。告知PXE客户机“TFTP服务器的IP地址和PXE启动文件名”。

TFTP:是一个迷你的FTP共享协议软件,用来给PXE客户机提供网络启动的引导程序文件pxelinux.0。

syslinux:用来提供pxelinux.0网络引导程序文件。

文件共享:可以是vsftpd、nfs、samba、http等软件来实现文件共享。用来给PXE客户机提供系统安装文件。

PXE服务器的部署:
关闭selinux和防火墙:
setenforce  0  &&  getenforce
systemctl   stop  firewalld  &&  systemctl  disable  firewalld

部署DHCP服务器
1.查软件是否已安装:rpm  -q  dhcp
2.安装dhcp服务器软件:yum   install  -y  dhcp
3.查配置文件列表:rpm  -qc   dhcp
/etc/dhcp/dhcpd.conf    **是dhcp服务器的主配置文件(实现DHCP的ipv4功能)
/etc/dhcp/dhcpd6.conf    是dhcp服务器的主配置文件(实现DHCP的ipv4功能)
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd      是dhcp服务器的辅助配置文件(用于多网卡环境)
/var/lib/dhcpd/dhcpd.leases   是dhcp服务器的租约文件(记录客户机从服务器获取的IP地址信息)
/var/lib/dhcpd/dhcpd6.leases
4.编辑dhcpd.conf配置文件
rpm  -qc  dhcp
cat   /etc/dhcp/dhcpd.conf
cat /usr/share/doc/dhcp*/dhcpd.conf.example
vim   /etc/dhcp/dhcpd.conf
subnet 192.168.11.0 netmask 255.255.255.0 {
  range 192.168.11.26 192.168.11.30;
  option domain-name-servers 8.8.8.8;
  option domain-name "qf.com";
  option routers 192.168.11.2;
  option broadcast-address 192.168.11.255;
  default-lease-time 6000;
  max-lease-time 72000;
  next-server 192.168.11.11;
  filename "pxelinux.0";
}
定义网络地址和子网掩码
指定IP地址池的范围(起始和截止IP)
域名解析服务器的IP地址
域名
网关IP地址
广播地址
默认租约时间
最大租约时间
TFTP服务器的IP地址
PXE引导程序文件名

5.启动dhcpd服务,允许服务开机自动启动。
systemctl  restart   dhcpd
systemctl  enable   dhcpd
systemctl  status   dhcpd
netstat  -atunlp | grep  :67
重启dhcpd服务
允许dhcpd服务开机自动启动
查dhcpd服务状态
查67号端口的网络进程序

PXE客户机测试:
1.在VMware虚拟机软件中新建一台名称为PXE0的centos7_64位系统的虚拟机。
2.给PXE0虚拟机的内存设置成1324M。
3.给PXE0虚拟机创建一个名称为“NOS”的快照。
4.启动PXE0虚拟机,会发现它自动获到了IP地址,并卡在了下图的界面。
DSC0006.jpg

部署tftp-server服务器
1.查软件是否已安装:rpm  -q  tftp-server
2.安装tftp-server服务器软件:yum   install  -y  tftp-server
3.查配置文件列表:rpm  -qc   tftp-server
/etc/xinetd.d/tftp
4.编辑tftp配置文件
cat  /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = yes
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
tftp服务的设置

套接字类型为dgram
协议类型为udp协议
允许等待
用户为root用户
服务器程序文件名
文件共享的主目录
将此行的yes(禁用)改为no(启用)


标识为IPv4

5.启动tftp服务,允许服务开机自动启动。
systemctl  restart   tftp
systemctl  enable   tftp
systemctl  status   tftp
netstat -atulp | grep tftp
netstat  -atunlp | grep  :69
重启tftp服务
允许tftp服务开机自动启动
查tftp服务状态
查网络进程中关于tftp关键字的信息
查网络进程中关于69号端口关键字的信息

6.安装提供pxelinux.0的syslinux软件,共享pxe引导程序文件。
rpm  -q  syslinux  mlocate
yum  install  -y  syslinux  mlocate
updatedb
locate  pxelinux.0
查软件是否已安装
安装指定的软件
更新locate文件查找数据库
查找pxelinux.0文件
共享指定的文件到/var/lib/tftpboot目录中

cd   /var/lib/tftpboot
cp  -v  /usr/share/syslinux/pxelinux.0   ./
df  -hT
cp  -v  /dvd/isolinux/*    ./
mkdir  -v  pxelinux.cfg
cp  -v  isolinux.cfg   pxelinux.cfg/default
切换到tftp-server的默认共享目录
复制指定的文件到当前目录中
查看磁盘空间使用状态
复制光盘挂载点目录中指定的文件到当前目录中
在当前目录中创建pxelinux.cfg目录
复制指定的文件到指定目录中并改名为default

/var/lib/tftpboot目录中的文件功能简介:
/var/lib/tftpboot
├── boot.cat
├── boot.msg
├── grub.conf
├── initrd.img
├── isolinux.bin
├── isolinux.cfg
├── memtest
├── pxelinux.0
├── pxelinux.cfg
│   └── default
├── splash.png
├── TRANS.TBL
├── vesamenu.c32
└── vmlinuz
tftp服务的默认共享目录



linux系统镜像文件(即迷你版的linux系统)



pxe的引导程序文件
pxe启动菜单的配置文件目录
PXE启动菜单(即centos的安装界面菜单)
安装界面的黑色背景图片

pxe的32位菜单管理程序
pxe启动的linux内核文件

PXE客户机测试:
重启PXE0虚拟机,会发现它自动获到了IP地址,并卡在了下图的界面。
DSC0007.jpg

文件共享服务器部署
       可用软件:vsftpd、nfs、samba、httpd

以vsftpd为例来部署:
1.查软件是否已安装:rpm  -q  vsftpd
2.安装tftp-server服务器软件:yum   install  -y  vsftpd
3.查配置文件列表:rpm  -qc   vsftpd
4.启动vsftpd服务,允许开机自动启动服务
systemctl  restart  vsftpd
systemctl  enable  vsftpd
systemctl  status  vsftpd
netstat  -atunlp | grep  :21   或  lsof  -i  :21


5.共享centos7的系统镜像到/var/ftp/dvd目录
mkdir  -v  /var/ftp/dvd
mount  /dev/sr0   /var/ftp/dvd

6.修改/var/lib/tftpboot/pxelinux.cfg/default启动菜单文件内容
vim   /var/lib/tftpboot/pxelinux.cfg/default  修改内容如下
61 label linux
62   menu label ^Install CentOS 7
63   kernel vmlinuz
64   append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet  找到此行
修改64行内容为append initrd=initrd.img  method=ftp://192.168.11.11/dvd

PXE客户机测试:
1.重启PXE0虚拟机,等待自动进入系统安装菜单界面。
2.在安装菜单界面用方向键选择第1个菜单,按Tab键显示菜单的内容,此时可以看到如下图所示的内容。
DSC0008.jpg

3.在第1个菜单界面上直接按回车键,等待安装程序的启动,直到进入下图所示的界面。
DSC0009.jpg

kickstart自动安装功能
采用kickstart自动应答程序来实现系统的自动化安装(即静默安装)

方法:使用kickstart程序或vim来创建ks.cfg自动应答文件。用文件共享服务来共享ks.cfg自动应答文件。

技巧:linux系统在安装时会自动生成一个anaconda-ks.cfg配置文件,文件位于/root目录中,anaconda-ks.cfg里面记录的就是用户在安装系统时所做的操作(选择语言环境、硬盘分区、安装的软件包、网卡IP设置、主机名、root用户密码、新建普通用户等)。

具体实施:
1.修改/root/anaconda-ks.cfg权限为644,复制/root/anaconda-ks.cfg到/var/ftp/ks目录中。
cd
chmod  -v  644  anaconda-ks.cfg
mkdir  -v  /var/ftp/ks
cp  -v  anaconda-ks.cfg  /var/ftp/ks/ks.cfg

2.修改/var/lib/tftpboot/pxelinux.cfg/default启动菜单文件
vim  /var/lib/tftpboot/pxelinux.cfg/default
61 label linux  标签为linux
62   menu label ^Install CentOS 7   菜单标签为Install CentOS 7
63   menu default    添加此行,设置为默认菜单
64   kernel vmlinuz     指定系统内核文件名为vmlinuz文件
修改64行内容为append  initrd=initrd.img  method=ftp://192.168.11.11/dvd  ks=ftp://192.168.11.11/ks/ks.cfg
66   #menu default  用#号注释掉此行
说明:ks=是指定ks.cfg自动安装应答文件的功能选项。

3.修改/var/ftp/ks/ks.cfg文件内容。
cat  /var/ftp/ks/ks.cfg    查看ks.cfg自动应答文件

#version=DEVEL系统版本号为DEVEL开发版
# System authorization information系统认证信息,即指定系统密码加密方式为sha512加密算法
auth --enableshadow --passalgo=sha512
# Use CDROM installation media使用CDROM光盘安装媒体
cdrom
# Use graphical install使用图形安装界面进行系统安装,此处可用graphical图形、也可用text文本方式。
graphical
# Run the Setup Agent on first boot运行设置代理在第1次启动时
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts键盘布局
keyboard --vckeymap=cn --xlayouts='cn'
# System language系统语言环境
lang zh_CN.UTF-8

# Network information网络信息,包括IP地址获取方式(static或dhcp)、网关、device网卡设备名、nameserver域名解析服务器IP地址、netmask子网掩码、IPv6的IP地址等。
network  --bootproto=static --device=ens33 --gateway=192.168.11.2 --ip=192.168.11.11 --nameserver=114.114.114.114,8.8.8.8 --netmask=255.255.255.0 --ipv6=auto --activate
network  --hostname=localhost.localdomain

# Root password――指定root用户的登录密码,是加密后的密码
rootpw --iscrypted $6$6vsqEcQaDu/y9CkV$1ZSy74HR1mxG.i0xBiUALwywaWCx2zgbWx5QRbJ2Nskck.29C2UxjXIr5jM6LatiaKtip7nvnQ2B5xrype.pA.
# System services系统服务,以下是允许chronyd网络时间服务开机自动启动
services --enabled="chronyd"
# System timezone系统时区,新建普通用户jin并设置登录密码
timezone Asia/Shanghai --isUtc
user --groups=wheel --name=jin --password=$6$MHU28rsP7sGGkw7s$JaqYHxDXAHmQaEHS33Py7kvnrKtfMnFp8HqlGw3xy6PAo1dtkxeKOGpi2Yg9UqXJqDLnTjsBkauRekkPYycvt/ --iscrypted --gecos="jin"
# X Window System configuration information――x window系统配置
xconfig  --startxonboot
# System bootloader configuration系统引导程序配置
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information分区表清除信息
clearpart --none --initlabel
# Disk partitioning information磁盘分区表信息
#创建名称为pv.157这个PV,在sda硬盘上,容量大小为50175兆
part pv.157 --fstype="lvmpv" --ondisk=sda --size=50175
#创建/boot分区,文件系统类型为xfs,在sda硬盘上,容量大小为1024兆
part /boot --fstype="xfs" --ondisk=sda --size=1024
#创建名称为centos的VG卷组,PE大小为4096K,在pv.157这个PV中创建
volgroup centos --pesize=4096 pv.157
#创建/根的逻辑卷,文件系统类型为xfs,最大容量为51200兆,初始容量大小为1024兆,逻辑卷名称为root,组卷名称为centos
logvol /  --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos
logvol swap  --fstype="swap" --size=2048 --name=swap --vgname=centos

#设置需要安装的软件包和软件包分组
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end




采用kickstart软件来生成ks.cfg自动应答文件。
yum  search  kickstart   搜索kickstart关键字的软件
yum  install  -y  system-config-kickstart   安装kickstart软件包
system-config-kickstart   启动kickstart配置程序,如下图所示:
DSC00010.jpg DSC00011.jpg
问题:上左图中的“软件包选择”界面会出现下图所示的错误:问题的原因是yum源的repo文件中的“仓库标识”必须用[development]
DSC00012.jpg
修改yum源配置文件:
vim   /etc/yum.repos.d/local.repo   文件内容如下
[development]
name=centos 7.5  linux
baseurl=file:///dvd
enabled=1
gpgcheck=0

修改yum源配置文件之后,再次执行system-config-kickstart看“软件包选择”功能的结果图:
DSC00013.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-828352-1-1.html 上篇帖子: centos 7 破解登陆密码 下篇帖子: Install MongoDB on Centos 7
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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