您的位置:

使用netinstall进行无人值守安装

使用netinstall进行无人值守安装

更新:

一、什么是netinstall?

Netinstall是一种通过网络进行安装操作系统的方法。它可以让你通过网络安装各种不同的操作系统和软件程序,并对其进行配置。

Netinstall使用Preboot Execution Environment(PXE)技术,这个技术可以让服务器通过网络引导安装系统,而不需要使用物理媒介,例如光盘或USB。

二、准备工作

在使用netinstall之前,必须确保你的网络拥有一台DHCP服务器和TFTP服务器。DHCP服务器会提供IP地址,TFTP服务器会提供安装文件。

为了更好的管理和使用netinstall,需要安装一个DHCP服务器,它将提供网络上所有计算机的IP地址。

同时需要安装一个TFTP服务器,该服务器将提供所有需要安装的文件。你可以使用以下命令来安装这些服务器:

yum install dhcp tftp-server -y

三、配置DHCP服务器和TFTP服务器

在安装完成DHCP服务器和TFTP服务器后,需要配置它们的配置文件。这些文件分别为:

  • /etc/dhcp/dhcpd.conf
  • /etc/xinetd.d/tftp

请按照以下命令编辑DHCP服务器的配置文件:

vi /etc/dhcp/dhcpd.conf

在打开的文件中,添加以下行:

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.100 192.168.0.200;
 
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  option routers 192.168.0.1;
 
  filename "pxelinux.0";
  next-server 192.168.0.10;
}

上面的配置将DHCP服务器配置为使用我们的TFTP服务器。这将用于在客户端计算机上引导安装。以上ip地址和文件名根据实际情况需进行修改。

为了让TFTP服务器正常工作,请编辑TFTP服务器配置文件,输入以下命令:

vi /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
  per_source              = 11
  cps                     = 100 2
  flags                   = IPv4 
}

以上配置表明使用tftp协议,tftp服务器提供程序路径为/tftpboot。当然,该路径可以为任何你想放置文件的目录。

四、准备安装文件

由于netinstall使用的是PXE技术,因此需要准备一个文件将被用来引导客户端计算机。因此,我们需要在客户端计算机上安装pxelinux.0程序。该程序位于syslinux软件包中。

为此,输入以下命令以下载并安装syslinux软件包:

yum install syslinux -y

在安装完成后,进入pxelinux程序所在的目录,并执行以下命令,将pxelinux.0拷贝到/tftpboot目录下:

cd /usr/share/syslinux
cp pxelinux.0 /tftpboot/

五、配置netinstall

接下来我们需要准备PXE引导文件。在PXE引导文件中,需要定义使用的内核和安装程序等信息。在本文中,我们将安装CentOS操作系统。

在tftpboot目录下创建一个新的目录centos,并将下载的CentOS ISO文件拷贝到其中,并解压openstack目录:

mkdir /tftpboot/centos
cd /tftpboot/centos
wget http://mirrors.aliyun.com/centos/7/os/x86_64/images/boot.iso
mount -o loop boot.iso /mnt/
cp -r /mnt/images/ /tftpboot/centos/openstack/
chmod -R 755 /tftpboot/centos/openstack/

然后进入centos目录,创建一个PXE引导配置文件,文件名为“default”,并输入以下内容:

cd /tftpboot/centos/
vi default

在打开的文件中添加以下内容:

default vesamenu.c32
timeout 600
 
menu title Welcome to CentOS 7.0 Installation!
 
label linux-installer
  menu label Automated Installation - CentOS 7.0
  kernel openstack/images/pxeboot/vmlinuz
  append initrd=openstack/images/pxeboot/initrd.img inst.repo=http://192.168.0.10/centos/openstack ks=http://192.168.0.10/centos/ks.cfg ip=dhcp

在上述配置中,timeout 600表示引导菜单100秒超时;label linux-installer定义了安装程序的名字;kernel和initrd指定了内核文件和initrd文件的路径。最后的append语句指明了自动化安装所需的kickstart配置文件的位置以及IP配置(可以自行修改IP地址配置)。

六、创建自动化安装配置文件

最后一步是创建kickstart配置文件。kickstart文件是一个自动化安装程序,它可以读取一个已预定义的配置,然后安装Linux操作系统。

在centos目录下创建一个新文件,并将其命名为ks.cfg:

cd /tftpboot/centos
vi ks.cfg

按照以下格式编辑ks.cfg文件:

#version=DEVEL
# Install OS instead of upgrade
install
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$xxxxxxxxxxxxxx
# System language
lang en_US
# Hosts information
network --bootproto=dhcp --device=eno16777736
# Firewall configuration
firewall --enabled --service=ssh
selinux --disabled
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm

%packages
@^minimal
@core
kexec-tools
%end

请注意,rootpw语句是加密的,需要将其替换为你自己的加密密码。

七、启动服务

启动TFTP服务器和DHCP服务器的服务。

systemctl start tftp.socket
systemctl start dhcpd

接下来,在客户端计算机上打开PXE引导菜单。选择安装CentOS并将所有配置正确填写后,系统将开始自动安装。完成安装后,重启计算机即可。

八、总结

Netinstall是一种快速,高效的系统安装方法。为了使用netinstall,请确保你的网络拥有一台DHCP服务器和TFTP服务器。在经过准备工作后,需要按照特定格式编辑PXE引导文件和kickstart配置文件,以使系统能够正确安装(即后续的“五”和“六”步骤)。一旦准备完成,系统将开始自动安装,使无人值守安装成为可能。