无人值守自动化安装linux系统

linux自动安装系统工作过程介绍:

PXE client 主要和3个不同类型的服务器交互并获取到相关信息,最后才能够自动安装系统。

第一步 PXE Client 与 DHCP Server

如果是物理机,将计算器在BIOS设置中以PXE方式启动。此时计算机会在网络中发送一个广播请求,请求通过DHCP服务器分配一个IP地址等相关信息。DHCP服务器收到客户端的请求并且验证后,它会返回给客户端请求,将IP地址、tftp服务器信息、以及一些配置文件信息告诉客户端以便让客户端继续操作。

第二步 PXE Client 与 tftp Server

客户端收到信息后,接下来会向tftp服务器请求发送系统安装的必需文件,包括pxelinux.0、pexlinux.cfg/default(内核引导文件)、vmlinuz、initrd.img。tftp server 收到客户端的请求后,服务器,BootRom(无盘启动接口)根据从tftp server 下载的安装必需文件后,根据配置文件信息,启动linux安装程序的引导内核。

第三步 PXE Client 与 nfs server

客户端安装完linux内核后,安装程序需要获取你通过什么介质来安装linux,可以通过网络安装,通过NFS,FTP,HTTP等,则此时会初始化网络,然后定位二进制包以及配置文件的位置,接着读取自动应答文件ks.cfg,根据ks.cfg的配置信息获得系统安装包并安装,安装完成后重启的话,记得从BIOS中调整为硬盘启动。

这样的话自动化安装linux系统基本完成了,在这个过程中基本上就是各个服务器的搭建,真正安装系统的时候并不需要选择什么,就像一键安装mysql一样,只要执行一个脚本就好了。

总结来看PXE网络安装系统需要以下几个步骤,部署顺序为:

① 配置NFS服务器,用于存放linux系统的安装文件。

② 配置TFTP服务器,用于提供客户端引导所必须的文件。也可以用web服务器替代,实践过也可以达到效果,但此次实验用TFTP服务器实践。

③配置DHCP服务器,用户给客户端提供IP地址以及其他信息。

④配置kickstart,用于自动应答安装。

⑤使用PXE功能引导客户机安装。

这五步其中前四步骤是在服务器端完成安装,可以放在不同的服务器上,也可以放在同一台服务器上,这里我把服务器端在同一台服务器上,然后用一台客户机实验,当然这些操作在虚拟机上也可以完成,差异性不大。接下来我们细细描述一下各个服务器的搭建安装。

注意!!此次搭建过程全程在虚拟机上完成。

[nfs安装]

配置NFS服务器,用于存放linux系统的安装文件。

将光驱挂载到mnt目录下。或者将iso镜像文件中的内容上传到共享目录下。

挂载完成后,创建了一个/data/sys的目录,准备用于NFS共享。

[[email protected]_2sys]# pwd

/data/sys #共享目录

[[email protected]_2dev]# mount /dev/cdrom /mnt

mount: /dev/sr0 写保护,将以只读方式挂载

将mnt下的内容,拷贝到共享目录下。

[[email protected]_2sys]# cp -a /mnt/* /data/sys/

端口映射的一个工具,在centos7中将portmap改成了rpcbind,功能都没有变化

rpcbind用于对nfs连接动态分配端口

[[email protected]_2 ~]#systemctl restart rpcbind.service

[[email protected]_2 ~]#systemctl restart nfs.service

[[email protected]_2 kickstart]# showmount -e 192.168.131.132 #检查共享目录

Export list for 192.168.131.132:

/data/sys 192.168.131.0/24

[tftp安装]

安装tftp服务器,直接yum安装tftp-server*,安装tftp后会安装一个xinetd包的依赖。因为tftp是由xinted管理的。

对tftp server的操作,只需要修改tftp配置文件:

[[email protected]_2 ~]# 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 #tftp文件存放目录

disable          = no  ==》讲YES改为no

per_source        = 11

cps             = 100 2

flags           = IPv4

}

[配置PXE linux]

[[email protected]_2isolinux]#  sed -i ‘s#keepalive=0#keepalive=1#g’yum.conf

修改这个参数,可以在yum安装后将包保存下来。

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

[[email protected]_2pxeboot]# rpm -ql syslinux|grep /pxelinux.0

/usr/share/syslinux/pxelinux.0

[[email protected]_2pxeboot]# cp `rpm -ql syslinux|grep /pxelinux.0`  /var/lib/tftpboot/

同时将系统安装目录中images/pxeboot/{ initrd.img,vmlinuz}拷贝到tftpboot下

[[email protected]_2 pxeboot]#cp initrd.img  vmlinuz  /var/lib/tftpboot/

这个就是内核引导的配置文件

[[email protected]_2 isolinux]#cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

这里要修改一下default文件,方便之后的安装

我仅仅将有修改的部分贴出来了,供大家参考一下,如果有需要可以自行去查看一下。

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

default linux

prompt 1

timeout 600

......

labellinux

menu label ^Install CentOS 7

kernel vmlinuz

#  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64quiet

append ks=http://192.168.131.132/ks.cfg  initrd=initrd.img

# appendks=nfs://192.168.131.132:/data/sys/kickstart/ks.cfg initrd=initrd.img

这里有2个选择,可以用nfs的方式,也可以用http的方式,我把2种修改方法都写出来了。

【default启动文件】

[[email protected]_2 /]# cd /var/lib/tftpboot/

[[email protected]_2 tftpboot]# ll

总用量 42672

-r--r--r--. 1 root root 38508192 7月  21 10:02initrd.img

-rw-r--r--. 1 root root    26771 7月  21 10:11pxelinux.0

drwxr-xr-x. 2 root root       36 7月  21 13:09pxelinux.cfg

-r-xr-xr-x. 1 root root  5156528 7月  21 10:02vmlinuz

[[email protected]_2 tftpboot]# cd pxelinux.cfg/

[[email protected]_2 pxelinux.cfg]# ll

总用量 8

-rw-r--r--. 1 root root 3095 7月  21 11:31default

[安装dhcp服务器]

直接yum安装,修改配置文件。

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

ddns-update-stylenone;

ignoreclient-updates;

allow booting

allow bootp

default-lease-time 21600;

max-lease-time 43200

option routers 192.168.131.2

subnet 192.168.131.0 netmask 255.255.255.0 {

range fromdynamic-bootp 192.168.131.140 192.168.131.150;

next-server 192.168.131.132;

filename"/data/sys/kickstart/ks.cfg";

next-server192.168.131.132;

filename "pxelinux.0" #这里需不需要写绝对路径也不确定,可以写也可以不写,看实际情况

}

修改完配置文件重启一下。

[kickstart]

最后一步配置一下ks.cfg文件,不知道大家注意过没有,在虚拟机上安装完linux系统后,在root的家目录下有一个anaconda-ks.cfg文件,这就是本机安装的配置文件,本机安装的记录,是否图形化,磁盘分区啊,初始化网卡,创建root用户及密码都在此这里,所以这一次我们用这个配置文件当作ks配置文件安装。

[[email protected]_2 ~]# mkdir -p /data/sys/kickstart

[[email protected]_2 ~]# cp anaconda-ks.cfg/data/sys/kickstart/ks.cfg

[[email protected]_2 kickstart]# chmod 644 ks.cfg #注意,不要设置成777类似的权限,可能会获取失败。

Ks文件是系统安装时的信息,PXE client安装系统时会按照这个配置文件进行安装。

[[email protected]_2 kickstart]# cat ks.cfg

#version=DEVEL

# System authorization information

auth --enableshadow --passalgo=sha512

install

nfs --server=192.168.131.132 --dir=/data/sys

# Use graphical install

text

# Run the Setup Agent on first boot

firstboot --enable

......
  到这里基本就完成了,接下来就自定义安装一个虚拟机可以尝试安装了。

这里是我在安装的时候碰到的一个问题,拿到这里分析一下,首先排除防火墙之类的问题,因为我已经全关了,根据提示客户端已经获取到了IP地址,连接到了TFTP,发现文件不存在,这里就是上面我提到的那个pexlinux.0文件需不需要写绝对路径的文件,我把路径去掉再重启就安装成功了。

关于ks.cfg文件,可以是像我这样直接复制原来存在的文件,当然也可以自行配置,相当于将你在系统安装时所碰到的要自行选择的信息,比如字符集,分区,添加用户之类,全部集中到ks.cfg中,客户端安装的时候只需要根据ks配置文件就行,一路操作下来直到安装完成。

整个过程大体如此,具体细节上的问题也并非特别了解,有写的不好的地方,请大家在评论中指出来,一起学习,一起进步!

时间: 2024-10-02 16:47:43

无人值守自动化安装linux系统的相关文章

CentOS6.9上安装cobbler2.6实现自动化安装Linux系统

CentOS6.9上安装cobbler2.6实现自动化安装Linux系统 cobbler可以批量部署Linux系统,并实现无人值守安装. cobbler依赖的服务:dhcp,tftp,http,pxe,kickstart 服务对应的端口号为dhcp--67,68;tftp--69;http--80;cobbler--25151 1.环境准备:最小化安装centos6.9mini,配置固定IP和本地yum源,关闭防火墙和selinux iptables -F setenforce 0 chkcon

linux基础学习第二十一天之自动化安装linux系统(kickstart)

内容: 利用kickstart进行自动化安装linux系统 制作光盘.U盘启动盘 一.系统自动化安装: 1.anaconda 由前面的学习我们知道,系统的启动流程: bootloader-->kernel(initramfs)-->rootfs-->/sbin/init 所以,bootloader完全可以由光盘来进行引导,在引导的过程中在借助kickstart来进程自动安装 Anaconda是RedHat.CentOS.Fedora等Linux的安装管理程序.它可以提供文本.图形等安装管

无人值守自动安装linux系统

PXE基本原理概述 什么是PXE? PXE:pre-boot executionenvironment预启动执行环境 由intel公司开发的技术 工作于C/s的网络模式 Client通过网络从server下载映像,并通过网络启动操作系统 应用场景 liveOS OS安装 PXE基本原理 1 Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC 地址),如果合法则返回Client的IP 地址,同时将启动文件pxel

cobbler无人值守批量安装Linux系统

本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光盘安装系统 1.4.1 生成distro 1.4.2 提供kickstart文件 1.4.3 提供profile 1.4.4 开始安装 1.5 比pxe+kickstart好的地方 1.6 让新机器自动执行脚本 1.1 pxe安装系统 pxe的大致过程如下图. 其中pxelinux.0为bootlo

简单搭建PXE无人值守自动化安装系统

PXE环境概述 在公司进行批量部署服务器安装方法: Kickstart (PXE+DHCP+TFTP+HTTP) 或 Cobbler 批量装机软件介绍 Kickstart和Cobbler. ??Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数:如果没有找到合适的参数,便会弹出对话框让安装者手工填写

使用kickstart、dchp、tftp、http,实现RHEL 5.5操作系统的无人值守自动化安装

////使用kickstart.dchp.tftp.http,实现RHEL 5.5操作系统的无人值守自动化安装//Server IP:192.168.10.178 操作系统:Red Hat Enterprise Linux Server release 5.5////具体步骤如下: 1. 安装.配置DHCP服务 1.1 使用如下命令检查dhcp是否安装,rhel5系统默认安装dhcp-3.0.5-23.el5 [[email protected] ~]# rpm -qa | grep dhcp

自动化运维平台之系统自动化安装Cobbler系统使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

PXE网络自动化安装Linux

在工作环境中,批量安装.无键盘鼠标.无显示器.无光驱安装操作系统都需要采用非交互式安装. PXE安装就是可以通过网络自动加载系统内核,并启动安装程序,再配合kickstart配置文件,完成无交互式安装的方式. 一.基本概念 DHCP 动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作在67号端口,主要用途是给网络中的设备自动分配IP地址. TFTP TFTP(Trivial File Transfer

自动化安装linux

个人使用的linux的安装没有太多难度,但是一旦到生产环境内,那种随性而装系统的,将会给服务器管理员带来极大的麻烦,这里需要对生产系统进行一定的定制,定制取决于公司的计算机的类型,公司的计算机往往都是一个类型一个型号.这里定制就很方便了,把分区都设置一样,这样可以批量部署大批的机器. 一 linux安装原理 回忆一下手动安装一个系统的步骤:1选择语言,2选择键盘布局,3分配分区,4选择安装类型,5选择额外的包,6选择时区,7设置root密码.安装时候的主观感受是配置一步系统执行一步,其实不然,等