运维之系统服务篇------ 4.批量装机环境 配置PXE引导 kickstart自动应答

Posted ghostwritten

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维之系统服务篇------ 4.批量装机环境 配置PXE引导 kickstart自动应答相关的知识,希望对你有一定的参考价值。

FIVE DAY

知识点:复习DNS----批量装机环境-----配置PXE引导---------Kickstart自动应答

随笔录:

Nameserver---基本运用前三个

镜像不是光盘

可以挂载光驱,但真机没有

Mount -o loop /dev/cdrom /var/www/html/

Umount -a卸载所有挂载的设备

Vim /etc/yum.repos.d/repo.conf

Vim /etc/yum.conf  改变全局配置

Gpgcheck=0

DHCP四次会话以广播地址发送-------ip是租用来的花钱,租约有期限

Usr/syslinux/pxelinux.0 /var/lib/tftpboot

-vesamenu.c32----图形菜单--

Splash.png   ---背景图片

Pxelinux.cfg   --配置

Menu ---控制显示界面

Label linux 显示安装行目录

Append 加载

Pxeliunx。0----配置文件isolinux。Cfg-----菜单labellinux

Ls/boot/vmlinuz-3 5M

Ls /boot/initramfs-3  #删除进不了

Initrd 镜像内容:包括insmod模块管理工具

Ls /lib/modules/3,,,,,kernel/drivers/net/ethernet

Kickstart---------%post- ---#安装后的自动化操作

正式笔记:

复习:DNS域名解析服务器 ——

    为客户机提供“域名 <----> IP地址”信息

软件包(S):bind、bind-chroot

配置文件(S):/etc/named.conf ==> /var/named/地址库文件

软件包(C):bind-utils、命令程序(ping、firefox、wget)

配置文件(C):/etc/resolv.conf

DNS基本配置--/etc/named.conf:

options 

directory  "存放地址库文件的默认目录路径";

;

zone  "DNS区域名字" 

type  master;

file  "地址库文件的文件名";

;

DNS基本配置--/var/named/地址库文件:

$TTL  地址库记录的默认有效期(1D)

@ IN SOA @ 管理邮箱 (

.. ..

)

@NS本区域的DNS服务器的合法域名.

本区域DNS服务器的站点名 A本区域DNS服务器的IP地址

站点1的站点名称A站点1的IP地址

站点2的站点名称A站点2的IP地址

.. ..

语法检查工具、排错:

named-checkconf

named-checkzone  区域名   地址库文件路径

less  /var/log/messages

DNS轮询(同一个FQDN ==》多个IP地址):

站点名称 A IP地址1

站点名称 A IP地址2

站点名称 A IP地址3

.. ..

 

泛域名解析(多个任意站点名 ==》同一个IP地址)

* A IP地址

子域授权(告诉父DNS两个信息:子域名称、子DNS的地址):

修改父DNS的地址库文件,添加两行 ——

子域名称.NS子DNS的FQDN.

子DNS的FQDN.A子DNS的IP地址

递归式的DNS服务器:为客户机查询非本机管理的域名

迭代式的DNS服务器(子域授权+禁止递归):不愿意为客户机查询非本机管理的域名,但是对于子域内的站点,当前DNS会为客户机反馈子域授权信息

缓存DNS ——

# yum  -y  install  bind  bind-chroot

# vim  /etc/named.conf

options 

forwarders  公共DNS1; 公共DNS2;  ;

;

# systemctl  restart  named

PXE批量、全自动装配 —— 安装系统、配置系统

装机条件:

一.PXE批量装机环境搭建(基础篇)

PXE---Preboot execution Environment:预启动执行环境;可用于远程安装

工作模式:PXE client 集成在网卡启动芯片。引导时调入内存执行,获取PXE server配置,显示菜单,用户远程。

PXE组件:

DHCP服务:分配IP地址,定位引导程序

TFTP服务:提供引导程序下载

HTTP服务(FTP/NIS),提供yum安装源

客户机网卡必须支持PXE协议域主板支持从网卡启动


第一步: 安装素材(YUM源的准备与DHCP)-------防火墙+selinux关闭

1.在CentOS真机上(192.168.4.254)快速准备YUM仓库 ——

服务端(仓库),提供软件包:

(1)准备挂载点

# mkdir /var/www/html/rh7dvd

# mkdir /var/www/html/cos7dvd

(2)挂载镜像资源

# vim /etc/fstab

/ISO/CentOS-7-x86_64-DVD-1611.iso /var/www/html/cos7dvd iso9660 defaults 0 0

/ISO/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rh7dvd    iso9660  defaults 0 0

# mount -a

(3)启动Web服务

# systemctl  restart  httpd

# firefox  http://192.168.4.254/rh7dvd/

# firefox  http://192.168.4.254/cos7dvd/

客户端192.168.4.7(yum),使用软件包:

# rm  -rf  /etc/yum.repos.d/*.repo

# yum-config-manager  --add  http://192.168.4.254/cos7dvd

# vim  /etc/yum.conf

gpgcheck=0

# yum  repolist


​     http://192.168.4.254/rh7dvd/​

2.DHCP服务器

(分配IP地址+子网掩码+广播地址+默认网关+DNS服务器地址+PXE引导设置(TFTP地址与引导文件名)

SHCP四次会话:discovery+offer+requery+ack

概念:

租期(单位ie秒)------作用域:客户机网段-------------地-址池:分配地址范围

(1)装包 dhcp

(2)配置 vim /etc/dhcp/dhcpd.conf

subnet 192.168.4.0 netmask 255.255.255.0        #声明网段

        range 192.168.4.10 192.168.4.200;         #IP范围

        next-server 192.168.4.7;                 #指定PXE服务器

        filename "pxelinux.0";                   #引导文件名

Svr7#netstat -anqu |grep dhcpd              #确认结果

(3)起服务 dhcpd (

#systemctl restart dhcpd

!!! 在客户机测试dhcpd服务是否能自动获取IP地址

PC207# dhclient  -d  eth0

如果有冲突服务dnsmasq,需要干掉

Pc207#killall -9  dnsmasq



第二步 PXE引导配置

TFTP Trivial file Transfer Protocol (小文件传输协议+UDP+69)

默认资源目录:/var/lib/tftpboot

扩展:若设成开机启动,需要改一下 /etc/xinetd.d/tftp 配置文件,将disable设成no 

 

1. Svr7启用 tftp 服务

yum  -y install  tftp-server

# systemctl restart tftp

# ls  /var/lib/tftpboot   【TFTP资源目录】

2. 提供用来启动客户机的引导文件pxelinux.0、内核和初始镜像)

# yum -y install syslinux  #该软件包用来提供pxelinux.0启动程序

[root@svr7 ~]# rpm  -ql  syslinux  |  grep pxelinux.0

# cp  /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/    #将启动程序转入TFTP默认路径下为了传输给客户端。

扩展:pxelinux.0是一个bootloader,类似于grub,通过它来load kernel,我们可以在它的配置文件中指定内核的位置和内核的启动参数 安装及配置都在 /tftpboot 目录下操作。pxelinux.0是syslinux的一个文件,可以从 syslinux-/core/pxelinux.0

 


3.部署操作系统引导文件即rhel7(linux内核与初始镜像文件)

# mkdir /var/lib/tftpboot/rhel7

# cd  /var/lib/tftpboot/rhel7

# wget http://192.168.4.254/rh7dvd/isolinux/vmlinuz#

扩展:vmlinuz是可引导的、压缩的内核,vm”代表“Virtual Memory虚拟内存;位于/boot/vmlinuz,它一般是一个软链接

vmlinuz的建立有两种方式

make zImage“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot/vmlinuz”产生zImage适用于小内核的情况,它的存在是为了向后的兼容性。

make bzImage创建,然后通过cp /usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz”产生。bzImage是压缩的内核映像。

# wget http://192.168.4.254/rh7dvd/isolinux/initrd.img

initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态;initrd映象文件是使用mkinitrd创建的命令是RedHat专有。

4. 配置引导菜单default、图形支持文件--模块+背景图)

# wget ​http://192.168.4.254/rh7dvd/isolinux/vesamenu.c32  #图形菜单

# wget ​http://192.168.4.254/rh7dvd/isolinux/splash.png #背景图片

mkdir /var/lib/tftpboot/pxelinux.cfg      ##存放客户端的配置文件

# wget  http://192.168.4.254/rh7dvd/isolinux/isolinux.cfg  -O /var/lib/tftpboot/pxelinux.cfg/default

# vim /var/lib/tftpboot/pxelinux.cfg/default 

.. ..

label linux

  menu label ^Install Red Hat Enterprise Linux 7.2

  kernel rhel7/vmlinuz

  append initrd=rhel7/initrd.img inst.stage2=http://192.168.4.254/rh7dvd quiet

 

5.客户机检查 TFTP 服务是否可用

# yum  -y  install  tftp

# tftp  TFTP服务器地址  -c  get  文件名

#tftp 192.168.4.7 -c get pxelinux.0

 

PXE客户机从开机以后到安装系统的过程 ——

Yum源(网站资源在这下载)------由真机远程操控服务器(中介)(批量装机环境)----------客户机

1)加载网卡芯片里的 PXE Client 程序

2)PXE Client 向DHCP服务器获知 IP地址、TFTP服务器地址、启动文件名

3)从TFTP服务器下载启动文件 pxelinux.0

4)由 pxelinux.0 接管控制权

5)由 pxelinux.0 从TFTP服务器下载配置文件 pxelinux.cfg/default

6)由 pxelinux.0 根据 default 配置在客户机显示启动菜单

7)根据用户选择(装rhel7),去下载内核 vmlinuz、配套的 initrd.img

8)在内存里加载 initrd.img、vmlinuz

9)由 vmlinuz 接管控制权

10)由 vmlinuz 根据inst.stage2=给定的地址下载RHEL7的安装程序

    !!!! 给定的地址/LiveOS/squashfs.img     #与lickstart区别开来ks=http://192.168.4.254/ks-rhel.cfg

11)把 squashfs.img 释放到内存里运行

12)由 sqaushfs.img 提供安装向导程序(选语言、。。。)

13)进入正常的安装过程

PXE客户机从开机以后到安装系统(自动应答)的过程 ——

1)

.. ..

三.PXE+KICKSTART(高级实战篇)

1.DHCP服务器

(分配IP地址+子网掩码+广播地址+默认网关+DNS服务器地址+PXE引导设置(TFTP地址与引导文件名)

SHCP四次会话:discovery+offer+requery+ack

概念:

租期(单位ie秒)------作用域:客户机网段-------------地-址池:分配地址范围

(1)装包 dhcp

(2)配置 vim /etc/dhcp/dhcpd.conf

subnet 192.168.4.0 netmask 255.255.255.0        #声明网段

        range 192.168.4.10 192.168.4.200;         #IP范围

        next-server 192.168.4.7;                 #指定PXE服务器

        filename "pxelinux.0";                   #引导文件名

Svr7#netstat -anqu |grep dhcpd              #确认结果

(3)起服务 dhcpd (如果有冲突服务dnsmasq,需要干掉killall -9  dnsmasq

#systemctl restart dhcpd

!!! 在客户机测试dhcpd服务是否可用

PC207# dhclient  -d  eth0

2. PXE引导配置

TFTP Trivial file Transfer Protocol (小文件传输协议+UDP+69)

默认资源目录:/var/lib/tftpboot

扩展:若设成开机启动,需要改一下 /etc/xinetd.d/tftp 配置文件,将disable设成no 

 

1. Svr7启用 tftp 服务

yum  -y install  tftp-server

# systemctl restart tftp

# ls  /var/lib/tftpboot   【TFTP资源目录】

2. 提供用来启动客户机的引导文件pxelinux.0、内核和初始镜像)

# yum -y install syslinux  #该软件包用来提供pxelinux.0启动程序

# cp  /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/    #将启动程序转入TFTP默认路径下为了传输给客户端。

扩展:pxelinux.0是一个bootloader,类似于grub,通过它来load kernel,我们可以在它的配置文件中指定内核的位置和内核的启动参数 安装及配置都在 /tftpboot 目录下操作。pxelinux.0是syslinux的一个文件,可以从 syslinux-/core/pxelinux.0


3.部署操作系统引导文件即rhel7(linux内核与初始镜像文件)

# mkdir /var/lib/tftpboot/rhel7

# cd  /var/lib/tftpboot/rhel7

# wget http://192.168.4.254/rh7dvd/isolinux/vmlinuz#

扩展:vmlinuz是可引导的、压缩的内核,vm”代表“Virtual Memory虚拟内存;位于/boot/vmlinuz,它一般是一个软链接

vmlinuz的建立有两种方式

make zImage“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot/vmlinuz”产生zImage适用于小内核的情况,它的存在是为了向后的兼容性。

make bzImage创建,然后通过cp /usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz”产生。bzImage是压缩的内核映像。

# wget http://192.168.4.254/rh7dvd/isolinux/initrd.img

initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态;initrd映象文件是使用mkinitrd创建的命令是RedHat专有。

4. 配置引导菜单default、图形支持文件--模块+背景图)

# wget ​http://192.168.4.254/rh7dvd/isolinux/vesamenu.c32  #图形菜单

# wget ​http://192.168.4.254/rh7dvd/isolinux/splash.png #背景图片

mkdir /var/lib/tftpboot/pxelinux.cfg      ##存放客户端的配置文件

# wget  http://192.168.4.254/rh7dvd/isolinux/isolinux.cfg  -O /var/lib/tftpboot/pxelinux.cfg/default #启动pxelinux.0配置文件

# vim /var/lib/tftpboot/pxelinux.cfg/default 

.. ..

label linux

  menu label ^Install Red Hat Enterprise Linux 7.2

  kernel rhel7/vmlinuz

  append initrd=rhel7/initrd.img ks=http://192.168.4.254/ks-rhel7.cfg  #


5.kikstart无人值守即自动应答

因此要预订自动应答文件------

设置好各项参数免交互

添加%post脚本安装系统后需求脚本程序运行

有两种方法:

第一:找一台客户机获取应答文件包含各项参数。在/root/anaconda-ks.cfg

第二种:

Svr7操作

1.安装system-config-kickstart工具

2. yum -y nstalll system-config-kickstart 

3.【调整仓库ID为development】

[development]

#name=rh7dvd

name =Red Hat Enterprise Linux 7

baseurl = http://192.168.4.254/rh7dvd/

gpgcheck =0

~            

4. system-config-kickstart           #打开图形化配置系统参数-----超连接

保存为/root/ks-rhel7.cfg至/root/

5,应答文件微调整 (大部分图形化已设置好)

删除掉随模板机配置残留的不可用仓库记录(比如以repo --name开头的Server-HighAvailability、Server-ResilientStorage、autopart等行)

1. [root@svr7 ~]# vim  /root/ks-rhel7.cfg

2. install                                                  //安装基本信息设置

3. xconfig  --startxonboot

4. keyboard --vckeymap=cn --xlayouts=cn

5. rootpw --iscrypted $1$.48kBNVL$e.Ym0L/RzkJonYwbg9Brq1

6. timezone Asia/Shanghai

7. url --url="http://192.168.4.254/rh7dvd"                  //安装源设置

8. lang zh_CN

9. firewall --disabled

10. #repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability

11. #repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage

12. #autopart --type=lvm                                      //分区设置

13. zerombr

14. clearpart --all --initlabel

15. part /boot --fstype="xfs" --size=200

16. part swap --fstype="swap" --size=2000

17. part / --fstype="xfs" --grow --size=1

18. .. ..

19. %post --interpreter=/bin/bash                          //安装后脚本设置

20. echo  [rhel7]

21. name = Red Hat Enterprise Linux 7.2

22. baseurl = http://192.168.4.254/rh7dvd

23. gpgcheck = 0  >  /etc/yum.repos.d/rhel7.repo

24. %end

25. 

26. %packages                                              //软件包设置

27. @^graphical-server-environment

28. @base

29. @core

30. @desktop-debugging

31. @development

32. .. ..

33. initial-setup

34. initial-setup-gui

35. -NetworkManager

36. -NetworkManager-team

37. .. ..

38. 

39. %end


6.将应答文件部署在客户机可下载的位置

客户端pc207~#scp root@192.168.4.7:/root/ks-rhel7.cfg /var/www/html/

 

7.真机新建虚拟机进行检测---PXE引导+无人值守自动安装


以上是关于运维之系统服务篇------ 4.批量装机环境 配置PXE引导 kickstart自动应答的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维之cobbler安装centos7.3

自动化运维之-PXE实现系统批量自动安装

自动化运维之详细部署安装Ansible服务(超简单)

Linux运维之道之ENGINEER1.4(shell脚本基础)

自动化运维之Cobbler自动化部署安装操作系统

自动化运维之 Cobbler 自动化部署