无人值守安装服务

Posted dinghailong128

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无人值守安装服务相关的知识,希望对你有一定的参考价值。

       Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。

 

 

 

配置DHCP服务程序

DHCP服务程序用于为客户端主机分配可用的IP地址,而且这是服务器与客户端主机进行文件传输的基础

[root@linuxprobe ~]# yum install dhcp -y

[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf         # 分配IP地址

 allow booting; 

 allow bootp;                     # 允许了BOOTP引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态IP地址

 ddns-update-style interim;

 ignore client-updates;

 subnet 192.168.10.0 netmask 255.255.255.0 {                        # 设置网段

      option subnet-mask       255.255.255.0;                            # 设置网关#设置子网掩码

       option domain-name-servers 192.168.10.10;                            # 设置dns服务器地址

       range dynamic-bootp 192.168.10.100 192.168.10.200;              # IP地址租用的范围

       default-lease-time         21600;                                       # 默认租约时间

      max-lease-time             43200;                                       # 大租约时间

      next-server                   192.168.10.10;                            # tftp服务器地址

      filename                             "pxelinux.0";                 # 在配置文件的最下面加载了引导驱动文件pxelinux.0(这个文件会在下面的步骤中创建),其目的是让客户端主机获取到IP地址后主动获取引导驱动文件,自行进入下一步的安装过程。

 }

[root@linuxprobe ~]# systemctl restart dhcpd

[root@linuxprobe ~]# systemctl enable dhcpd

ln -s ‘/usr/lib/systemd/system/dhcpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/dhcpd.service‘

 

 

配置TFTP服务程序

使用TFTP协议帮助客户端获取引导及驱动文件。TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。

[root@linuxprobe ~]# yum install tftp-server -y

[root@linuxprobe ~]# vim /etc/xinetd.d/tftp

 14         disable                 = no          # 不要禁用tftp功能

[root@linuxprobe ~]# systemctl restart xinetd

[root@linuxprobe ~]# systemctl enable xinetd

 

 

TFTP服务程序默认使用的是UDP协议,占用的端口号为69

[root@linuxprobe ~]# firewall-cmd --permanent --add-port=69/udp

success

[root@linuxprobe ~]# firewall-cmd --reload

success

 

 

[root@linuxprobe ~]# iptables -F

[root@linuxprobe ~]# service iptables  save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

 

 

配置SYSLinux服务程序

SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLinux是一个服务程序,不如说更需要里面的引导文件,在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件。

[root@linuxprobe ~]# yum install syslinux

[root@linuxprobe ~]# cd /var/lib/tftpboot/

[root@linuxprobe tftpboot]# cp /usr/share/syslinux/pxelinux.0 .                                    # 复制SYSLinux提供的引导文件

[root@linuxprobe tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .    # 复制光盘镜像中引导文件

[root@linuxprobe tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .

[root@linuxprobe tftpboot]# mkdir pxelinux.cfg

[root@linuxprobe tftpboot]# cd pxelinux.cfg/

[root@linuxprobe pxelinux.cfg]# cp /media/cdrom/isolinux/isolinux.cfg default                    # 复制开机选项菜单,并命名default

[root@linuxprobe pxelinux.cfg]# ls

default

[root@linuxprobe pxelinux.cfg]# vim default

  1 default linux                                                            # 系统在开机时就会默认执行那个名称为linux的选项

 61 label linux

 62   menu label ^Install Red Hat Enterprise Linux 7.0

 63   kernel vmlinuz

 64   append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet

       # 将默认的光盘镜像安装方式修改成FTP文件传输方式,并指定好光盘镜像的获取网址以及Kickstart应答文件的获取路径

 64   append initrd=initrd.img ks=http://192.168.134.130/config/ks.cfg biosdevname=0 net.i

       # 将默认的光盘镜像安装方式修改成HTTP协议,并指定好光盘镜像的获取网址以及Kickstart应答文件的获取路径

 

 

 

 

配置VSFtpd服务程序

vsftpd服务程序用于将完整的系统安装镜像通过网络传输给客户端。当然,只要能将系统安装镜像成功传输给客户端即可,因此也可以使用httpd来替代vsftpd服务程序。

[root@linuxprobe ~]# yum install vsftpd

[root@linuxprobe ~]# systemctl restart vsftpd

[root@linuxprobe ~]# systemctl enable vsftpd

ln -s ‘/usr/lib/systemd/system/vsftpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/vsftpd.service‘

[root@linuxprobe ~]# iptables -F

[root@linuxprobe ~]# cp -r /media/cdrom/* /var/ftp

 

 

 

 

配置HTTP服务程序

通过把光盘镜像内容传给客户端,因此也可以使用vsftpd来替代httpd服务程序。

[root@linuxprobe ~]# yum install httpd -y

[root@linuxprobe ~]# systemctl restart httpd

[root@linuxprobe ~]# systemctl enable httpd

ln -s ‘/usr/lib/systemd/system/httpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/httpd.service‘

[root@linuxprobe ~]# systemctl status httpd

[root@linuxprobe ~]# cp -rf /mnt/* /var/www/html/

[root@linuxprobe ~]# mkdir -p /var/www/html/config                     # 新建目录,把自定义的文件、脚本等放置于此

 

 

创建KickStart应答文件

[root@linuxprobe ~]# ls                                   # 在root管理员的家目录中有一个名为anaconda-ks.cfg的文件,它就是应答文件

[root@linuxprobe ~]# cp anaconda-ks.cfg /var/ftp/pub/

[root@linuxprobe ~]# cd /var/ftp/pub/

[root@linuxprobe pub]# ls

anaconda-ks.cfg

[root@linuxprobe pub]# mv anaconda-ks.cfg ks.cfg

[root@linuxprobe pub]# chmod +r ks.cfg    # 确保所有人都有可读权限,以保证客户端主机顺利获取到应答文件及里面的内容

[root@linuxprobe pub]# vim ks.cfg            # 使用vsftpd服务程序。

  6 url --url=ftp://192.168.10.10

 12 # System language 

 13 # lang zh_CN.UTF-8

 21 timezone Asia/Shanghai --isUtc

 29 clearpart --all --initlabel                       # 磁盘选项设置为清空所有磁盘内容并初始化磁盘

 

 

[root@linuxprobe ~]# vim /var/www/html/config/ks.cfg           # 使用httpd服务程序。

 # Use network installation 

 url --url="http://192.168.134.130/"

 #!!!

 # Use CDROM installation media

 repo --name="yum" --baseurl=http://192.168.134.130/

 #!!!

 

 

 

检查是否存在错误

[root@linuxprobe ~]# yum install pykickstart

[root@linuxprobe ~]# ksvalidator ks.cfg

 

以上是关于无人值守安装服务的主要内容,如果未能解决你的问题,请参考以下文章

PXE实现无人值守安装

Linux系统下手把手完成无人值守安装服务

无人值守安装服务器

Linux系统下手把手完成无人值守安装服务

Linux系统下手把手完成无人值守安装服务

2-8 无人值守安装服务器搭建 日志