跳过正文
  1. Posts/

如何设置 NFS 共享以及在不同的平台 Windows/Linux/Unix 进行挂载

·678 字·2 分钟· ·
沈显鹏
作者
沈显鹏
目录

例如我有一个共享仓库的代码所在用的空间非常大(超过 20 G),在每个产品构建时候都需要用到这个仓库的代码(从里面 copy 第三方库),如果每个人都要 git clone 这个第三方仓库,一是网络开销非常大,二是 git clone 时间长,而且占用大量的物理空间。

这可以通过 NFS 共享来解决。

另外希望这个代码仓库能自动更新,这里引入了 Jenkins。用它来检查如果这个容量巨大的仓库有代码提交就自动执行 git pull 操作,更新最新的代码到共享服务器上。

什么是 NFS?NFS(Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在 NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样,Windows 上俗称共享。

设置 NFS
#

# 例如在 Linux 上, 共享服务器的 ip 是 192.168.1.1
sudo vi /etc/exports

# 以下是我的 exports 文件的配置
# 假设内网 ip 是这样的区间 192.168.1.1 ~ 192.168.1.250
# ro 表示只读
# all_squash 表示不管使用 NFS 的用户是谁,他的身份都会被限定成为一个指定的普通用户身份(nfsnobody)
/agent/workspace/opensrc 192.168.1.*(ro,all_squash)
/agent/workspace/opensrc dev-team-a*.com(ro,all_squash)
/agent/workspace/opensrc dev-team-b*.com(ro,all_squash)
/agent/workspace/opensrc dev-ci*(ro,all_squash)

NFS 操作
#

启动 NFS 服务
#

启动 NFS 服务,需要启动 portmap 和 nfs 两个服务,并且 portmap 一定要先于 nfs 启动

service portmap start
service nfs start
# 查看 portmap 状态
service portmap status

查看服务状态
#

service nfs status

停止服务
#

service nfs stop

导出配置
#

当改变/etc/exports配置文件后,不用重启 NFS 服务直接用这个 exportfs 即可

sudo exportfs -rv

挂载到不同平台
#

Windows
#

# Install the NFS Client(Services for NFS)
# Step 1: Open Programs and Features
# Step 2: Click Turn Windows features on or off
# Step 3: Find and check option Services for NFS
# Step 4: Once installed, click Close and exit back to the desktop. refer to https://graspingtech.com/mount-nfs-share-windows-10/
$ mount -o anon 192.168.1.1:/agent/workspace/opensrc Z:

Linux/Unix
#

# Linux
sudo mount -t nfs 192.168.1.1:/agent/workspace/opensrc /agent/workspace/opensrc

# AIX
sudo nfso -o nfs_use_reserved_ports=1     # should only first time mount need to run this command
sudo mount -F nfs 192.168.1.1:/agent/workspace/opensrc /agent/workspace/opensrc

# HP-UX
sudo mount -F nfs 192.168.1.1:/agent/workspace/opensrc /agent/workspace/opensrc

# Solaris-SPARC
# 如果你不能直接在命令行执行 mount
sudo /usr/sbin/mount -F nfs 192.168.1.1:/agent/workspace/opensrc /agent/workspace/opensrc

相关文章

在 Jenkins pipeline 中执行 sudo 的时候不需要输入密码
·331 字·1 分钟
本文介绍了如何在 Jenkins Pipeline 中执行 sudo 命令而无需输入密码,提供了具体的实现方法和示例代码。
Jenkins Linux Agent 配置
·353 字·1 分钟
本文提供了 Jenkins Linux Agent 的逐步配置指南,包括 Java 运行时的准备、节点创建以及常见问题的排查方法。
Jenkins Windows Agent 配置
·608 字·2 分钟
本文提供 Jenkins Windows Agent 的详细配置步骤,包括 Java 运行时准备、节点创建以及常见问题的排查方法。
如何通过 Jenkins 进行资源的锁定和释放
·901 字·2 分钟
本文介绍了如何使用 Jenkins 的 Lockable Resources 插件来管理和锁定资源,确保在多任务环境中资源的独占性和安全性。
在大型企业里维护多分支流水线
·1598 字·4 分钟
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
通过 Jenkins 来提交修改的代码 git push by Jenkins
·439 字·1 分钟
如何通过 Jenkins Pipeline 脚本来提交修改的代码到 Git 仓库,包括克隆仓库、修改代码和推送更改等步骤。