自动安装LINUX系统--kickstart

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/x_brian/article/details/88073510

目录

管理服务器搭建

管理服务器环境

kickstart配置

制作无盘与配置

制作无盘系统

配置启动文件

配置NFS服务启动无盘


管理服务器搭建

  • 管理服务器环境

centos 6.5  IP:192.168.56.150

1. SELINUX:disabled, 关闭iptables    
vi /etc/selinux/config   //SELINUX=disabled
setenfoce 0  
iptables -F

2. 挂载iso镜像, 配置yum源
mount /dev/cdrom  /mnt    
vi /etc/yum.repos.d/CentOS-Base.repo  修改为:
baseurl=file:///mnt/
gpgcheck=0
enabled=1

3. 预装服务软件
dhcp-4.1.1-38.P1.el6.centos.x86_64                        // 提供DHCP服务;指定TFTP地址及PXE启动文件                   
dhcp-common-4.1.1-38.P1.el6.centos.x86_64.rpm
tftp-server-0.49-7.el6.x86_64.rpm                            // 向无盘工作站传输系统启动文件等
vsftpd-2.2.2-11.el6_4.1.x86_64.rpm                         // 提供文件共享
system-config-kickstart-2.8.6.5-1.el6.noarch.rpm     //制作kickstart配置文件,也可以直接从其他服务器拷贝配置文件


  • kickstart配置

1.    配置dhcp
vi /etc/dhcp/dhcpd.conf
    
ddns-update-style interim;
ignore client-updates;

subnet 192.168.56.0 netmask 255.255.255.0 {
        option routers          192.168.56.1;
        option subnet-mask      255.255.255.0;

        option nis-domain       "domain.org";
        option domain-name      "domain.org";
        option domain-name-servers 192.168.56.1;

        filename                "pxelinux.0";                //预启动文件, 启动文件位置tftp的默认目录是 /tftpboot
        next-server             192.168.56.150;        //管理服务器ip

        option time-offset      -18000;

        range dynamic-bootp 192.168.56.151 192.168.56.170;    //给节点服务器分配的地址池151-170段
        default-lease-time 21600;
        max-lease-time 43200;
}

2.    配置tftp
vi /etc/xinetd.d/tftp
server_args             = -s /tftpboot    #启动文件的默认目录
将disable=yes改成disable=no
a.    创建tftpboot目录并复制启动所需文件
mkdir -pv /tftpboot/pxelinux.cfg

 cp /usr/share/syslinux/pxelinux.0 /tftpboot/
 cp /mnt/images/pxeboot/vmlinuz /tftpboot/
 cp /mnt/images/pxeboot/initrd.img /tftpboot/
 cp /mnt/isolinux/boot.msg /tftpboot/
 cp /mnt/isolinux/vesamenu.c32 /tftpboot/
 cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

修改default文件:
第一个append initrd=initrd.img 修改为
append ks=ftp://192.168.56.150/pub/ks.cfg ksdevice=eth0 initrd=initrd.img

b.    复制iso文件到ftp目录
cp -r /mnt/ /var/ftp/pub/

c.    创建ks.cfg文件(/var/ftp/pub):从安装完成的os系统/root/下面复制anaconda-ks.cfg后修改红色内容 user:root  password:123456
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="ftp://192.168.56.150/pub/mnt"
# Root password
rootpw --iscrypted $1$TpZ7Gjrt$LtO3xcH4OFR7Fq2QqwJGO/
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information   # /boot 200MB ,swap 2G, 根目录 / 10G
part /boot --fstype=ext4 --size=200
part swap --fstype=swap --size=2048
part / --fstype=ext4 --size=10240

%packages --nobase

%end


3.    启动服务:先删除rm /var/lib/dhcpd/* -rf
service dhcpd restart
service vsftpd restart
service xinetd restart

需要安装系统的设备启动顺序设置为PXE网络启动:
1.单个服务器的eth0口网线连接管理服务器的eth0口
2.多个节点服务器批量安装需配置交换机IP 192.168.56.x . 节点服务器和管理服务器eth0口连接交换机lan口
节点服务器开机即可自动进入硬盘安装系统
注意:ks.cfg配置文件最好是在相同硬件配置的服务器系统/root/上面拷贝一份anaconda-ks.cfg文件,再自行根据需求修改成ks.cfg (如果硬件配置不一样,节点服务器在检查硬件是可能会有提示,需要手动确认.这样就达不到理想的自动安装效果)


制作无盘与配置

无盘启动的原理及作用:把管理服务器里面制作好的镜像通过kickstart 自动加载到节点服务器的内存上面,节点关机后系统也消失。适用于节点服务器在不需要安装硬盘系统的情况下(同外设硬盘系统相似),对整体硬件进行初始化检测和其他故障诊断

  • 制作无盘系统

1. 创建无盘系统文件路径: /netboot
mkdir /netboot                                      // 无盘路径启动文件存放目录
mkdir /netboot/tftpboot                         // 无盘系统启动文件存放目录
mkdir /netboot/centos                          // 无盘系统结构文件目录
2. 使用rsync工具将整个"/"目录拷贝到/netboot/centos 目录下,去除不需要的文件目录
rsync -av --exclude='/proc' --exclude='/sys' --exclude='/tmp' --exclude='/var/tmp' --exclude='/etc/mtab' --exclude='/netboot'  /*  /netboot /centos
3. 重新创建被删掉的目录,还原系统模板的目录结构
cd /netboot/centos
mkdir proc sys tmp var/tmp

4. 修改设备挂载配置文件vi /netboot/centos/etc/fstab 删除所有的本地存储设备挂载信息(如:/和/boot)
# /etc/fstab
# Created by anaconda on Wed Aug 30 10:00:01 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
192.168.56.150:/netboot/centos    /    nfs    defaults 0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

5. 在无盘系统路径下面:删除所有ifcfg-eth*网卡配置文件,只需保留ifcfg-lo
rm –rf /netboot/centos/etc/sysconfig/network-scripts/ifcfg-eth*


  • 配置启动文件

1.安装所需软件包:
syslinux-4.02-8.el6.x86_64                                  // 提供引导程序"pxelinux.0"
dracut-004-335.el6.noarch                                  // 用来制作启动initrd 镜像
dracut-network-004-335.el6.noarch                    // 依赖包,否则将导致PXE无法启动

yum install syslinux dracut dracut-network

2. 拷贝PXE启动文件(由syslinux 程序提供)
cp /usr/share/syslinux/pxelinux.0    /netboot/tftpboot

3. 拷贝用linux内核文件vmlinuz
cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /netboot/tftpboot

4. 创建用于系统启动 镜像文件initrd.img(先执行命令 uname -r 查看内核版本,如:2.6.32-431.el6.x86_64)
dracut initrd-2.6.32-431.el6.x86_64.img 2.6.32-431.el6.x86_64
chmod 644 initrd-2.6.32-431.el6.x86_64.img
mv initrd-2.6.32-431.el6.x86_64.img /netboot/tftpboot

5.    在/netboot/tftpboot/pxelinux.cfg/目录下创建默认的PXE引导配置文件"default"
vi /netboot/tftpboot/pxelinux.cfg/default
# prompt 0 表示工作站立即启动,1 表示工作站等待选择
# kernel 指定内核文件
# append 后面的加下划线的是一行内容,不能换行!!!
# append 附加参数值解释说明:
# initrd= 指定用于引导的initrd 镜像文件
# root= 指定工作站系统的nfs 路径(注意:“系统服务器B”设置成192.168.8.9)
# selinux= 设置selinux 开关,0 表示关闭,1 表示开启,默认为1
# rw 设置工作站系统为可读写
# nomodeset 这个参数是配合后面的vga=参数一起使用,设置分辨率
# vga= 这个参数值是设置分辨率,0x 表示十六进制,0314 表示800*600 16 位色;若无特殊需求,建议删除这2个参数
# 文件内容如下:
default auto
label auto
prompt 0
kernel vmlinuz-2.6.32-431.el6.x86_64
append initrd=initrd-2.6.32-431.el6.x86_64.img root=nfs:192.168.56.150:/netboot/centos selinux=0 ip=dhcp rw nomodeset vga=0x0314

6. 在/netboot/tftpboot目录下应该有下列几个文件/目录:

initrd-2.6.32-431.el6.x86_64.img         // 用于引导的initrd 镜像文件       (由第4 步创建)
pxelinux.0                                           // PXE 引导文件    (由第2 步创建)
pxelinux.cfg/default                           // 默认的引导配置文件    (由第5 步创建)
vmlinuz-2.6.32-431.el6.x86_64            // 用于引导的内核文件    (由第3 步创建)

7.    编辑配置文件/etc/dhcp/dhcpd.conf :因前面已经配置好dhcpp.conf无需修改(根据IP地址池可以自行修改)

8.    编辑配置/etc/xinetd.d/tftp:前面有配置,但现在所使用的无盘路径和之前配置的有所不同,故需修改如下一项即可:
server_args = -s /netboot/tftpboot


  • 配置NFS服务启动无盘

1.    安装NFS服务软件包

nfs-utils-1.2.3-39.el6.x86_64.rpm                    // 共享发布工作站系统
rpcbind-0.2.0-11.el6.x86_64                           // 为NFS 服务的依赖程序

2.    编辑配置文件/etc/exports,添加如下内容:
/netboot/centos  192.168.56.0/24(rw,async,no_root_squash)

所有配置都已完成了,最后检查下DHCP、TFTP、NFS服务是否都已启动
service dhcpd restart
service xinetd restart
service nfs restart  (如报错则执行一下service rpcbind restart)
netstat –ntpl查看rpcbind   rpc.mountd  端口是否启动
注意:
NFS挂载无盘对应的配置文件/etc/xinetd.d/tftp内容路径为:server_args = -s /netboot/tftpboot
Kickstart自动安装到硬盘对应的配置文件/etc/xinetd.d/tftp内容路径为:server_args = -s /tftpboot

节点服务器启动顺序设置为PXE网络启动:
1.单节点服务器的eth0口网线连接管理服务器的eth0口
2.多节点服务器批量安装需配置交换机IP 192.168.56.x . 节点服务器和管理服务器eth0口连接交换机lan口节点服务器开机即可自动进入挂载无盘

无盘在节点设备上启动成功实例如图:

猜你喜欢

转载自blog.csdn.net/x_brian/article/details/88073510