欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

kickstart

最编程 2024-03-09 20:01:45
...


要实现一个PXE+Kickstart无人值守安装,至少需要DHCPTFTP服务来完成引导。我们要安装的软件包一共如下:

#dhcp tftp-server tftp xinetd  syslinux nfs-utils
yum -y install dhcp tftp-server tftp xinetd syslinux nfs-utils
配置DHCP
rsync -av /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
vi /etc/dhcp.conf
找到:
ignore client-updates;
在下面添加如下内容:
next-server 10.1.1.250;
filename "pxelinux.0";
其中:10.1.1.250成为后续将进行配置的tftp服务器的IP
找到并注释:
#option nis-domain "domain.org";
#option domain-name "domain.org";
#option domain-name-server 192.168.1.1;
网卡配置:
IP 10.1.1 .250
vi /etc/sysconfig/network-scripts/ifcfg-eth0
找到:
BOOTPROTO=dhcp
:
BOOTPROTO=static
注意 IP 地址的配置:
IPADDR=10.1.1.250
NETMASK=255.255.255.0
重启网络并启动 dhcpd
/etc/init.d/network restart
/etc/ini.d/dhcpd start

2.2 tftp-server

配置tftp-server
vi /etc/xinetd.d/tftp
找到:
disable  = yes
disable   = no
启动tftp-server
/etc/init.d/xinetd  re start
使用tftp客户端进行验证
mkdir -p /tftpboot
echo hahahoho > /tftpboot/test.file
tftp 10.1.1.250
tftp>get test.file
tftp>quit
 
如果能正常获取 test.file ,则说明 tftp-server 工作正常。
pxelinux.0
我们在配置 dhcp 的时候,就已经用到了 pxelinux.0 ,其实 pxlinux.0 就是上面提到的 bootstrap 。在 Linux 中,它是由 syslinux 来生成的。我们只要安装了 syslinux ,就会生成一个 pxelinux.0 ,我们只需要将其拷贝到 /tftpboot 下面即可。
rpm -ql syslinux | grep pxelinux.0
rsync -av /usr/lib/syslinux/pxelinux.0 /tftpboot/

2.3 Linux系统启动文件

找到DVD安装盘或者ISO镜像,将其mount/mnt下面。
               mount -o loop /root/ RedHat 5 -U3 -i386-bin-DVD.iso /mnt
拷贝内核文件 vmlinuz 以及根文件系统 initrd.img /tftpboot
              rsync -av  /mnt/images/pxeboot/ /tftpboot /
创建 /tftpboot/pxelinux.cfg 目录
               mkdir  -p  /tftpboot/pxelinux.cfg
创建 /tftpboot/pxelinux.cfg/default 文件
               touch /tftpboot/pxelinux.cfg/default
文件内容如下:
default linux
prompt  0
label   linux
        kernel  vmlinuz
        append  ks=nfs:10.1.1.250:/netinstall/ks.cfg initrd=initrd.img
也可以复制 /mnt/isolinux/isolinux.cfg default ,然后进行修改。
       rsync -av /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
2.4 配置 nfs 网络安装
mkdir  -p  /netinstall /kickstart
安装 nfs 服务,并将 /netinstall/kickstart 发布出去
/etc/init.d/portmap start
/etc/init.d/nfslock start
/etc/init.d/nfs start
cat >> /etc/export  << EOFFS
/netinstall/kickstart *(ro,async)
EOFFS
exportfs -rv
showmount -e 10.1.1.250
最后结果如下:
exportfs *:/netinstall
/kickstart

2.5 关于ks.cfg文件

做一个最简单的 ks.cfg
拷贝本机安装时的 ks 文件到 /netinstall/kickstart 并重命名为 ks.cfg
rsync -av  /root/anaconda-ks.cfg /netinstall/ kickstart/ ks.cfg
chmod a+r /netinstall/
kickstart/ ks.cfg
 
找到第一行的 install 在其后新增一行,内容为 text 这个单词。
找到 第二行的 cdrom ,改 nfs --server=10.1.1.250 --dir=/ mnt
找到 clearpart --linux --drives=sda
clearpart --all --drives=sda --initlabel
并在上面添加一行:
zerombr
autopart
其中:
    zerombr 是清空硬盘的主引导分区( MBR
    autopart 为自动分区
也可以定制分区,如:
       part / --fstype ext3 --size=1 --grow
       part /var --fstype ext3 --size=2000
       part swap --size=1000
定制分区和 autopart 是冲突的,所以不能混用。
 
为了避免安装后的一些麻烦,可以考虑关闭服务器端防火墙和 SELINUX
       firewall --disabled
       selinux --disabled
注意:为了能够顺利发布数据,让其他客户端访问,请注意关闭服务器端防火墙和 SELINUX
 
选包定制:
%packages
@base
@core
@web-server
sysstat
-bluez-utils
 
@ 后边跟的都是组名,对应 yum 仓库中 repodata/comps*.xml 文件的 groupid 。可以执行如下命令获得 groupid 列表:
find /mnt/ -name "comps*.xml" | xargs grep -h groupid | sort -n | sed 's#[[:space:]]##g; s#<groupid>##g; s#<.*##g'
 
- 表示安装时不安装该包。
 

三、附录

##########/etc/dhcpd.conf 内容 ##########
ddns-update-style interim;
ignore client-updates;
next-server 10.1.1.250;
filename "pxelinux.0";
 
subnet 10.1.1.0 netmask 255.255.255.0 {
        option routers                  10.1.1.250;
        option subnet-mask              255.255.255.0;
 
        option time-offset              -18000; # Eastern Standard Time
        range dynamic-bootp 10.1.1.1 10.1.1.200;
        default-lease-time 21600;
        max-lease-time 43200;
}
##########/tftpboot/pxelinux.cfg/default 内容 ##########
default linux
prompt 1
timeout 30
 
label linux
  kernel vmlinuz
  append initrd=initrd.img ks=nfs:10.1.1.250:/netinstall/kickstart/ks.cfg
 
label hda
  kernel vmlinuz
  append initrd=initrd.img ks=nfs:10.1.1.250:/netinstall/kickstart/kshda.cfg
 
##########ks.cfg 文件内容 ##########
install
text
nfs --server=10.1.1.250 --dir=/mnt
key --skip
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp --onboot=on
rootpw 123456
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
zerombr
clearpart --all --drives=sda --initlabel
part / --fstype ext3 --size=1 --grow
part /var --fstype ext3 --size=2000
part swap --size=1000
reboot
 
%packages
@base
@core
@editors
@text-internet
@web-server
@mysql
@dns-server
sysstat
 
%post

上一篇: SpringCloud&Gateway 全局过滤器 - 全局过滤器的作用

下一篇: 弄清资源、资源加载器和容器之间的微妙关系 - 在 Java 中,资源会被抽象成 url,通过 url 前面的协议(如 file:、classpath:)来处理不同的操作逻辑,资源是一个接口