自动化安装Linux系统—ftp

2021/11/20 7:13:13

本文主要是介绍自动化安装Linux系统—ftp,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

autoinstall_system—ftp

文章目录

      • autoinstall_system—ftp
      • 服务介绍
      • 工作过程
        • 第一步:PXE Client向DHCP服务器发送请求
        • 第二步:DHCP服务器提供信息
        • 第三步:PXE客户端请求下载启动文件
        • 第四步:Boot Server响应客户端请求并传送文件
        • 第五步:请求下载自动应答文件
        • 第六步:客户端安装操作系统
      • 实验环境
      • 需要安装的服务
      • 操作过程
        • 一、 关闭selinux 和 防火墙
        • 二、部署 DHCP 服务器
        • 1、修改配置
        • 2、重启服务
        • 3、查看dhcp服务
        • 三、部署tftp-server服务流程
        • 四、安装提供pxelinux.0的syslinux软件,共享pxe引导程序文件
          • 1、创建路径并前往
          • 2、安装syslinux软件
          • 3、拷贝操作系统必要文件与启动菜单文件
          • 4、修改default文件权限
          • 5、修改配置
        • 五、修改自动应答文件
          • 1、拷贝文件
          • 2、修改自动应答文件的配置
          • 3、修改ks.cfg 文件权限
          • 4、创建挂载目录并挂载
          • 5、拷贝ldlinux.c32文件到指定路径
          • 6、拷贝引导文件
        • 六、配置vsftp服务
          • 1、安装vsftp服务
          • 2、修改ftp服务配置
          • 3、修改匿名用户目录的权限
          • 4、修改匿名上传布尔值
          • 5、修改匿名上传的上下文权限
        • 六、检查服务是否启动
          • 1、重启vsftp服务
          • 2、查看DHCP服务是否启动
          • 3、查看TFTP服务是启动
        • 七、创建新的虚拟机

服务介绍

Syslinux:

一个功能强大的引导加载程序, 可以装在U盘上来引导系统

PXE简介:

预安装环境 . 是Intel公司推出的一款通过网络来引导操作系统的协议 . 广泛应用于网吧无盘系统 .

anaconda-ks.cfg文件介绍:

anaconda-ks.cfg  这个文件可以修改成自动安装的脚本,用于自动安装同样配置的系统。
inux系统在安装时会自动生成一个anaconda-ks.cfg 配置文件 ,文件位于/root 目录中 . anaconda-ks.cfg 里面记录的就是用户在安装系统时所作的操作 , 像选择语言环境  , 硬盘分区 , 安装的软件包 , 网卡IP设置 , 设置主机名 , root密码 ,新建普通等一系列操作 

工作过程

img

第一步:PXE Client向DHCP服务器发送请求

首先,将支持PXE的网络接口卡(NIC)的客户端BIOS设置为网络启动,通过PXE BootROM(自启动芯片)会以UDP协议发送一个广播请求,向网络中的DHCP服务器申请一个IP地址等信息。

第二步:DHCP服务器提供信息

DHCP服务器收到客户端的请求,验证是否来自合法的PXE Client请求,验证通过后向客户端返回响应信息,包括:客户端IP地址,pxelinux启动程序(TFTP)位置,以及配置文件所在位置等。

第三步:PXE客户端请求下载启动文件

客户端请求传送启动所需文件,包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。

第四步:Boot Server响应客户端请求并传送文件

TFTP服务器收到客户端的请求后,彼此间进行通信应答,确定启动参数。BootROM由TFTP通信协议从Boot Server下载启动安装程序所必须文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。

第五步:请求下载自动应答文件

客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。

接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

第六步:客户端安装操作系统

将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。

OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。

在上面介绍中PXE client是需要安装Linux的计算机,TFTP Server、DHCP Server和FTP Server(或NFS Server)运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核都放置在Linux Server上TFTP服务器的根目录下。而Linux根文件系统存放于FTP Server(或NFS Server)的共享目录中。

PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

实验环境

VMware Workstation 下的一台Redhat8.2版本的Linux系统
Redhat主机的IP地址为:192.168.9.157

需要安装的服务

dnf install dhcp-server -y
dnf install tftp-server -y
dnf install vsftp -y

操作过程

一、 关闭selinux 和 防火墙

setenforce 0
systemctl stop firewalld

二、部署 DHCP 服务器

1、修改配置

vim /etc/dhcp/dhcpd.conf 
ddns-update-style interim;
ignore client-updates;
filename "pxelinux.0";
next-server 192.168.9.157;

subnet 192.168.9.0 netmask 255.255.255.0 {
        option routers 192.168.9.1;
        option subnet-mask 255.255.255.0;
        option domain-name-servers 114.114.114.114;
        range dynamic-bootp 192.168.9.200 192.168.9.254;
        default-lease-time 60;
        max-lease-time 60;
}

2、重启服务

systemctl restart dhcpd

3、查看dhcp服务

查看服务是否启动

systemctl status dhcpd

查看服务进程

netstat -lntup | grep dhcp

三、部署tftp-server服务流程

systemctl start tftp.socket 

查看服务是否启动

systemctl status tftp

四、安装提供pxelinux.0的syslinux软件,共享pxe引导程序文件

1、创建路径并前往
mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg
2、安装syslinux软件
dnf install syslinux -y
3、拷贝操作系统必要文件与启动菜单文件
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
4、修改default文件权限
chmod 777 /var/lib/tftpboot/pxelinux.cfg/default
5、修改配置
vim /var/lib/tftpboot/pxelinux.cfg/default

将default文件中的部分内容修改为以下内容

1 	default linux
61 	label linux
62	menu label ^Install Red Hat Enterprise Linux 8.2
63 	kernel vmlinuz
64 	append initrd=initrd.img ks=ftp://192.168.9.157/ks.cfg

五、修改自动应答文件

1、拷贝文件
cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
2、修改自动应答文件的配置
vim /var/ftp/ks.cfg
#repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream
url --url="ftp://192.168.9.157/pub"

# System timezone
timezone Asia/Shanghai --isUtc --nontp

# Use CDROM installation media
#cdrom(有的电脑需要注释他,有的不需要)

#放到最后一行,注意不要在两个%之间
reboot  
3、修改ks.cfg 文件权限
chmod 777 /var/ftp/ks.cfg
4、创建挂载目录并挂载
mkdir /var/ftp/pub
mount /dev/sr0 /var/ftp/pub/
5、拷贝ldlinux.c32文件到指定路径
cp /mnt/isolinux/ldlinux.c32 /var/lib/tftpboot/
6、拷贝引导文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

以上三条命令任选其一!

六、配置vsftp服务

1、安装vsftp服务
dnf install vsftpd -y
2、修改ftp服务配置

修改配置文件中匿名上传的相关选项

vim /etc/vsftpd/vsftpd.conf 

在末尾添加

anon_umask=022 
#anon_upload_enable=YES 
anon_mkdir_write_enable=YES 
anon_other_write_enable=YES 

找到第12行,将NO改为yes

anonymous_enable=YES
3、修改匿名用户目录的权限
chmod 777 /var/ftp/pub/ 
4、修改匿名上传布尔值
[root@ldap var]# getsebool -a | grep ftpd_anon_write 
ftpd_anon_write --> on 
[root@ldap ftp]# setsebool ftpd_anon_write on 
5、修改匿名上传的上下文权限
[root@ldap var]# ll -Z /var/ftp 
drwxr-xrwx. root root system_u:object_r:public_content_rw_t:s0 pub 
[root@ldap ftp]# chcon -t public_content_rw_t pub/ 

六、检查服务是否启动

如果服务没有启动,就启动服务

1、重启vsftp服务
systemctl restart vsftp
2、查看DHCP服务是否启动
systemctl status dhcpd
3、查看TFTP服务是启动
systemctl status tftp

七、创建新的虚拟机

关键部分如同所示:
在这里插入图片描述
在这里插入图片描述

创建好一个空白虚拟机后,启动该虚拟机,然后等待。

reading…

然后新的Redhat8.2版本的Linux系统就安装好了



这篇关于自动化安装Linux系统—ftp的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程