#jail #freebsd #create-user #content #iocage

bin+lib iocage-provision

创建基于 iocage 的 FreeBSD 容器

3 个不稳定版本

0.2.0 2021 年 7 月 4 日
0.1.1 2021 年 7 月 3 日
0.1.0 2021 年 7 月 3 日

#1633命令行工具

MPL-2.0 许可证

71KB
1.5K SLoC

Rust 649 SLoC // 0.0% comments Shell 613 SLoC // 0.0% comments Pan 216 SLoC // 0.0% comments


iocage-provision

创建一个基于 iocage 的 FreeBSD 容器。

持续集成 CI Status
Bors enabled
最新版本 Latest version
文档 Documentation
组件下载 Crate downloads
GitHub 下载 Github downloads
许可证 Crate license

此程序使用 iocage 来创建一个 VNET 网络化的 ZFS 后备的 FreeBSD 容器。计算了适合默认网关和基础版本的默认值,以减少常见情况下的参数数量。可选的 --ssh 标志将在容器启动时安装并启动 SSH 服务,以实现远程管理。最后,可选的 --user 选项将通过从外部/主机系统复制值在新的容器中创建用户。

目录

命令行界面

用法

示例 1:使用名称和地址配置新容器

以下命令将创建一个名为 ferris 的新容器,其 IP 地址/子网掩码为 192.168.0.100/24

$ iocage-provision ferris 192.168.0.100/24

示例 2:使用用户和 SSH 服务配置新容器

以下命令将创建一个具有运行中的 SSH 服务的容器,并从主机系统复制名为 jdoe 的用户(注意,该用户必须在主机系统上存在)。

$ iocage-provision --user jdoe --ssh homebase 10.0.0.25/24

示例 3:使用自定义默认网关和基础版本

以下命令将通过覆盖默认网关和默认基础版本值来创建一个新容器。

$ iocage-provision --gateway 10.1.0.254 --release 11.1-RELEASE \
  bespoke 10.1.0.1/24

安装

install.sh(预构建的二进制文件)

https://fnichol.github.io/iocage-provision/install.sh 提供了一个安装器,用于安装适用于 FreeBSD 的合适预构建二进制文件。它可以下载并本地运行,或者以 "curl-bash" 风格通过管道传输到 shell 解释器,如下所示。请注意,如果您反对这种想法,您可以选择下面的某些替代方案。

要将最新版本安装到 $HOME/bin

> curl -sSf https://fnichol.github.io/iocage-provision/install.sh | sh

当安装程序以 root 身份运行时,安装目录默认为 /usr/local/bin

> curl -sSf https://fnichol.github.io/iocage-provision/install.sh | sudo sh

可以从 HEAD 分支构建的 夜间版 可用,也可以安装

> curl -sSf https://fnichol.github.io/iocage-provision/install.sh \
    | sh -s -- --release=nightly

要查看完整选项,请使用帮助命令

> curl -sSf https://fnichol.github.io/iocage-provision/install.sh \
    | sh -s -- --help

GitHub 发布版(预构建的二进制文件)

每个版本都附带在 GitHub 发布 中发布的二进制工件。程序 install.sh 从此位置下载其工件,因此这可以作为一个手动替代方案。每个工件都附带了 MD5 和 SHA256 校验和,以帮助在目标系统上验证工件。

Cargo 安装

如果您的系统上已安装 Rust,则使用 Cargo 安装简单直接

> cargo install iocage-provision

从源码安装

要从源代码安装,您可以将 Git 仓库克隆,使用 Cargo 构建,并将二进制文件复制到目标目录。这将从主分支的最新提交构建项目,这可能不对应于最新的稳定版本

> git clone https://github.com/fnichol/iocage-provision.git
> cd iocage-provision
> cargo build --release
> cp ./target/release/iocage-provision /dest/path/

持续集成状态

构建(主分支)

操作系统 目标 稳定 Rust
FreeBSD x86_64-unknown-freebsd FreeBSD Build Status

测试(主分支)

操作系统 稳定 Rust 夜间 Rust
FreeBSD FreeBSD Stable Test Status FreeBSD Nightly Test Status

注意:最低支持 Rust 版本(MSRV)也已测试,并在 CI 仪表板 中查看。

检查(主分支)

状态
lint Lint Status
格式 Format Status

行为准则

此项目遵守 贡献者公约。通过参与,您应遵守此公约。请将不可接受的行为报告给 [email protected]

问题

如果您对此项目有任何问题或疑问,请通过 GitHub 问题 与我们联系。

贡献

我们邀请您为新功能、修复或更新做出贡献,无论大小;我们总是很高兴收到拉取请求,并尽我们所能尽快处理它们。

在开始编码之前,我们建议您通过 GitHub 问题 讨论您的计划,特别是对于更具雄心的贡献。这给了其他贡献者一个机会,将您引向正确的方向,对您的设计方案提供反馈,并帮助您了解是否有人正在做同样的事情。

发布历史

查看 更改日志 以查看完整的发布历史。

作者

Fletcher Nichol ([email protected]) 创建和维护。

许可证

根据 Mozilla 公共许可证版本 2.0 (LICENSE.txt) 授权。

除非您明确表示否则,根据 MIT 许可证的定义,您有意提交以包含在作品中的任何贡献,均应按上述方式授权,不附加任何其他条款或条件。

依赖关系

~4–14MB
~184K SLoC