用于远程部署、配置和维护FreeBSD jail的工具
项目描述
BSDploy – FreeBSD jail部署
BSDploy是一个综合性的工具,可以远程FreeBSDjail主机和jail。
其主要设计目标是降低可重复的jail设置障碍。
您鼓励在产品主机上执行更新,而不是更新您的设置描述,测试它与相同配置的预发布场景,直到它按预期工作,然后有信心将更新的配置应用到生产环境中。
主要功能
部署 从头开始完整jail主机
描述 一个或多个jail主机及其jail的规范配置
声明性配置 – 将Ansible playbooks应用到主机和jail
强制维护 – 在主机和jails上运行 Fabric 脚本
使用 ZFS 存储池和文件系统 与 全磁盘加密 进行配置
模块化供应,带有适用于 VirtualBox 和 Amazon EC2 的插件,并支持更多架构。
工作原理
BSDploy 以名为 ploy 的命令行工具的形式出现,它安装在所谓的 控制主机(通常是您的笔记本电脑或台式机)上,然后您可以使用它控制一个或多个 目标主机。BSDploy 在目标主机上仅安装 Python 和 ezjail – 其他所有内容都保留在控制主机上。
示例会话
以下是一个简化的在 Amazon EC2 实例上的 jail 内部简单网站的引导过程的示例
# ploy start ec-instance [...] # ploy configure jailhost [...] # ploy start webserver [...] # ploy configure webserver [...] # ploy do webserver upload_website
两全其美
结合声明性方法来设置系统的初始状态,以及命令式方法来提供对该状态的维护操作,具有显著的优势。
由于命令式脚本可以运行在一个良好的定义环境中,因此您可以保持它们简短而紧凑,而无需担心所有那些边缘情况。
由于playbooks不需要担心执行更新或其他任务,因此您不必在它们中充斥着诸如 restarted 或 updated 或 – 更糟糕的是 – 如 shell 命令之类的非状态。
内部原理
BSDploy 的范围非常宏大,因此它自然不试图自己完成所有工作。事实上,BSDPloy 只是一个相当薄、略有偏见的现有优秀工具的包装。
除了上述提到的 Ansible 和 Fabric 之外,它还在主机上使用 ezjail 来管理jails,并在客户端使用 ployground family 的众多成员来处理几乎所有其他任务。
完整文档
完整文档托管在 RTD 上。
更改
3.0.0 - 2022-08-17
[功能] 支持 Python 3.10。
3.0.0b4 - 2020-09-08
[功能] 支持使用 bootstrap-password 选项。
[功能] 允许通过 bootstrap-destroygeom 覆盖 destroygeom。
[功能] 允许通过 bootstrap-packages 覆盖引导过程中安装的软件包。
[修复] 修复了 mfsbsd 引导脚本中 devfs 设备的路径。
3.0.0b3 - 2019-06-09
[功能] 支持 Ansible >= 2.4.x 的 Python 3.x。
[功能] sysrc 模块支持 dst 选项,以使用除默认 /etc/rc.conf 之外的其他文件。
[更改] 将 bootstrap-host-keys 重命名为 bootstrap-ssh-host-keys。
[更改] 重新引入 bootstrap-ssh-fingerprints 以允许覆盖引导过程中的 ssh-fingerprints。
3.0.0b2 - 2018-02-11
[更改] 在引导过程中自动生成缺失的 ssh 主机密钥之前询问。
[更改] bootstrap-files 的默认位置从 [playbooks-directory]/bootstrap-files 更改为 [playbooks-directory]/[instance-uid]/bootstrap-files。
[更改] 将 firstboot-update 重命名为 bootstrap-firstboot-update 以匹配其他变量。
3.0.0b1 - 2018-02-07
[更改] 切换到使用 ploy 2.0.0 和 Ansible 2.4.x。
如果更具体的[master-name]-[instance-name]/fabfile.py不存在,则当[instance-name]/fabfile.py存在时,将设置fabfile选项。
[修复] 尊重mfsbsd的boottrap-packages设置。
2.3.0 - 2017-11-13
[修复] 修复pf循环冗余锁定问题。感谢@igalic报告和修复此问题。
[特性] 在bootstrap中添加ed25519支持,这是paramiko>=2所必需的。您应该检查您的宿主机上是否存在您可能想要复制到bootstrap文件目录的ssh_host_ed25519_key*文件,与其它ssh_host_*_key*文件一起。
[更改] 移除了本地rsa1主机密钥生成。
2.2.0 - 2016-11-08
[特性] 添加fabric助手以在宿主机、jails中以及bsdploy风味中保持pkg更新。
[特性] 通过在ez-master定义中将bootstrap设置为digitalocean来支持在Digital Ocean上启动。
[修复] 通过在ez-master定义中设置jails_zfs_root来允许ezjail使用非默认的zfs根。
2.1.0 - 2015-07-26
[特性] 启用jail host的rc.conf中的jail_parallel_start。
[修复] 如果名称匹配,则在zpool ansible模块中导入现有的zpool。
[修复] 在zpool ansible模块中首先尝试附加geli设备,如果它已经存在,则只有在失败时才从头创建。
[修复] 在zpool ansible模块中正确处理多个geli加密设备。
[修复] 在启动过程中也尊重ploy_jail_host_pkg_repository变量(不仅仅是jailhost配置)。
[特性] 在bootstrap过程中复制的文件可以使用ploy vault命令进行加密。这对于bootstrap-files中的私有ssh主机密钥非常有用。
[修复] 修复了virtualbox默认设置的设置,以便可以正确覆盖。
[特性] 添加了新变量:ploy_jail_host_cloned_interfaces/ploy_jail_host_default_jail_interface,以提供更多关于网络接口设置的灵活性。
[更改] 放弃对Ansible版本< 1.8的支持(现在支持1.8.x和1.9.x)。
[修复] 在安装ezjail自身时,尊重代理设置,而不仅仅是安装ezjail运行期间(感谢mzs114! https://github.com/ployground/bsdploy/pull/81)。
2.0.0 - 2015-03-05
[特性] 添加了对http代理的支持。
[更改] 默认禁用pkg的auto update功能。
[特性] 添加了对firstboot-freebsd-update的支持(默认禁用)。
[更改] [向后不兼容] 从ipfilter切换到pf - 您必须将任何现有的ipnat_rules转换为新的pf_nat_rules。
[特性] 为VirtualBox实例提供默认值(减少了模板化)。
[修复] 设置完整的/etc/ntp.conf而不是尝试篡改现有的一个。
[特性] 支持作为非root用户进行配置(见https://github.com/ployground/bsdploy/issues/62)。
[更改] 转换为语义版本控制(见http://semver.org)。
1.3 - 2014-11-28
[弃用] rsync_project在所有情况下都不工作,打印警告。
[特性] 添加了rsync助手,它是对rsync命令的小型包装。
[修复] 修改/usr/local/etc/pkg/repos/FreeBSD.conf的格式,以便正确识别软件包仓库。
[更改] 在所有地方使用季度软件包仓库。
1.2 - 2014-10-26
[特性] 提供fabfile的默认和约定赋值。
[文档] 记录EC2实例的配置。
[修复] 修复rc.conf中geli设置的字符串转义。
[特性] 使sshd监听地址可配置。
[修复] 修复zfs_auto_snapshot角色中周期性脚本的权限。
[文档] 描述如何为mfsBSD使用http代理。
1.1.1 - 2014-09-25
在文档中将虚拟机的内存从512MB增加到1024MB。
修复rc.conf中jail设置的转义问题,防止jail无法启动
1.1.0 - 2014-08-13
将FreeBSD 10.0作为默认的引导和文档使用
始终将模板的结果编码为UTF-8
修复与Ansible 1.7的兼容性
1.0.0 - 2014-07-20
添加了bsdploy.fabutils,其中包含rsync_project的包装器
自动为fabric脚本设置env.shell。
尽可能在引导过程中本地生成ssh主机密钥。
如果本地存在ssh主机密钥,则自动为ezjail master设置fingerprint选项。
1.0b4 - 2014-07-08
删除自定义的ploy和ploy-ssh控制台脚本。
1.0b3 - 2014-07-07
使ploy_virtualbox成为可选依赖项
1.0b2 - 2014-07-07
从mr.awsome*依赖迁移到ploy*
各种错误修复
添加测试
1.0b1 - 2014-06-17
首次公开发布
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
bsdploy-3.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a217d2ec5806a00c85592308fb4037c79ea024be4c4d32f02609513ab81f1aed |
|
MD5 | d898487021cd5870ab62819706e0305f |
|
BLAKE2b-256 | b724cbffbab9ef00ca3cfb774acab04660107cc4685ee4b7b35ae6da115661e5 |