基于网络linux无人值守安装1

基于网络的linux无人值守安装的配置
 
1. 方案介绍
 
这种方案需要首先设置一个启动服务器和一个安装服务器(可以配置在同一台物理机上),然后通过网络启动存放在启动服务器上的安装程序。安装程序会自动访问存放在安装服务器上的安装配置文件和安装介质来完成安装。
 
涉及到的技术
 
该方案主要应用了三种技术:
 
1) PC 上从网络启动 Red Hat Linux 安装程序的 PXE 协议
 
2) Red Hat Linux 安装程序提供的网络安装功能(即指通过网络访问安装介质)
 
3) Red Hat Linux 安装程序提供的无人值守安装功能( Red Hat 称为 kickstart
 
技术 1) 2) 在参考资料 1 2 里已有部分介绍。本文将重点描述参考资料中未涉及部分和无人值守安装功能。
 
软硬件需求
 
要按本文介绍的方法完成自动化安装,你需要如下软硬件资源:
 
一台 PC 机器作为启动和安装服务器(其它架构机器也可以)
 
一台待安装的 PC 机器,它的网卡必须带有 PXE 支持
 
一个建好的局域网,上述两台机器已经连接入同一子网
 
待安装的 Red Hat Linux 安装介质
 
该方案的实现步骤
 
1) 配置启动服务器
 
2) 配置安装服务器
 
3) 从网络启动机器以完成安装
 
步骤 1) 2) 只需做一次即可。对每一台需安装 Red Hat Linux 的机器,都需要在启动服务器和安装服务器中部署相应的数据,并执行一次步骤 3)
 
下面将带领您逐一执行这些步骤。为了简单,我将用示例来说明如何在一台安装了 Red Hat Enterprise Linux AS 3 Update 5 PC 机上设置启动服务器和安装服务器,并在一台 PC 上安装 Red Hat Enterprise Linux AS 4 Update 2
 
  2. 配置启动服务器
 
启动服务器的目的是帮助在待安装机器上启动 Red Hat Linux 安装程序。启动服务器上需要搭建一个 DHCP 服务器和一个 TFTP 服务器。前者是为了给待安装机器分配 IP 地址,后者则是提供了一个让待安装机器下载启动镜像的途径。
 
2.1 配置 DHCP 服务器
 
1) 安装 DHCP 服务器包( RPM 包名: dhcpd )。
 
2) 编辑 DHCP 服务器配置文件 /etc/dhcp.conf
 
这里是一个示例:
 
ddns-update-style none;
max-lease-time 7200;
server-name "bootserver";
default-lease-time 600;
 
allow booting;
allow bootp;
 
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.1 192.168.1.254;
    }
 
group pxe {
    filename "/pxelinux.0";           // 放在 tftp 的根目录下
    host testserver { hardware ethernet 00:0C:29:70:24:5B; fixed-address
         192.168.1.248; }                      // 可以绑定也可以不绑定
}
 //00:0C:29:70:24:5B 这个物理地址是预安装机器的 MAC 地址
 
//192.168.1.248 这个是给上面物理地址的机器分配的 IP
 
在这个例子中,定义的子网是 192.168.1.0/255.255.255.0 。主机定义项 testserver 指出 IP 地址 192.168.1.248 将分配给以太网卡 00:0C:29:70:24:5B (待安装机器),文件 pxelinux.0 (在 TFTP 服务器的根目录中)将作为启动映像被网卡 ROM 里的 PXE 客户端载入内存并运行。
 
每增加一台需安装的机器,我们需在 dhcpd.conf 中增加一条 host 条目。
 
3) 给启动服务器配置一个 IP, 这个 IP 必须在 DHCP 服务器定义的子网内。
这里我们使用 192.168.1.240
4) 启动 DHCP 服务。
 
[root@bsvr] #service dhcpd restart
 
2.2 配置 tftp 服务器
 
1) 安装 TFTP 服务器包( RPM 包名: tftpd )。
 
2) 编辑 TFTP 服务器的配置文件 /etc/xinetd.d/tftp
 
配置文件如下:
 
service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /tftpboot
    disable         = no       // 这里必须是 NO
}
 
 
这里选定了/tftpbootTFTP 服务器的根目录位置。
 
3) Linux 安装程序的内核 / 根文件系统文件复制到 TFTP 服务器的根目录。对于每一个要被安装的 Red Hat Linux 版本,都需要执行一次该操作。
 
Red Hat Linux 第一张安装光盘 /isolinux 目录下会包含 Linux 安装程序的内核 / 根文件系统文件。 下面一段命令将这些文件复制到 TFTP 服务器的根目录下,并按照版本重新命名。
 
 
[root@bsvr]#mkdir /mnt/iso
 
[root@bsvr]#mount -o loop,ro RHEL4-U2-i386-AS-disc1.iso /mnt/iso
 
[root@bsvr]#cp /mnt/iso/isolinux/initrd.img /tftpboot
 
[root@bsvr]#cp /mnt/iso/isolinux/vmlinuz /tftpboot
 
[root@bsvr]#mv /tftpboot/initrd.img /tftpboot/initrd-rhel4u2-i386.img   // 根据版本进行重新命名
 
[root@bsvr]#mv /tftpboot/vmlinuz /tftpboot/vmlinuz-rhel4u2-i386
 
  4) 将启动镜像文件 pxelinux.0 复制到 TFTP 服务器根目录。
 
启动镜像 pxelinux.0 可以在 syslinux 安装包里获得。安装好 syslinux 安装包后,将 pxelinux.0 复制到 TFTP 服务器根目录。
 
 
[root@bsvr]#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
   
5) 编辑 pxelinux.0 的配置文件,以使 pxelinux 可以正确载入 Red Hat Linux 安装程序。
 
启动镜像 pxelinux.0 文件在执行过程中,会读取配置文件以确定它应该载入什么 Linux 内核文件来运行。所有的配置文件都放在启动服务器的 /tftpboot/pxelinux.cfg/ 目录下。 pxelinux.0 根据一定的规则来搜索合适的配置文件名。举例来说,对于前面为待安装机器分配的 IP 地址 192.168.138.30 (十六进制表示为 C0A88A1E ), pxelinux.0 会按如下次序搜索配置文件:
 
C0A88A1E > C0A88A1 > … > C0 > C > default
 
就是说,如果 C0A88A1E 文件存在,它就是 pxelinux.0 将载入的配置文件。否则,继续往下找。如果 C0A88A1 文件存在,它就是 pxelinux.0 将载入的配置文件。如果前面的以 C 开头的文件都不存在,那么 pxelinux.0 将试图从文件 default 中读取配置。对于一台需要支持很多安装机器的安装服务器来说,将配置写在与 IP 地址对应的文件里很不灵活。把所有配置都集中在 default 文件中是个不错的主意,可以减轻配置文件维护负担。
 
可以将能想到的 Red Hat Linux 版本的配置都写在 default 文件里,以便同时支持多种 Red Hat Linux 版本,如下所示 ( 对于具体某个 Red Hat Linux 版本,对应的行该如何写,可以参考它安装盘里的配置文件 /isolinux/isolinux.cfg)
 
  DEFAULT rhel4u2-i386
DISPLAY pxelinux.cfg/list
PROMPT 1
 
LABEL rhel3u6-i386
KERNEL vmlinuz-rhel3u6-i386
APPEND initrd=initrd-rhel3u6-i386.img
 
LABEL rhel3u6-x86_64
KERNEL vmlinuz-rhel3u6-x86_64
APPEND initrd=initrd-rhel3u6-x86_64.img devfs=nomount ramdisk_size=9216
 
LABEL rhel4u2-i386
KERNEL vmlinuz-rhel4u2-i386
APPEND initrd=initrd-rhel4u2-i386.img ramdisk_size=8192
 
这样用户可以通过输入某种版本的 LABEL (例如, rhel4u2-i386 )来选择具体的安装版本。为了能在安装时知道有哪些备选,可以让 pxelinux.0 提示要户选择之前显示一个列表。这通过在 default 里指定 DISPLAY 选项来实现。在上面的样例中,我们将所有备选 Red Hat Linux 版本列在文件 pxelinux.cfg/list 中,它的内容会被 pxelinux.0 显示出来。
 
在我们的例子中, /tftpboot/pxelinux.cfg/list 文件内容如下:
 
Choose one of the following Linux distributions for your installation:
 
Name Distribution Arch. Installation media
 
-------------------------------------------------------------------------
rhel3u6-i386 RHEL 3 AS U6 i386 192.168.1.240: /instsvr/x86_64/rhel3u6  // 系统镜像文件路径
 
rhel3u6-x86_64 RHEL 3 AS U6 x86_64 192.168.1.240:/instsvr/x86_64/rhel3u6
 
rhel4u2-i386 RHEL 4 AS U2 i386 192.168.1.240:/instsvr/i386/rhel4u2
 
这里的系统版本名字要与 default 文件里面的 LABEL 的名字要一样
 
6) 启动 TFTP 服务。
 
[root@bsvr]#service xinetd restart
 
3. 配置安装服务器
安装服务器在安装期间提供对 Linux 安装介质和无人值守安装配置文件的访问。安装介质存储在服务器上的一个目录中,可以使用各种网络协议访问它,比如 HTTP FTP ,和 NFS 。使用 NFS 协议, Red Hat Linux 安装程序可以支持多种安装介质目录结构,尤其是支持 ISO 光盘镜像文件。这里我们选择使用 NFS 协议来访问安装介质。
 
3.1 配置 NFS 服务器
1) 准备 ISO 安装介质。将 Red Hat Linux 安装介质的 ISO 文件都放置到 /instsvr 目录下。注意不要改变文件名。
[root@bsvr]#mkdir /instsvr
 
[root@bsvr]#mv RHEL4-U2-i386-AS-disc1.iso /instsvr/i386/rhel4u2   // 把镜像文件移动到相应的目录
 
[root@bsvr]#mv RHEL4-U2-i386-AS-disc2.iso /instsvr/i386/rhel4u2
 
[root@bsvr]#mv RHEL4-U2-i386-AS-disc3.iso /instsrv/i386/rhel4u2
 
[root@bsvr]#mv RHEL4-U2-i386-AS-disc4.iso /instsrv/i386/rhel4u2
 
2) 编辑 NFS 服务器配置文件 /etc/exports ,以允许其它机器通过 NFS 访问目录 /instsrv /etc/exports 文件内容如下 :
 
/instsvr    *(ro,no_root_squash,sync)    // 系统镜像文件的路径共享
/instsvr/ks  *(ro,sync)                 //kickstart 共享
 
其中:
 
* 表示任何 IP 地址都可以访问该目录。为了安全的考虑,也可以指定具体的 IP 地址。
 
ro 表示远程机器对该目录只有读权限。
 
其它选项请参考 NFS 手册。
 
3) 重新启动 NFS 服务以使新配置生效
 
[root@bsvr]# service portmap restart; service nfs restart
 
4) 检测目录 /instsrv 是否已被正确共享
 
[root@bsvr]#showmount -e
 
Export list for localhost:
 
/instsrv *
 
这样,我们就设置好了一个安装服务器。很简单吧!
 

你可能感兴趣的:(linux,职场,休闲,linux系统)