频道栏目
首页 > 网络 > 其他 > 正文

centos 7.4部署PXE+kickstart无人值守安装CentOS 6.9

2019-01-28 11:18:56           
收藏   我要投稿

1、关于PXEPreboot 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、满足Kickstart安装系统的需求

1) 网卡必须支持PXE引导;

2) 客户端需要有与Kickstart 通信的IP地址,这里一般都是通过DHCP自动分配IP地址来实现;

3) 提供引导所需的文件,内核文件,内核镜像文件等,此时一般通过tftp-server等实现;

4) kickstart文件,它主要实现自动化安装的过程,比如配置主机名、添加用户、安装系统后相关操作;

5) 提供安装源,一般就是NFS/ftp/httpd等;

图片.png 图片.png 图片.png

(1).Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将pxe环境下的Boot loader文件pxelinux.0的位置信息传送给Client。(2).Client向PXE Server上的TFTP请求pxelinux.0,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。(3).Client执行接收到的pxelinux.0文件。(4).Client向TFTP请求pxelinux.cfg文件(其实它是目录,里面放置的是是启动菜单,即grub的配置文件),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。(5).Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client。(6).Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统。(7).Client加载Linux内核(启动参数已经在4中的配置文件中设置好了)。(8).Client通过nfs/ftp/http下载系统安装文件进行安装。如果在4中的配置文件指定了kickstart路径,则会根据此文件自动应答安装系统。一、环境准备

vmwarestation虚拟机

网卡NAT模式

IP地址:192.168.153.11

所需要的服务器都安装在同一台服务器上

1、虚拟机挂载6.9的ISO文件

mount/dev/cdrom/mnt/

2、关闭防火墙

systemctlstopfirewalld

systemctldisablefirewalld

3、关闭selinux

setenforce0

改配置文件

二、DHCP服务器

[root@localhost~]#yum-yinstalldhcp

[root@localhost~]#cp/etc/dhcp/dhcpd.conf/etc/dhcp/dhcpd.conf.bak_$(date+%Y-%m-%d-%H-%M)

[root@localhost~]#cat/etc/dhcp/dhcpd.conf

default-lease-time600;

max-lease-time7200;

log-facilitylocal7;

subnet192.168.153.0netmask255.255.255.0{

optionrouters192.168.153.2;

optionsubnet-mask255.255.255.0;

optiondomain-name-servers192.168.153.2;

optiontime-offset-18000;#EasternStandardTime

rangedynamic-bootp192.168.153.200192.168.153.220;

default-lease-time21600;

max-lease-time43200;

next-server192.168.153.11;

filename"pxelinux.0";

}

注意:多网卡的时候绑定网卡启动dhcp服务,不是多网卡不用理会这步。

[root@localhost~]#cat/usr/lib/systemd/system/dhcpd.service

[Unit]

Description=DHCPv4ServerDaemon

Documentation=man:dhcpd(8)man:dhcpd.conf(5)

Wants=network-online.target

After=network-online.target

After=time-sync.target

[Service]

Type=notify

ExecStart=/usr/sbin/dhcpd-f-cf/etc/dhcp/dhcpd.conf-userdhcpd-groupdhcpd--no-pideno33554984

[Install]

WantedBy=multi-user.target

[root@localhost~]#systemctlstartdhcpd.service

[root@localhost~]#systemctlenabledhcpd.service

[root@localhost~]#ss-tunl|grep":67"#验证是否运行成功

三、TFTP服务器

[root@localhost~]#yuminstall-ytftp-serverxinetdsyslinux

[root@localhost~]#vim/etc/xinetd.d/tftp

servicetftp

{

socket_type=dgram

protocol=udp

wait=yes

user=root

server=/usr/sbin/in.tftpd

server_args=-s/var/lib/tftpboot

disable=no#这个设置为no

per_source=11

cps=1002

flags=IPv4

}

[root@localhost~]#cp-rf/usr/share/syslinux/*/var/lib/tftpboot

说明:syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。

[root@localhost~]#mkdir/var/lib/tftpboot/pxelinux.cfg

[root@localhost~]#mkdir/var/lib/tftpboot/centos6

[root@localhost~]#cp/mnt/images/pxeboot/vmlinuz/var/lib/tftpboot/centos6

[root@localhost~]#cp/mnt/images/pxeboot/initrd.img/var/lib/tftpboot/centos6

[root@localhost~]#cp/mnt/isolinux/*.msg/var/lib/tftpboot/

[root@localhost~]#touch/var/lib/tftpboot/pxelinux.cfg/default

[root@localhost~]#chmod755/var/lib/tftpboot/pxelinux.cfg/default

[root@localhost~]#cat/var/lib/tftpboot/pxelinux.cfg/default

defaultvesamenu.c32

prompt1

timeout6

menutitle##########GXM-PXEBootMenu##########

labellinux

menulabelInstallCentOS6.9x86_64

menudefault

kernelcentos6/vmlinuz

appendinitrd=centos6/initrd.imginst.repo=http://192.168.153.11/CentOS-6.9-x86_64ks=http://192.168.153.11/CentOS-6.9-x86_64/CentOS-6.9-x86_64.cfgquiet

[root@localhost~]#systemctlstartxinetd

[root@localhost~]#systemctlenablexinetd

[root@localhost~]#systemctlstarttftp

[root@localhost~]#systemctlenabletftp

[root@localhost~]#netstat-tulnp|grepxinetd

备注:可以设置多个label。

四、HTTP服务器(也可以用NFS或FTP)

[root@localhost~]#yuminstall-yhttpdcreaterepo

[root@localhost~]#mkdir/var/www/html/CentOS-6.9-x86_64

[root@localhost~]#cp-a/mnt/*/var/www/html/CentOS-6.9-x86_64/

[root@localhost~]#cat/var/www/html/CentOS-6.9-x86_64/CentOS-6.9-x86_64.cfg

#version=DEVEL

#Firewallconfiguration

firewall--disabled

#InstallOSinsteadofupgrade

install

#Usenetworkinstallation

url--url=http://192.168.153.11/CentOS-6.9-x86_64

#Rootpassword

rootpw--iscrypted$1$password$7ZK8mMeLGXxbNPeJEFJOU0

#Systemauthorizationinformation

auth--useshadow--enablemd5

#Usegraphicalinstall

graphical

firstboot--disable

#Systemkeyboard

keyboardus

#Systemlanguage

langen_US

#SELinuxconfiguration

selinux--disabled

#Installationlogginglevel

logging--level=info

#Rebootafterinstallation

reboot

#Systemtimezone

timezone--isUtcAsia/Shanghai

#Networkinformation

network--bootproto=dhcp--device=eth0--onboot=on

#Systembootloaderconfiguration

key--skip

bootloader--append="rhgbquiet"--location=mbr--driveorder=sda

#CleartheMasterBootRecord

zerombr

#Partitionclearinginformation

clearpart--all--initlabel

#Diskpartitioninginformation

part/--fstype="ext4"--size=8192

partswap--fstype="swap"--size=1024

part/home--fstype="ext4"--size=2048

%packages

@base

kexec-tools

vim

wget

httpd

lrzsz

net-tools

%end

备注1:也可以用图形化配置生成ks文件,步骤如下:安装Kickstart:

yum-yinstallsystem-config-kickstart

在桌面环境下配置Kickstart:

system-config-kickstart

备注2:ks的配置文件中rootpw密码可以使用明文,也可以使用加密过的值。比如明文密码是:123456,对应加密后的密码是:$1$password$7ZK8mMeLGXxbNPeJEFJOU0那这个密码是怎么生成的呢,其实和生成linux操作系统的密码shadow一样,命令如下:perl -e 'print crypt("123456",q($1$password)),"\n"'当使用特殊字符时,例如@$符时需要在前面加上\,例:\@\$,否则加密字符串会错误其中123456为要给用户设置的密码,$1$password字符串是自定义字符串,shadow里一般用$1$后面跟8个字符这种格式。备注3:key --skip 如果是红帽系统,此选项可以跳过输入序列号过程;如果是CentOS 系列,则可以不保留此项内容;reboot 此选项必须存在,也必须文中设定位置,不然kickstart显示一条消息,并等待用户按任意键后才重新引导;clearpart --all --initlabel 此条命令必须添加,不然系统会让用户手动选择是否清除所有数据,这就需要人为干预了,从而导致自动化过程失败;

[root@localhost~]#createrepo-pdo/var/www/html/CentOS-6.9-x86_64//var/www/html/CentOS-6.9-x86_64/

[root@localhost~]#createrepo-g`ls/var/www/html/CentOS-6.9-x86_64/repodata/*-comps.xml`/var/www/html/CentOS-6.9-x86_64/

[root@localhost~]#systemctlstarthttpd.service

[root@localhost~]#systemctlenablehttpd.service

[root@localhost~]#curl--headhttp://192.168.153.11/CentOS-6.9-x86_64/CentOS-6.9-x86_64.cfg#验证是否可以访问,可以则返回200

五、创建虚拟机,选择NAT网卡,有必要可以关闭vmnet8的dhcp功能。如下图表示成功。

图片.png

备注:centos 6只需要修改配置文件即可。

上一篇:编译安装时出现依赖文件故障问题
下一篇:centos7部署Gitlab服务器
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站