kickstart批量安装Linux 7.6

kickstart无人值守方式安装Oracle Linux 7.6

本文目录如下

下载镜像文件可以通过nfs、ftp、http等服务,本文通过http服务传输镜像文件。
下面部分内容来自于网络

  1. kickstart架构介绍。

  2. 安装kickstart需要依赖服务软件包。

  3. 拷贝需要安装系统ISO所有文件到http服务目录。

  4. 配置tftp相关配置,以及拷贝启动文件。

  5. 配置无人值守启动菜单。

  6. 配置dhcp服务器。

  7. 编写kickstart配置文件。

  8. 启动所有服务,并进行安装

1. 架构介绍

  1. PXE客户端发送UDP广播请求

PXE 客户端从自己的PXE网卡启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向本网络中的DHCP服务器索取IP。

  1. DHCP服务器提供信息

DHCP服务器收到客户端的请求,验证是否来至合法的PXE 客户端的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。

  1. PXE客户端请求下载启动文件

客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。

  1. TFTP服务器响应客户端请求并传送文件

当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM由TFTP通讯协议从tftp服务器 下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。

  1. 请求下载自动应答文件

客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

  1. 客户端安装操作系统

将ks.cfg文件下载回来后,通过该文件找到http镜像,并按照该文件的配置请求下载安装过程需要的软件包。

http镜像和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。

安装完成后,将提示重新引导计算机。

2. kickstart配置介绍

kickstart服务器可以是windows或Linux,本文介绍Linux下配置kickstart服务器,dhcp服务器与http/ftp/tftp服务器可以不在一台服务器配置。

2.1 配置本地yum源安装kickstart服务器需要软件包

dhcp与tftp、http服务在一台服务器

# cat <<EOF >/etc/yum.repo.d/rhel.repo 
[rhel7]
baseurl=file:///mnt
enable=1
gpgcheck=0
EOF

yum -y install system-config-kickstart
# 校验kickstart脚本工具
yum -y install pykickstart
yum -y install httpd
yum -y install tftp-server
yum -y install xinetd
yum -y install dhcp

# pxe引导程序
yum install -y syslinux

2.2 拷贝需要安装ISO到http服务器目录

/* 拷贝ISO镜像展开所有文件到http服务器目录,需要与下面无人值守地址目录对应 */
# mount -t iso9660 /oel7 V1009690-01-OEl7.6.iso
/* 在http服务器根目录创建oel7目录,存放ISO镜像文件 */
# mkdir /var/www/html/oel7
# cp -a /oel7/* /var/www/html/oel7/
/* 上面访问地址为http://192.168.204.81/oel7 */

2.3 tftp配置

/* 1.修改/etc/xinetd.d/tftp */
# vim /etc/xinetd.d/tftp
      #将disable=yes 修改为 
       disable=no
      #将 server_args = -s /var/lib/tftpboot 修改为
       server_args = -s /var/lib/tftpboot/oel7 -c
# 参数-s指定chroot,-c指定了可以创建文件

/* 2.修改/usr/lib/systemd/system/tftpd.service */
# vim /usr/lib/systemd/system/tftpd.service
      #将 ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot  修改为
       ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot/oel7

/* 3.将vmlinuz/initrd.img等文件拷贝到tftp根目录 */
# cp -a /var/www/html/oel7/isolinux/* /var/lib/tftpboot/oel7/
# cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/oel7

/* 4.创建启动菜单目录 */
# mkdir -p /var/lib/tftpboot/oel7/pxelinux.cfg
# cp /var/www/html/oel7/isolinux/isolinux.cfg /var/lib/tftpboot/oel7/pxelinux.cfg/default

/* 5. 配置启动菜单,启动菜单分为典型启动菜单和无人值守启动菜单 */
# 无人值守菜单
# cat  <<EOF > /var/lib/tftpboot/oel7/pxelinux.cfg/default
default auto
prompt 0
label auto
    kernel vmlinuz
    append initrd=initrd.img method=http://192.168.204.231/oel7 ks=http://192.168.204.231/oel7/ks.cfg
EOF

# 典型启动菜单,需要交互式选择安装
# cat  <<EOF > /var/lib/tftpboot/oel7/pxelinux.cfg/default
default auto
prompt 0
label auto
    kernel vmlinuz
    append initrd=initrd.img method=http://192.168.204.231/oel7
EOF

2.4 kickstart配置文件样例

方法1

每安装好一台Centos机器,Centos安装程序都会创建一个kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位于/root/anaconda-ks.cfg)

方法2

Centos提供了一个图形化的kickstart配置工具。在任何一个安装好的Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。kickstart配置工具命令为redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5).

方法3

阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。

方法4

​ 红帽可以通过https://access.redhat.com/labsinfo/kickstartconfig在线生成配置文件

配置文件示例,ks.cfg名称为自定义,可以自己修改,只需要与/var/lib/tftpboot/oel7/pxelinux.cfg/default文件中指定一致即可。

# ks.cfg,kickstart配置文件

# cat <<EOF > /var/www/html/oel7/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext 1qaz2wsx
# Use network installation
url --url="http://192.168.204.231/oel7"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled

# Network information
network  --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --size=200
part /tmp --fstype="xfs" --size=2048
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --maxsize=20480 --size=1

%post
cd /etc/yum.repos.d
rm -rf *
echo -e "[rhel7]" > base.repo
echo -e "baseurl=file:///mnt" >> base.repo
echo -e "enabled=1" >> base.repo
echo -e "gpgcheck=0" >> base.repo
%end

%packages
@^minimal
@compat-libraries
@debugging
@development
sysstat
lrzsz
telnet
wget
vim
make
net-tools
%end
EOF

/* 验证ks.cfg文件是否有语法错误
# ksvalidator /var/www/html/oel7/ks.cfg

2.5 dhcp服务器

/* 注:配置dhcp的时候是可以配置监听的网卡,指定监听网卡
/* DHCPDARGS=eth1  # 指定监听网卡
# cat <<EOF >> /etc/dhcp/dhcpd.conf
subnet 192.168.204.0 netmask 255.255.255.0 {
    range 192.168.204.100 192.168.204.200;         #dhcp服务为客户端分配的ip范围 
   #  option domain-name-servers 8.8.8.8;        #dns
   #  option domain-name "internal.example.org"; 
    option routers 192.168.204.1;                #网关
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.204.255;    #广播
    default-lease-time 21600;                  #租约时间,默认值是600,单位是秒
    max-lease-time 43200;                      #最大租约时间
    next-server 192.168.204.231;                  #指定TFTP服务器的地址
    filename "/pxelinux.0";                     #指定PXE引导程序的文件名
}
EOF

/* 清理dhcpd缓存
# rm /var/lib/dhcpd/dhcpd.leases~
# echo "" > /var/lib/dhcpd//dhcpd.leases

2.6 启动依赖服务

systemctl daemon-reload
systemctl enable tftp
systemctl enable xinetd
systemctl enable dhcpd
systemctl enable httpd

systemctl restart tftp
systemctl restart xinetd
systemctl restart httpd
systemctl restart dhcpd

systemctl status tftp
systemctl status xinetd
systemctl status httpd
systemctl status dhcpd

# 检查tftp
ss -tunlp |grep :69
# 检查dhcp
ss -tunlp |grep :67

3. vmware、vbox测试kickstart注意事项

1. kickstart与pxe安装虚机网卡说明
vmware、vbox如果作为kickstart服务器,则需要对外网卡配置为host-only,需要通过pxe安装的新虚拟机网卡也设置为host-only,即可虚拟机之间通信,如果需要虚机上外网,则可以增加一块nat网卡。

2. vmware/vbox需要关闭网络管理器dhcp
vmware: 编辑-虚拟网络编辑器-VMnet8-勾选掉使用DHCP将IP地址分配给虚拟机
vbox: Oracle VMware VirtualBox管理器 - 管理 - 全局设定 - 网络 - NatNetwork - 点开右边齿轮设定 - 支持DHCP去掉勾选保存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值