redhat linux7制作ks,Redhat 7 配置Kickstart自动化部署多种系统

使用kickstart自动化部署多种系统,我想到的有两种场景,一种适合于日常运维,当机房上架个别新增的服务器时,根据不同的用途需求,通过一个多系统的启动菜单,输入相应的操作系统名称,即可自动化部署对应的操作系统。例如我在网上看到如下图这样的方案:

9b14436da812a085025ff241ef271ed3.png

但是在第二种场景即系统集成项目中,如果同时要安装50台、100台的话,每台都要去输入,那也不太实际。系统集成项目通常会遇到服务器数量较多、且不同的项目对操作系统的需求不同的情况,如果准备一台Kickstart一次只是推送一种操作系统的自动化部署,免去了输入的尴尬,但是又具备自动化部署多种系统的能力,只要略作改动,就能摇身一变切换成推送另一种系统,这样就能灵活地适应不同的项目需求了,本文要介绍的便是这种场景的自动化部署。关于Kickstart、PXE的原理性的说明网上有很多资料,在此不再赘述,直接单刀直入进入部署配置环节。

一、测试环境

主机名:KSserver

操作系统:Red Hat Enterprise Linux Server release 7.2 (Maipo)最小化安装

IP地址:192.168.10.11

安装的服务:DHCP服务、tftp服务、PXE服务、vsftpd服务、autofs服务、kickstart服务

防火墙与SELinux:关闭

准备的介质:(1)rhel-server-7.2-x86_64-dvd.iso、(2)rhel-server-6.5-x86_64-dvd.iso

二、安装配置DHCP服务

1、[root@KSserver ~]#yum install -y dhcp

2、[root@KSserver ~]#systemctl start dhcpd

3、[root@KSserver ~]#systemctl enable dhcpd

4、[root@KSserver ~]#cat /etc/dhcp/dhcpd.conf# DHCP Server Configuration file.

#   see /usr/share/doc/dhcp*/dhcpd.conf.example

#   see dhcpd.conf(5) man page

default-lease-time 600;

max-lease-time 7200;

ddns-update-style interim;

ignore client-updates;

allow booting;

allow bootp;

subnet 192.168.10.0 netmask 255.255.255.0 {

option routers 192.168.10.254;

option subnet-mask 255.255.255.0;

range dynamic-bootp 192.168.10.100 192.168.10.200;

next-server 192.168.10.11;

filename "pxelinux.0";

}

5、[root@KSserver ~]#systemctl restart dhcpd

三、安装配置tftp服务和PXE服务

1、[root@KSserver ~]#yum install -y tftp-server syslinux

2、[root@KSserver ~]#systemctl start tftp

3、[root@KSserver ~]#systemctl enable tftp

4、[root@KSserver ~]#vi /etc/xinetd.d/tftp

0bde76cad03c5c0f918fc303b59a8628.png

5、[root@KSserver ~]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

6、[root@KSserver ~]#mount /dev/cdrom /mnt

7、[root@KSserver ~]#cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot

8、[root@KSserver ~]#cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot

9、[root@KSserver ~]#cp /mnt/isolinux/*.msg /var/lib/tftpboot

10、[root@KSserver ~]#mkdir /var/lib/tftpboot/pxelinux.cfg

11、[root@KSserver ~]#cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

12、[root@KSserver ~]vi /var/lib/tftpboot/pxelinux.cfg/defaultdefault RH72 #控制默认从哪个label启动

timeout 50  #显示时间5秒

a0a2e737c71d2c95d14b46e3dd1f579a.png

四、安装vsftpd服务

1、[root@KSserver ~]yum -y install vsftpd

2、[root@KSserver ~]systemctl start vsftpd

3、[root@KSserver ~]systemctl enable vsftpd

五、安装配置autofs服务

1、[root@KSserver ~]yum -y install autofs

2、[root@KSserver ~]systemctl start autofs

3、[root@KSserver ~]systemctl enable autofs

4、[root@KSserver ~]mkdir /data

5、[root@KSserver ~]ll /data

3fe466893ef06b94117ad21bc4bb2f3b.png

6、[root@KSserver ~]echo "/var/ftp/pub /etc/auto.ftp" >> /etc/auto.master

7、[root@KSserver ~]cat /etc/auto.ftp

cbea1bde94e47a4b1d54b2130a61a351.png

8、[root@KSserver ~]df -ah

6eac029d684f307bf640c13e65cc2adf.png

五、安装配置kickstart服务

1、[root@KSserver ~]yum -y install system-config-kickstart

2、准备RH72_ks.cfg和RH65_ks.cfg,分别用于RedHat7.2和Redhat6.5的自动化部署,放在FTP的根目录下,确保可以通过FTP访问到,其中RH72_ks.cfg的内容如下:

[root@KSserver ~]vi /var/ftp/RH72_ks.cfg# Kickstart file automatically generated by anaconda.

#version=DEVEL

# Install OS instead of upgrade

install

#key --skip

# Use network installation

url --url="ftp://192.168.10.11/pub/RH72"

#use graphical install

graphical

lang en_US.UTF-8

keyboard us

timezone --utc Asia/Shanghai

#Network informaton

network --onboot yes --device eth0 --bootproto dhcp --noipv6

# Root password

rootpw p@ssw0rd

# Firewall configuration

firewall --disabled

#SElinux configuration

selinux --disabled

# System authorization information

authconfig --enableshadow --passalgo=sha512

# System bootloader configuration

bootloader --location=mbr

# The following is the partition information you requested

# Note that any partitions you deleted are not expressed

# here so unless you clear all partitions first, this is

# not guaranteed to work

#clearpart --none

firstboot --disable

logging --level=info

# Clear the Master Boot Record

zerombr

#Clear all partion

clearpart --all --initlabel

# Disk partitioning information

part /boot --fstype=ext4 --size=200

part swap --size=1024

#part / --fstype=ext4 --grow --size=20000

part pv.01 --size 20480 --grow

volgroup vg01 pv.01

logvol / --fstype=ext4 --vgname=vg01 --size=10240 --name=lv_root

logvol /var --fstype=ext4 --vgname=vg01 --size=10000 --name=lv_var

reboot

%packages --nobase

@core

%end

六、测试自动化部署RedHat 7.2

361e3dcdb49e3d4f44bb7c6e2a15ece5.png

4b62ca0e78b57c21b3e18a45944343e9.png

33168e94429567ca3786e327517b99d1.png

4096081e009d44529ac6ee5b657bc1ed.png

七、测试自动化部署RedHat 6.5

目前我们配置的kickstart默认只提供RedHat7.2的自动化部署,但是从上文也可以看到我也做好了提供Redhat 6.5的相关准备,怎么使用呢?其实很简单,只要略作修改,就可以变身为提供RedHat 6.5自动化部署。修改的地方如下:

1、修改default文件,将第一行的default RH72改为default RH65,这样默认就从default文件的label RH65启动,也就是默认提供RedHat 6.5的自动化部署了。

[root@KSserver ~]vi /var/lib/tftpboot/pxelinux.cfg/default

default RH65

2、但是这时启动引导文件还是Redhat7.2的,必须将原来tftpboot目录中适用于Redhat7.2的文件转移走,拷贝适用于RedHat6.5的文件进来

[root@KSserver ~]mv /var/lib/tftpboot/* /var/lib/RH72

[root@KSserver ~]cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

[root@KSserver ~]cp /var/ftp/pub/RH65/p_w_picpath/pxeboot/initrd.img /var/lib/tftpboot

[root@KSserver ~]cp /var/ftp/pub/RH65/p_w_picpath/pxeboot/vmlinuz /var/lib/tftpboot

[root@KSserver ~]cp /var/ftp/pub/RH65/isolinux/*.msg /var/lib/tftpboot

[root@KSserver ~]cp -r /var/lib/RH72/pxelinux.cfg /var/lib/tftpboot

3、进行测试,成功自动化部署Redhat 6.5

fc4fce45e0ebbc659401374a321f3864.png

7482bf511444d18b2a33417d11cde895.png

3475e93bd598859188cc27dbfb911ef3.png

4、以后如果要切换成自动化部署Redhat7.2,那么把default文件的第一行修改成default RH72后,只要两条命令把RH65的启动引导文件转移走、把RH72的转移进来,就搞定了。

[root@KSserver ~]mv /var/lib/tftpboot/*  /var/lib/RH65/

[root@KSserver ~]mv /var/lib/RH72/*  /var/lib/tftpboot/

八、兼容UEFI启动方式

以上方式适用于旧版bios(Legacy)的启动方式,如果服务器使用了UEFI的启动方式,则略有不同,PXE Server的配置方法如下:

1、复制系统介质里EFI的启动文件 cp /EFI/BOOT/*  /var/lib/tftpboot/ 、cp images/pxeboot/*   /var/lib/tftpboot/

2、修改grub.cfg的内容,vi /var/lib/tftpboot/grub.cfg,将 install RedHat Enterprise Linux下的linuxefi行及initrdefi行修改如下:

linuxefi /vmlinuz ks="ftp://192.168.10.11/RH72_ks.cfg " nofb text biosdevname=0 ksdevice=bootif

initrdefi /initrd.img

3、修改dhcp.conf,将filename 从pxelinux.0改为BOOTX64.EFI

4、修改cfg应答文件,分区需要增加一行part /boot/efi --fstypefi --size=200

5、重启tftpd、dhcpd服务

6、若使用虚拟机测试,可在虚拟机的配置文件中增加一行 firmware = "efi"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值