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

栏目: 服务器 · 发布时间: 6年前

内容简介:一、环境准备三、TFTP服务器四、HTTP服务器(也可以用NFS或FTP)

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

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

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

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

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

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

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

(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路径,则会根据此文件自动应答安装系统。

一、环境准备

vmware station虚拟机
网卡NAT模式
IP地址:192.168.153.11
所需要的服务器都安装在同一台服务器上
1、虚拟机挂载7.2ISO文件
     mount /dev/cdrom /mnt/
2、关闭防火墙
     systemctl stop firewalld
     systemctl disable firewalld
3、关闭selinux
     setenforce 0
     改配置文件

二、DHCP服务器

[root@localhost ~]# yum -y install dhcp
[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-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.153.0 netmask 255.255.255.0 {
option routers 192.168.153.2;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.153.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.153.200 192.168.153.220;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.153.11;
filename "pxelinux.0";
}

注意:多网卡的时候绑定网卡启动dhcp服务,不是多网卡不用理会这步。
[root@localhost ~]# cat /usr/lib/systemd/system/dhcpd.service
[Unit]
Description=DHCPv4 Server Daemon
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 -user dhcpd -group dhcpd --no-pid eno33554984
[Install]
WantedBy=multi-user.target
[root@localhost ~]#systemctl start dhcpd.service
[root@localhost ~]#systemctl enable dhcpd.service
[root@localhost ~]#ss -tunl | grep ":67" #验证是否运行成功

三、TFTP服务器

[root@localhost ~]#yum install -y tftp-server xinetd  syslinux
[root@localhost ~]#vim /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                 = no    #这个设置为no
        per_source              = 11
        cps                     = 100 2
        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/centos7
[root@localhost ~]#cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7
[root@localhost ~]#cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7
[root@localhost ~]#touch /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]#chmod 755 /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 1
timeout 30
menu title ########## GXM-PXE Boot Menu ##########
label linux
menu label Install CentOS 7.2 x86_64
menudefault
kernel centos7/vmlinuz
append initrd=centos7/initrd.img text inst.repo=http://192.168.153.11/CentOS-7.2-x86_64 ks=http://192.168.153.11/CentOS-7.2-x86_64/CentOS-7.2-x86_64.cfg
[root@localhost ~]#systemctl start xinetd
[root@localhost ~]#systemctl enable xinetd
[root@localhost ~]#systemctl start tftp
[root@localhost ~]#systemctl enable tftp
[root@localhost ~]#netstat -tulnp | grep xinetd
备注:可以设置多个label。

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

[root@localhost ~]#yum install -y httpd createrepo
[root@localhost ~]#mkdir /var/www/html/CentOS-7.2-x86_64
[root@localhost ~]#cp -a /mnt/* /var/www/html/CentOS-7.2-x86_64/
[root@localhost ~]#cat /var/www/html/CentOS-7.2-x86_64/CentOS-7.2-x86_64.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Install OS instead of upgrade
install
# Use network installation
url --url=http://192.168.153.11/CentOS-7.2-x86_64
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $1$password$7ZK8mMeLGXxbNPeJEFJOU0
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
%packages
@^minimal
@core
kexec-tools
vim
wget
httpd
lrzsz
net-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
selinux --disabled
reboot

备注1:

也可以用图形化配置生成ks文件,步骤如下:

安装Kickstart:

yum -y install system-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个字符这种格式。

[root@localhost ~]#createrepo -pdo /var/www/html/CentOS-7.2-x86_64/ /var/www/html/CentOS-7.2-x86_64/
[root@localhost ~]#createrepo -g `ls /var/www/html/CentOS-7.2-x86_64/repodata/*-comps.xml` /var/www/html/CentOS-7.2-x86_64/
[root@localhost ~]#systemctl start httpd.service
[root@localhost ~]#systemctl enable httpd.service
[root@localhost ~]#curl --head http://192.168.153.11/CentOS-7.2-x86_64/CentOS-7.2-x86_64.cfg #验证是否可以访问,可以则返回200

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

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

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


以上所述就是小编给大家介绍的《centos 7.4部署PXE+kickstart无人值守安装CentOS 7.2》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Introduction to Linear Optimization

Introduction to Linear Optimization

Dimitris Bertsimas、John N. Tsitsiklis / Athena Scientific / 1997-02-01 / USD 89.00

"The true merit of this book, however, lies in its pedagogical qualities which are so impressive..." "Throughout the book, the authors make serious efforts to give geometric and intuitive explanations......一起来看看 《Introduction to Linear Optimization》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具