1 部署本地apt仓库
1.1 概述
Ubuntu系统中,APT(AdvancedPackageTool)是一种强大的软件包管理工具,它允许用户通过简单的命令来安装、更新、升级和删除软件包。
在某些情况下,如公司内网环境或无法直接访问外部源的情况下,就需要搭建自己的APT源。
1.2 APT环境搭建
1.2.1 安装apt-mirror软件
apt-mirror是一个用于同步远程APT仓库到本地的工具,它可以根据mirror.list配置文件中的设置,自动下载并更新软件包和索引文件。
在Ubuntu上安装apt-mirror的命令如下:
# 更新软件包列表
apt-get update
# 安装
apt-get install apt-mirror
1.2.2 修改配置文件
apt-mirror的配置文件位于==/etc/apt/mirror.list==。使用文本编辑器打开该文件,根据需要进行修改。
主要配置项包括同步的远程APT仓库地址、本地存储路径等。
这里用了jammy说明系统内核是2022,可以用lsb_release -a看看自己系统的内核,然后百度一下将jammy换成什么。
如果是2020就把所有jammy换成focal,如果是2023就全换成lunar,后面配置source.list的时候记得也换。
1.2.3 同步远程APT仓库
完成配置文件修改后,运行命令同步远程APT仓库到本地。
apt-mirror
1.2.4 配置本地APT源
在搭建好本地APT源后,需要将其配置为Ubuntu的软件源。
编辑/etc/apt/sources.list文件,添加本地APT源的地址。
deb file:/var/spool/apt-mirror/mirror ubuntu main restricted universe multiverse
deb-src file:/var/spool/apt-mirror/mirror ubuntu main restricted universe multiverse
1.2.5 更新本地APT源
完成配置后,运行以下命令更新本地APT源:
apt-get update
这将从本地APT源获取最新的软件包和索引文件信息。
1.3 对外部署apt源
- apt源对外开放需要使用http或tftp工具,这里使用nginx进行对外开放。
apt-get install nginx
- 修改nginx配置文件
root后面跟镜像存放的实际路径,配合客户端的sources.list文件配置,需要把目录指向到dists、pool所在的路径下。
- 重启并应用nginx
ln -s /etc/nginx/sites-available/apt-mirror /etc/nginx/sites-enabled/
systemctl restart nginx
1.4 客户端配置
客户端配置sources.list文件,指定apt仓库源:
更新软件列表:
apt-get clean
apt-get update
2 部署NFS共享服务
2.1 NFS 共享存储服务
NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
通过使用NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
对于大多数负载均衡群集来说,使用 NFS 协议来共享数据存储是比较常见的做法,NFS 也是 NAS 存储设备必然支持的一种协议。
2.2 使用NFS发布共享资源
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
在Ubuntu系统中,需要安装NFS服务端软件和nfs客户端软件。
在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind软件包来提供 NFS共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。
2.3 工作原理
客户端通过网络连接到NFS服务器。
客户端发起文件访问请求(如读取、写入文件)。
服务器接收到请求后,根据请求内容执行相应的操作(如从文件系统中读取数据、写入数据到文件系统等)。
服务器将操作结果返回给客户端。
2.4 NFS的配置与使用
NFS的配置通常涉及设置服务器端的共享目录和客户端的挂载点。
在配置过程中,需要确保RPC(远程过程调用协议)服务正常运行,因为NFS是基于RPC来实现网络文件系统共享的。
客户端通过挂载命令将NFS服务器上的共享目录挂载到本地文件系统中,之后就可以像访问本地文件一样访问这些共享文件了。
2.4.1 环境
IP地址 | 功能 |
---|---|
192.168.40.131 | 共享主机,简称server |
192.168.40.132 | 客户机,简称client |
2.4.2 共享主机设置
- 安装NFS服务器软件包
# 更新软件列表
apt update
# 更新所有软件,这一步可以不做
apt upgrade
# 安装NFS服务器软件包
apt install nfs-kernel-server
- 调整服务的自启动状态
# nfs-kernel-server开机自启动
update-rc.d nfs-kernel-server enable
# rpcbind开机自启动
systemctl enable rpcbind
- 设置共享目录
- 格式:目录位置 客户机地址(权限选项)
mkdir /test/share
# NFS的配置文件,内容默认为空(无任何共享)
vim /etc/exports
# 将/test/share文件共享给所有人,并给予权限
/test/share * rw,sync,no_root_squash,no_subtree_check,insecure)
rw:表示允许读写(ro 为只读)
sync:表示同步写入
no_root_squash:表示当客户机以root 身份访问时赋予本地 root 权限
no_subtree_check:禁用子树检查,提高性能
insecure:允许非安全端口访问
# 共享给指定网段
/test/share 192.168.40.0/24(rw,sync,no_root_squash)
# 共享给多个客户机
/test/share 192.168.40.132(rw) 192.168.40.133(ro)
- 启动NFS服务程序
systemctl start nfs-kernel-server
systemctl restart nfs-kernel-server
systemctl status nfs-kernel-server
- 查看本机的NFS共享目录
showmount -e
- 关闭防火墙(如果有的话)
systemctl stop firewalld
systemctl disable firewalld
2.4.3 客户机设置
NFS 协议的目标是提供一种网络文件系统,因此对NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs。
既可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载。
- 若要正常访问 NFS 共享资源,客户机中需要安装客户端软件
apt install nfs-common
- 查看 NFS 服务器端共享了哪些目录
showmount -e 192.168。40.131
- 客户机手动挂载 NFS 共享目录
mkdir /test/131share
mount 192.168.40.131:/test/share /test/131share
- 查看挂载
df -hT
tail -1 /etc/mtab
2.4.4 测试
- 在客户机创建文件
echo "客户机创建的文件" > /test/131share/132.txt
- 在服务器上查看
ls /test/share
2.4.5 自动挂载设置
- vim /etc/fstab
# 客户机设置开机自动挂载
192.168.40.131:/test/share /test/131share nfs defaults,_netdev 0 0
将文件系统类型设为nfs
挂载参数建议添加_netdev(设备需要网络)
若添加 soft、intr 参数可以实现软挂载,允许在网络中断时放弃挂载
2.4.6 强制卸载NFS
NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS服务突然间停掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。
这个时候使用umount 命令是无法直接卸载的,需要加上 -lf 才能卸载。当出现卡死现象时,要重新开一个终端,执行 cat /etc/rc.local 命令,查看挂载点。
然后使用 umount 命令卸载,其中-l 表示解除正在繁忙的文件系统,-f 表示强制。
umount -lf /test/131share