如何使用iocage创建FreeNAS Jails

时间:2020-01-09 14:17:01  来源:igfitidea点击:

如何从命令行在FreeNAS服务器上安装和使用称为iocage的FreeBSD Jail管理工具?
如何使用iocage命令创建FreeNAS Jail?

iocage是FreeBSD的 Jail或容器管理器工具。
它也可以在基于FreeNAS的NAS系统上使用。
它具有FreeBSD操作系统必须提供的一些最佳功能和技术。

iocage工具通过用于管理监狱的简单易懂的命令语法提供了易用性。
该页面显示了如何使用iocage命令行选项管理FreeNAS Jails。

第1步登录FreeNAS服务器

使用ssh命令:

ssh user@freenas-box-name
ssh Hyman@nas04

使用sudo命令成为root用户:

$ sudo -i

找到我们的FreeNAS服务器IP地址和接口名称,执行:

# ifconfig

请记下您的真实网络接口。
您必须激活,即将zpool设置为激活以使用iocage。
我的zpool名称是theitroad(使用zpool list获取zpool列表),所以我运行:

# iocage activate theitroad

第2步:获取版本的FreeBSD以供监狱使用

执行以下命令(此操作只需执行一次):

# iocage fetch

使用以下zpool/zfs命令进行验证:

# zpool list
# zfs list

步骤3使用iocage命令创建FreeNAS Jails

为名为igb1的监狱接口创建一个名为backup的监狱,其IP地址为192.168.2.30/24:

# iocage create -n backupjail ip4_addr="igb1|192.168.2.30/24" -r 11.1-RELEASE

输出示例:

backup successfully created!

列出监狱 Jail

要列出新创建的监狱运行:

# iocage list

输出示例:

+-----+------------+-------+--------------+--------------+
| JID |    NAME    | STATE |   RELEASE    |     IP4      |
+=====+============+=======+==============+==============+
| -   | backupjail | down  | 11.1-RELEASE | 192.168.2.30 |
+-----+------------+-------+--------------+--------------+

启动名为backup的 Jail

# iocage start {jailNameHere}
# iocage start backupjail

输出示例:

* Starting backupjail
  + Started OK
  + Starting services OK

FreeNAS重新启动时如何自动启动 Jail

# iocage set boot=on backupjail

输出示例:属性:引导已更新为on验证:

# iocage get all backupjail | less
# iocage get all backupjail | grep boot
# iocage get boot backupjail

如何登录 Jail

语法为:

# iocage console {yourJailNameHere}
# iocage console backupjail

登录后,在backupjail上安装pkg命令:

# pkg

步骤4有用的 Jail管理命令

让我们看一些有用的iocage命令。

显示所有 Jail的资源使用情况

# iocage df

在指定的 Jail中运行命令

# iocage exec {jailNameHere} {FreeBSDCOmmandHERE}
# iocage exec backupjail ifconfig

如何停止指定的 Jail或所有

# iocage stop ALL
# iocage stop backupjail

重新启动指定的 Jail或所有

# iocage restart ALL
# iocage restart backupjail

销毁/删除/删除指定的 Jail

这将破坏所有数据,因此请注意:

# iocage destroy backupjail

运行freebsd-update将指定的监狱更新到最新补丁程序级别

# iocage update backupjail

在FreeNAS上创建新 Jail的命令摘要

创建一个名为rsyncjail的 Jail:

# iocage create --release 11.1-RELEASE --name rsyncjail \
boot="on" \
allow_raw_sockets="1" \
ip4_addr="igb1|192.168.2.31/24" \
resolver="nameserver 192.168.2.254;nameserver 8.8.8.8"

在监狱中,更新所有软件包,启用SSHD,添加新用户并安装rsnapshot软件包:

# iocage console rsyncjail
# pkg update && pkg upgrade
# echo 'sshd_enable="YES"' >> /etc/rc.conf
# service sshd start
# pw useradd -n Hyman -G wheel -s /bin/tcsh -m -d /home/Hyman
# passwd Hyman
# pkg install rsnapshot

创建可以运行OpenVPN服务器或客户端的 Jail

在以下示例中,我将启用vnet,允许通过原始套接字ping,以使openvpn客户端监狱连接到我的Ubuntu OpenVPN服务器:

# iocage create --release 11.1-RELEASE --name openvpnjail \
vnet="on" boot="on" allow_raw_sockets="1" \
ip4_addr="vnet0|192.168.2.30/24" \
defaultrouter="192.168.2.254" \
resolver="nameserver 192.168.2.254;nameserver 8.8.8.8"

运行以下命令以允许为FreeBSD/FreeNAS监狱创建Tap设备:

/sbin/devfs rule -s 4 add path 'tun*' unhide

请注意,您必须在FreeNAS UI中添加以下预初始化任务,以便OpenVPN可以创建我通常为每个服务安装监牢的Tap设备。
例如,我为每个FreeBSD服务(例如Nginx/PHP/Perl/Python Web服务,MariaDB数据库服务器,Deluge,Duplicity/Rsnapshot备份服务等)创建了一个 Jail。