1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统

自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统

时间:2019-05-23 05:03:02

相关推荐

自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统

一、概述

1、关于PXE

Preboot Execution Environment翻译过来就是预启动执行环境;简称PXE;传统安装操作系统的方法是CDROM或U盘引导,而PXE技术解决的是从网络引导安装系统,当然PXE技术不是什么新技术了,是Intel和Microsoft在1998年定义的更大PC98规范的一部分。有关PXE规范的详细文档

2、pxe引导相关角色说明

PXE作用: 引导装机

Kickstart作用: 将安装系统的过程中通过ks.cfg文件中的配置信息,实现自动安装配置达到无人值守自动安装;

TFTP: 支持PXE 引导的网卡中从tftp服务器端下载pxelinux.0文件、vmlinuz、initrd.img等内核引导文件;

DHCP: PXE引导过程中获首先获取IP地址,并提供pxelinux.0文件位置;

HTTP: 用于下载ks.cfg以及系统镜像文件

通用的无人值守做法如下:

通过一台没有系统的裸机网卡支持pxe协议,开机后从dhcp服务器获取ip和pxelinux.0文件并从tftp服务器上加载相关内核引导文件;同时下载 kickstart的cfg配置文件,指定系统镜像文件位置加载安装,从而实现无人值守安装!

如图(图片来自于网络):

3、环境准备说明

本次测试环境说明:

PXE服务器:CentOS7.4 基于virtualboxt的虚拟机

ip:172.16.3.152 (可上网) 内部测试ip(仅主机模式) 192.168.56.254

配置服务及安装软件包如下:

DHCP

tftp

http

syslinux 包,提供引导文件

以上所需要的软件包均通过yum安装

[root@pxe ~]# yum install dhcp tftp tftp-server syslinux httpd -y

防火墙,selinux关闭;生产线请开放UDP 67 68 69 tcp/80端口;

测试机可直接新建安装CentOS7系统 注意的就是网络选择仅主机即可;后面说明

接下来就配置并测试!

二、基于httpd搭建本地安装源

1、挂载光盘制作安装源

##挂载CentOS7光盘[root@pxe ~]# mkdir /media/cdrom[root@pxe ~]# mount /dev/cdrom /media/cdrom[root@pxe ~]# mkdir -pv /var/www/html/centos/7/x86_64#绑定挂载到http默认目录下[root@pxe ~]#mount --bind /media/cdrom /var/www/html/centos/7/x86_64

2、kickstart ks.cfg配置文件准备

以家目录下的anaconda-ks.cfg为模板制作ks文件

[root@pxe ~]# cd /var/www/html;mkdir ks[root@pxe ~]# cat ks.cfg#version=DEVEL# System authorization informationauth --enableshadow --passalgo=sha512# Use CDROM installation media#cdrom# Install OS instead of upgradeinstall# Use network installationurl --url=http://192.168.56.254/centos/7/x86_64# Use graphical installgraphical# Run the Setup Agent on first bootfirstboot --enable#ignoredisk --only-use=sda# Keyboard layoutskeyboard --vckeymap=cn --xlayouts='cn'# System languagelang zh_CN.UTF-8# Network informationnetwork --bootproto=dhcp --device=enp0s3 --onboot=off --ipv6=autonetwork --hostname=# Root passwordrootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1# System timezonetimezone Asia/Shanghai --isUtc# System bootloader configurationbootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sdaautopart --type=lvm# Partition clearing informationclearpart --none --initlabel%packages@^minimal@corekexec-toolsvimwgethttpd%end%addon com_redhat_kdump --enable --reserve-mb='auto'%endselinux --disabled#禁用selinuxreboot #安装完重启系统

以上是我的参考配置,您也可以作为模板只需要简单修改以下几行:

安装的网络镜像地址:

url --url=http://192.168.56.254/centos/7/x86_64

安装后的系统密码:

rootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1

密码可以通过openssl passwd -1 "PASSWORD"

生成格式是sha512的密码替换上去即可;

另外安装后可以在%packages 与其%end之间配置预安装的包等,此处让程序在安装好系统后预安装wegt vim软件包;更多好玩的配置请

请参看redhat官方文档

3、配置启动

[root@pxe ~]# systemctl start httpd[root@pxe ~]# systemct enable httpd

三、配置DHCP服务

1、配置dhcp服务

dhcp配置文件在/etc/dhcp/目录下,默认的配置文件没有,但我们可以在帮助文件中找到模板示例文件加以修改

[root@pxe ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf[root@pxe ~]# egrep -v '(^$|^#)' /etc/dhcp/dhcpd.confoption domain-name "";option domain-name-servers 192.168.56.1;default-lease-time 600;max-lease-time 7200;log-facility local7;subnet 192.168.56.0 netmask 255.255.255.0 {range dynamic-bootp 192.168.56.110 192.168.56.120;option routers 192.168.56.1;next-server 192.168.56.254; #tftp server也是本机,可以分开filename "pxelinux.0";#引导文件}

2、启动与查看

[root@pxe ~]# systemctl start dhcpd[root@pxe ~]# systemctl enable dhcpd查看服务状态,已经监听在UDP 67上[root@pxe ~]# ss -tunlNetid StateRecv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN00 *:55770 *:* udp UNCONN00 *:47150 *:* udp UNCONN00 *:67*:*

四、配置tftp服务

安装好tftp-server软件包后 默认的数据根目录是/var/lib/tftpboot/ 无须修改,只需要复制一些软件引导文件进来即可

1、相关文件准备

##引导文件[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #内核文件[root@pxe ~]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot#引导菜单[root@pxe ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot#制件引导默认文件[root@pxe ~]# mkdir -pv /var/lib/tftpboot/pxelinux.cfg[root@pxe pxelinux.cfg]# cat default default menu.c32prompt 5timeout 30MENU TITLE CentOS 7 PXE MenuLABEL linuxMENU LABEL Install CentOS 7 x86_64KERNEL vmlinuzAPPEND initrd=initrd.img inst.repo=http://192.168.56.254/centos/7/x86_64 ks=http://192.168.56.254/ks/ks.cfg

2、启动配置开机自启

[root@pxe tmp]# systemctl enable tftp[root@pxe tmp]# systemctl start tftp

3、tftp测试

/var/lib/tftpboot/目录文件结构

结构查看[root@pxe tftpboot]# tree -L 2.├── chain.c32├── initrd.img├── mboot.c32├── memdisk├── menu.c32├── pxelinux.0├── pxelinux.cfg│ └── default└── vmlinuz测试tftp[root@pxe tmp]# pwd;ls/tmp[root@pxe tmp]# tftp 192.168.56.254tftp> get vmlinuztftp> quit[root@pxe tmp]# pwd;ls/tmpvmlinuz

五、PXE无人值守安装测试

1、修改virtualbox网络

管理-->全局设定-->网络-->"仅主机(Host-Only)网络" -->双击vboxnet0 -->把virtualbox自带的仅主机网络的DHCP服务关掉,如图:

2、新建虚拟机

和用cdrom安装虚拟的唯一区别是不用挂载镜像,只需要修改新的虚拟机的网络类型为"仅主机(Host-Only)网络"如图:

开机-->按F12选择LAN启动,如图:

再接下来就是很熟悉的图形化自动安装的过程了!整个安装系统的过程 基本上也就五六分钟的样子,具体视安装包多少与系统网络性能而定;想了解具体过程,自行动手试试吧!

总结:

以上就是基于PXE协议和syslinux引导文件,kickstart配置文件,DHCP,tftp-server,httpd服务制作本地安装源协作完成的无人值守安装系统,也可以在这套环境 中加入CentOS6的安装,只需要添加修改配置文件即可,这种操作一般就要用到cobbler服务去更好的解决啦!本次在windows上用vmware也是类似操作!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。