无人值守自动安装linux系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无人值守自动安装linux系统相关的知识,希望对你有一定的参考价值。


PXE基本原理概述


什么是PXE

PXEpre-boot executionenvironment预启动执行环境

intel公司开发的技术

工作于C/s的网络模式

Client通过网络从server下载映像,并通过网络启动操作系统

应用场景

       liveOS

       OS安装

PXE基本原理

1 ClientPXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC 地址),如果合法则返回ClientIP 地址,同时将启动文件pxelinux.0 的位置信息一并传送给Client

2 ClientPXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP 接收到消息之后再向Client发送pxelinux.0大小信息,试探Client 是否满意,当TFTP 收到Client 发回的同意大小信息之后,正式向Client 发送pxelinux.0

3 Client 执行接收到的pxelinux.0 文件

4 Client TFTP Server 发送针对本机的配置信息文件(在TFTP  服务的pxelinux.cfg目录下),TFTP 将配置文件发回Client ,继而Client 根据配置文件执行后续操作。

5  Client TFTP 发送Linux 内核请求信息,TFTP 接收到消息之后将内核文件发送给Client

6 Client TFTP 发送根文件请求信息,TFTP接收到消息之后返回Linux 根文

件系统

7 Client 启动Linux 内核

8 Client下载安装源文件,读取自动化安装脚本


技术分享

构建自动化安装系统的pxe服务



准备工作

关闭防火墙和seLinux

[[email protected]  ~]# iptables -F

[[email protected]  ~]# setenforce 0

配置DHCP服务器

[[email protected]  ~]# yum -y install dhcp

[[email protected]  ~]# cat  /etc/dhcp/dhcpd.conf

subnet  192.168.10.0 netmask 255.255.255.0{

    range 192.168.10.100 192.168.10.200;

    next-server 192.168.10.1;  #TFTP服务器地址

    filename "pxelinux.0";   #Bootstrap文件名称

}

[[email protected]  ~]# systemctl restart dhcpd

创建kiskstart文件

kickstart文件可以三种生成方式:

       手动书写

       通过system-config-kickstart图形工具

       anaconda安装程序自动生成

[roo[email protected] ~]# yum  install -y system-config-kickstart

[[email protected]  ~]# system-config-kickstart 启动kickstart图形工具

 

启动后按照自定义生成文件与安装系统界面相同这里不再阐述。

注意:centos7.3如果使用光盘镜像做的yum源会出现下面包无法选择的情况

技术分享

需要修改yum仓库名称为development才可以选择安装包。


[[email protected]  ~]# cat /etc/yum.repos.d/base.repo

[development]     #这个地方修改为development

name=zachary

baseurl=file:///mnt/cdrom

gpgcheck=0


技术分享

根据图形向导生成一个ks.cfg的文件。

安装syslinux软件包

[[email protected] ~]# yum -y install syslinux

 

配置FTP服务器

此步骤可以使用其他类型服务器,比如nfs或者http

#安装ftp服务器

[[email protected]  ~]# yum -y install vsftpd

#配置安装系统所需的软件仓库

[[email protected]  ~]# mkdir -pv /var/ftp/pub/centos/{6,7}

[[email protected]  ~]# mount /dev/sr0 /var/ftp/pub/centos/7

[[email protected]  ~]# mount /dev/sr1 /var/ftp/pub/centos/6

[[email protected]  ~]# mkdir –v /var/ftp/pub/ks

[[email protected]  ~]# mv ks6.cfg ks7.cfg /var/ftp/pub/ks/ks.cfg

[[email protected]  ks]# chmod +r /var/ftp/pub/ks/*  #注意权限

 

注意:在配置完成ftp中的软件仓库后,一定要验证该仓库可用(浏览器查看一下)

TFTP服务器配置

[[email protected] ~]# yum -y  install tftp-server

[[email protected] ~]# cp  /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/

[[email protected] ~]# mkdir –v  /var/lib/tftpboot/{pxelinux.cfg,centos7.3,centos6.9}

[[email protected] ~]# cp -v /var/ftp/pub/centos/7/isolinux/{vmlinuz,initrd.img}  /var/lib/tftpboot/centos7.3/

[[email protected] ~]# cp -v /var/ftp/pub/centos/6/isolinux/{vmlinuz,initrd.img}  /var/lib/tftpboot/centos6.9/

[[email protected]  pxelinux.cfg]# cat default

default menu.c32

timeout 300

menu title  ########## PXE Boot Menu ##########

label centos6.9

  menu label ^Kickstart Inatall CentOS 6.9

  menu default

  kernel centos6.9/vmlinuz

  append ks=ftp://192.168.10.3/pub/ks/ks6.cfg  initrd=centos6.9/initrd.img

label centos7.3

  menu label ^Kickstart Inatall CentOS 7.3

  menu default

  kernel centos7.3/vmlinuz

  append ks=ftp://192.168.10.3/pub/ks/ks7.cfg  initrd=centos7.3/initrd.img

 

注意:如果使用centos6来搭建pxe 服务器,tftpxinetd服务来管理这种非独立服务。

 

设置相关服务启动

[[email protected]  ~]# systemctl enable dhcpd.service

[[email protected]  ~]# systemctl start dhcpd.service

[[email protected]  ~]# systemctl enable tftp.socket

[[email protected]  ~]# systemctl start tftp.socket

[[email protected]  ~]# systemctl enable vsftpd.service

[[email protected]  ~]# systemctl start vsftpd.service

 

测试



技术分享

技术分享

技术分享



 

排错思路


每个服务器在测试过程中的排错都是根据其原来和返回的错误信息来进行错误的排查。PXE也不例外。

1客户端要使用pxe安装操作系统,首先要有一块支持pxea安装的网卡。

2 网卡获取ip地址 。网卡要正确获取ip地址和tftp服务器地址(next-sever)就需要检查dhcp配置选项。

3 正确获取ip地址后,tftp服务无法使用的常见情况有下面几种

       dhcp配置文件中next-server地址与地址不符。

       防火墙和selinux不允许访问tftp,这时可以对其做相应配置。简单方法是直接关闭。

       tftp配置出现错误,可以通过这个目录树结构检查

[[email protected]  tftpboot]# tree

.

├──  centos6.9

│??  ├── initrd.img

│??  └── vmlinuz

├──  centos7.3

│??  ├── initrd.img

│??  └── vmlinuz

├──  menu.c32

├──  pxelinux.0

└──  pxelinux.cfg

    ├── default

 

4 出现菜单文件后,基本上就与tftp没什么太大关系了。这时如果出现错误就是内核选项的参数问题,或者镜像仓库问题。以及ks文件的问题。如果在搭建过程中搭建软件仓库的那个步骤做过详细检查的话,一般这里不会出现大的错误。

问题一般出现在权限问题,路径问题

5 特别提醒:在tftp服务器中的内核文件和ramfs一定要与安装镜像中的一致。

       


本文出自 “Keep simple keep stupid” 博客,请务必保留此出处http://yangzhiheng.blog.51cto.com/11586378/1966365

以上是关于无人值守自动安装linux系统的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统下手把手完成无人值守安装服务

Linux系统下手把手完成无人值守安装服务

cobbler无人值守自动安装

无人值守自动安装linux系统

Linux无人值守自动安装详细配置流程

linux系统服务-PXE批量部署kickstart无人值守