PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行。

要使用kickstart安装平台,包括的完整架构为:Kickstart+DHCP+NFS(http)+TFTP+PXE,从架构可以看出,大致需要安装的服务,例如dhcp、tftp、nfs、kickstart/pxe等。

1) DHCP、TFTP安装

  1. yum install -y dhcp* tftp* xinetd

首先配置tftp服务:

  1. vi /etc/xinetd.d/tftp
  2. service tftp
  3. {
  4. disable = no
  5. socket_type = dgram
  6. protocol = udp
  7. wait = yes
  8. user = root
  9. server = /usr/sbin/in.tftpd
  10. server_args = -u nobody -s /tftpboot
  11. per_source =
  12. cps =
  13. flags = IPv4
  14. }
  15. 只需要把disable = yes改成disable = no即可。

2)TFTP+PXE配置

要实现远程安装系统,首先需要在TFTPBOOT目录指定相关PXE内核模块及相关参数。配置步骤如下:

  1. 要实现远程安装系统,首先需要在TFTPBOOT目录指定相关PXE内核模块及相关参数。配置步骤如下:
  2. mount /dev/cdrom /mnt 挂载本地光盘
  3. #如果系统是6.x,默认tftpboot目录在/var/lib/下,所以centos6.x需要做软链接到/根目录下。
  4. ln -s /var/lib/tftpboot /
  5. cp /usr/share/doc/syslinux/pxelinux. /tftpboot/
  6. (yum install syslinux syslinux-devel -y)
  7. cp /mnt/images/pxeboot/{vmlinuz,initrd.img} ./ 拷贝内核至tftpboot目录下
  8. mkdir -p pxelinux.cfg &&cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
  9. 拷贝isolinux.cfg配置文件重命名,系统安装的时候会根据这个文件的配置启动相应的选项。
  10. 修改pexlinux.cfg/default内容如下:
  11. default linux
  12. prompt
  13. timeout
  14. display boot.msg
  15. F1 boot.msg
  16. F2 options.msg
  17. F3 general.msg
  18. F4 param.msg
  19. F5 rescue.msg
  20. label linux
  21. kernel vmlinuz
  22. append ks=nfs:192.168.0.113:/centosinstall/ks.cfg ksdevice=ens33 initrd=initrd.img
  23. label text
  24. kernel vmlinuz
  25. append initrd=initrd.img text
  26. label ks
  27. kernel vmlinuz
  28. append ks initrd=initrd.img
  29. label local
  30. localboot
  31. label memtest86
  32. kernel memtest
  33. append

解析:192.168.0.113是kickstart服务器,/centosinstall 是nfs共享linux镜像的目录,也是linux存放安装文件的路径,ks.cfg是kickstart主配置文件;设置timeout 10 /*超时时间为10S */;ksdevice=etho代表当我们有多块网卡的时候,要实现自动化需要设置从ens33安装。

TFTP配置完毕,由于是TFTP是非独立服务,需要依赖xinetd服务来启动,启动命令为:

chkconfig    tftp  --level 35 on  && service  xinetd  restart

3) NFS+KICKSTART配置

远程系统安装,客户端需要下载系统所需的软件包,所以需要使用NFS或者httpd把镜像文件共享出来。

  1. mkdir -p /centosinstall
  2. nohup cp -rf /mnt/* /centosinstall &
  3. echo “/centosinstall *(rw,sync)” >>/etc/exports

在NFS配置文件/etc/exports中加入如上语句:/centosinstall    *(rw,sync),表示允许任何主机访问/centosinstall目录,有读写权限。

配置kickstart,可以使用system-kickstart系统软件包来配置,也可以直接拷贝/root/目录下anaconda-ks.cfg 重命名为ks.cfg,并把ks.cfg拷贝至刚共享的/centosinstall目录下,赋权限为chmod 777 ks.cfg

如下我这里采用配置文件内容如下:vi ks.cfg

  1. # Kickstart file automatically generated by anaconda.
  2. install
  3. text
  4. nfs --server=192.168.0.79 --dir=/centosinstall
  5. key --skip
  6. lang zh_CN.UTF-
  7. keyboard us
  8. network --device eth0 --bootproto=dhcp --noipv6
  9. rootpw
  10. firewall --disabled
  11. authconfig --enableshadow --enablemd5
  12. selinux --disabled
  13. timezone Asia/Shanghai
  14. bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
  15. zerombr
  16. clearpart --all --initlabel
  17. part /boot --fstype ext3 --size=
  18. part swap --size=
  19. part / --fstype ext3 --size=
  20. part /data --fstype ext3 --size=--grow
  21. reboot
  22. %packages
  23. @base
  24. @core
  25. @chinese-support

第一步install,以text字符界面,指定nfs共享IP和目录,设置安装后的服务器字符集、网络分配方式、密码;

然后设置防火墙状态,磁盘采用MBR方式引导,然后客户机分区的情况;%packages

后写入客户机系统需要安装的软件包,可以自己定制。更多详细的参数在此就不做过多的说明了,可以进一步学习。

4)在真实环境中,通常我们会发现一台服务器好几块硬盘,做完raid,整个硬盘有等10T,如果来使用kickstart自动安装并分区呢;一般服务器硬盘超过2T,如何来使用kickstart安装配置呢?这里就不能使用MBR方式来分区,需要采用GPT格式来引导并分区。

需要在ks.cfg末尾添加如下命令来实现需求:

%pre
parted  -s  /dev/sdb 
mklabel  gpt
%end

为了实现kickstart安装完系统后,自动初始化系统等等工作,我们可以在系统安装完后,自动执行定制的脚本,需要在ks.cfg末尾加入如下配置:

%post

mount  -t  nfs 192.168.0.79:/centos/init   /mnt

cd  /mnt/ ;/bin/sh  auto_init.sh

%end

5)    
DHCP配置及测试

Pxe+kickstart自动安装系统,需要用到DHCP分配的客户端的IP地址,这里直接上dhcpd.conf配置文件:

ddns-update-style
interim;

ignore
client-updates;

next-server 192.168.0.79;

filename "pxelinux.0";

allow
booting;

allow
bootp;

subnet
192.168.0.0 netmask 255.255.255.0 {

# --- default
gateway

option
routers          192.168.0.1;

option
subnet-mask      255.255.255.0;

range
dynamic-bootp 192.168.0.100 192.168.0.200;

host ns {

hardware
ethernet  00:1a:a0:2b:38:81;

fixed-address
192.168.0.101;}

}

最后重启所有服务,并关闭iptables和selinux,然后找一台新服务器,接入网线与kickstart服务器在一个交换机或通过中继能获取到IP的网络即可。

service    xinetd  
restart

service     nfs   
restart

service     dhcpd 
restart

真实环境需要注意,新服务器跟kickstart最后独立在一个网络,不要跟办公环境或者服务器机房网络混在一起,如果别的机器以网卡就会把它的系统重装成Linux系统。

Kickstart自动化安装平台的更多相关文章

  1. Linux下使用Kickstart自动化安装平台架构

    PXE工作于Client/Server的网络模式.在启动过程中,终端要求服务器分配IP地址,再用TFTP协议下载一个自动启动软件包到内存中执行. 要使用kickstart安装平台,包括完整的架构为:K ...

  2. kickstart+pxe+tftp+ntp(http)自动化安装平台的搭建

    听说过"克隆"吗,对于这个科技术语20年前可能还很陌生,羊可以克隆,通过基因dna序列:机器同样可以克隆通过网络IP! 如下为自动化安装平台: PXE(preboot execut ...

  3. kickstart自动化安装--tftp+nfs+dhcp

    使用kickstart实现Centos 自动化安装 Kickstart自动化安装简介: 规模化:同时装配多台 服务器 自动化 :安装系统,配置各种服务 远程实现:不需要光盘,U盘等安装介质 优势: ( ...

  4. Kickstart 自动化安装配置

    自动化安装案例: 一 ,系统环境 # cat /etc/redhat-release CentOS release 6.6 (Final) #Hostname [root@boot ~]# hostn ...

  5. kickstart自动化安装

    preboot execute environment预启动执行环境--intel开发的技术,计算机可以通过pxe协议从网络引导启动. 工作模式为客户端/服务器端的c/s模式 客户端从远端服务器下载镜 ...

  6. 103、kickstart自动化安装操作系统

    103.1.前言: 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. 常规的办法有: 光盘安装系统===>一个 ...

  7. pxe+kickstart自动化安装

    什么是PXE? PXE(Pre-boot Execution Environment,预启动执行环境)是Intel公司开发的最新技术,工作于Client/Server模式.PXE是一种远程引导方式,要 ...

  8. CentOS7.2下PXE+kickstart自动化安装系统

    一.实验环境 操作系统:CentOS Linux release 7.2.1511 (Core) 网卡地址:192.168.100.147/24 光盘镜像:CentOS-7-x86_64-Minima ...

  9. 好记性不如烂笔头-linux学习笔记2kickstart自动化安装和cacti

    kickstart自动化安装的逻辑梳理 主要是安装tftp nfs dhcp 然后配置kickstart 原来就是先安装tftp 可实现不同机器的文件下载 然后在安装nfs 就是主服务器的文件系统 然 ...

随机推荐

  1. python中使用 C 类型的数组以及ctypes 的用法

    Python 在 ctypes 中为我们提供了类似C语言的数据类型, 它的用途(我理解的)可能是: (1) 与 其他语言(如 C.Delphi 等)写的动态连接库DLL 进行交换数据,因为 pytho ...

  2. springboot shiro 项目前端页面访问问题总结

    1.springboot前端页面默认需要放到指定的目录下才能访问 在/src/main/resource目录下的: /static /public /resources /META-INF/resou ...

  3. C#使用CH341 SPI模块读写SD卡

    SD卡相关CMD命令 ;//卡复位 ; ;//命令9 ,读CSD数据 ;//命令10,读CID数据 ;//命令12,停止数据传输 ;//命令16,设置SectorSize 应返回0x00 ;//命令1 ...

  4. Spark环境准备

    Ubuntu: 1.下载spark-2.2.1-bin-hadoop2.7.tgz,解压即可使用. 2.下载jdk-8u151-linux-x64.tar.gz,解压. 3.执行spark-2.2.1 ...

  5. centos 后台挂起运行python

    用Xshell连接服务器运行python文件,当关闭终端或连接断开后相应的python文件也就不会继续运行了,要达到后台挂起运行就要使用 nohup 命令了. 用法如下: # -u 表示禁止缓存,将结 ...

  6. 为什么HTML中的多个空格或是回车在浏览器上只能显示出一个?

    我们在学习HTML的时候可能书本或是老师会告诉我们一件事,就是在HTML中不管我们在两个文本之间加上多少连续的空格或是回车,到了浏览器里面只能显示出一个来.但是我们从来不知道为什么. 原因很简单,因为 ...

  7. 从Wos文本数据中获取摘要进行分析的一种方法

    namespace 清理数据 { class Program { static void Main(string[] args) { string strDirName = "File&qu ...

  8. Docker安装使用battery historian

    apt-get insatll docker.io battery historian ubuntu下使用 首先要确保是google浏览器,然后用命令行 google-chrome --proxy-s ...

  9. [UE4]让Spline具象化

    接上一个实例 一.在TestSpline蓝图,切换到蓝图构造函数Constrction Script事件中,添加如下代码: 二.别忘记个Add Spline Mesh Component设置Stati ...

  10. TensorFlow实现回归

    数据:fetch_california_housing(加利福尼亚的房价数据) 1.解析解法 import tensorflow as tf import numpy as np from sklea ...