我正在 FreeNAS 服务器上设置 RancherOS VM,但在设置 NFS 共享时遇到了问题。我有一个 .yml 文件,可以设置一个共享挂载,但我希望能够设置两个单独的共享。在下面的配置 .yml 文件中,我尝试在卷下为 nfs-2 添加第二行,然后在环境 (Share2) 下添加我想要共享的第二个位置。这导致创建了 nfs-2 共享,但无法在 ssh 之外访问,所以基本上我可以使用 ssh 查看和添加/删除目录,但我不知道目录的实际位置,也无法使用 SMB 访问它。然后,nfs-1 共享挂载将访问环境中最后一行的共享卷。如果 nfs-1 共享中有目录,则可以在 ssh 中查看它们,并且我可以创建和删除新目录。
rancher:
services:
nfs:
image: xxxxxxx/rancher-nfs-client
labels:
io.rancher.os.after: console, preload-user-images
io.rancher.os.scope: system
net: host
privileged: true
restart: always
volumes:
- /usr/bin/iptables:/sbin/iptables:ro
- /mnt/nfs-1:/mnt/nfs-1:shared
- /mnt/nfs-2:/mnt/nfs-2:shared
environment:
SERVER: 192.168.1.xxx
SHARE: /mnt/mntVolume/rancher
SHARE: /mnt/mntVolume/Share2
我还尝试在第二次共享之前第二次添加 SERVER 行,但这没有任何改变。
基本上,我想知道是否有办法编辑卷和环境部分,以便能够在 Rancher 存储池中为 Docker 容器和配置文件创建一个 NFS 共享,并在 Share2 中创建另一个 NFS 共享,它是现有文件共享目录的存储池。
答案1
我刚刚在 FreeNAS 上设置了 RancherOS,需要安装多个共享。以下是我所做的有效操作。我创建了/var/lib/rancher/conf/cloud-config.d/multimount-cloud-config.yml
以下内容:
#cloud-config
write_files:
- path: /etc/rc.local
permissions: "0755"
owner: root
content: |
#!/bin/bash
mkdir -p /mnt/dockershare
mkdir -p /mnt/plex
cloud-init-execute
rancher:
services:
nfs:
image: d3fk/nfs-client
labels:
io.rancher.os.after: console, preload-user-images
io.rancher.os.scope: system
net: host
privileged: true
tty: true
restart: always
volumes:
- /usr/bin/iptables:/sbin/iptables:ro
mounts:
- ["10.9.8.7:/mnt/big-tank/dockershare", "/mnt/dockershare", "nfs", ""]
- ["10.9.8.7:/mnt/big-tank/plexmedia", "/mnt/plex", "nfs", ""]