ploy的插件,用于使用ezjail配置FreeBSD监狱。
项目描述
概述
安装
ploy_ezjail最好使用easy_install、pip或buildout中的zc.recipe.egg进行安装。
主服务器
要使用ploy_ezjail,您需要一个运行FreeBSD的主机,您想要在上面管理监狱。
您可以使用[ez-master:masterid]声明一个主服务器,其中masterid是您想要为这个主服务器使用的名称。现在您可以为ploy实例添加选项,或者可以使用instance选项来引用配置中的另一个实例,如下所示
[ez-master:master1] host = myhost.example.com [plain-instance:foohost] host = foohost.example.com [ez-master:master2] instance = foohost
后者与其它ploy后端插件结合使用最为有用,因为它允许您轻松地在提供者之间切换,即在开发期间在VirtualBox上部署一个ez-master,在生产环境中部署一个普通实例。
选项
- debug-commands
如果设置为yes,则在主机上执行的操作将在本地回显。
- instance
用于此主机的实例。如果为空,则使用本地机器,无需ssh连接。
- ezjail-admin
主机上ezjail-admin脚本的路径。默认为/usr/local/bin/ezjail-admin。
- sudo
使用sudo在主机上运行命令。
- ezjail-use-one-prefix
为start和stop命令使用单个前缀。当在/etc/rc.conf中设置ezjail_enable="NO"时,这很有用。可选
实例
目前所有jail都将使用ZFS(ezjail-admin的-c zfs选项)创建,因此主机需要相应地设置。
选项
- ip
用于jail的IP地址。
这可以是单个IPv4地址
ip = 10.0.0.3
或连接到不同设备的任意数量的IPv4和IPv6地址
ip = lo1|10.0.0.3,vtnet0|2a03:b0c0:3:d0::3a4d:c002
后者格式是ezjail的。 必需
- ezjail-flavour
用于此jail的口味。这在上ezjail文档中有解释。
- ezjail-name
用于jail的名称。默认情况下使用实例的id。
- mounts
jail的附加挂载点。您可以每行指定一个挂载点。格式为
src=SRC dst=DST [ro=true] [create=true]
其中src是主机上的路径,dst是jail内的路径。
如果ro设置为true,则挂载为只读。
当启用create时,则使用mkdir -p创建src路径。dst路径始终在jail内部使用mkdir -p创建。
您可以使用{zfs[name]}在src中引用ZFS分区,其中name是ez-zfs分区名称。您可以在src和dst中都使用jail实例的名称{name}。示例
src=/foo dst=/foo src={zfs[backup]} dst=/bak src={zfs[data]}/{name} dst=/mnt/data create=true src={zfs[static]} dst=/mnt/static ro=true
- no-terminate
如果设置为yes,则jail不能通过ploy终止,直到将设置更改为no或完全删除。
- startup_script
本地脚本(相对于配置文件的位置)的路径,该脚本将在jail创建和第一次启动后立即运行。
- rc_require
表示此jail需要启动哪些其他jail的字符串,从而有效地允许您定义jail的启动顺序。有关更多信息,请参阅rcorder(8)。此值在每次jail启动时都会写入,而不仅仅是创建时,因此要使更改生效,只需重新启动即可。可选
- rc_provide
表示此jail提供什么的字符串。 ezjail 本身始终将其jails设置为提供 standard_ezjail,其中 ploy_ezjail 添加jail的名称。换句话说,如果您只想使用jail的名称来构建启动顺序,则不需要设置此值。如果您想为此jail提供任何其他值,请在此处设置。此值在jail每次启动时都会写入,而不仅仅是创建初始时,因此要使更改生效,只需重新启动即可。 可选
- rc_before
表示此jail应在哪些其他jail之前启动的字符串,从而有效地允许您定义jail的启动顺序。有关详细信息,请参阅 rcorder(8)。此值在jail每次启动时都会写入,而不仅仅是创建初始时,因此要使更改生效,只需重新启动即可。 可选
- jail_*
允许设置特定于jail的设置。例如,使用 jail_devfs_ruleset="5" 为此jail使用devfs规则集编号5。有关详细信息,请参阅 man ezjail “Per-Jail options”(从选项名称中省略 JAILNAME 部分)。 可选
ZFS 部分
您可以通过 [ez-zfs:name] 部分指定 ZFS 文件系统。这用于jail的挂载,以获取挂载点和验证路径是否存在以及它是否是自己的ZFS文件系统。您还可以使用 create 选项创建新的ZFS文件系统。
选项
- create
如果设置为 yes,则文件系统在首次使用时创建。
- path
指定此文件系统的路径。这不是挂载点,而是ZFS路径。您可以使用 {zfs[name][path]} 引用其他ZFS部分。 name 是引用的ZFS部分的名称。末尾的 [path] 是必需的,否则您将获得引用的ZFS部分的挂载点。示例
[ez-zfs:data] path = tank/data [ez-zfs:shared] path = {zfs[data][path]}/shared [ez-zfs:jails] path = {zfs[data][path]}/jails [ez-zfs:backup] create = true path = tank/backup
更改日志
2.0.0 - 2022-08-17
删除了对Python 3.6的支持。[fschulze]
添加了对Python 3.10的支持。[fschulze]
添加 rc_before 选项。[fschulze]
添加对特定于jail的设置的支持。[fschulze]
添加 ezjail-use-one-prefix 选项。[fschulze]
将 flavour 选项重命名为 ezjail-flavour。旧的选项仍然有效,但将来将弃用。[fschulze]
2.0.0b4 - 2021-07-16
修复了从ezjail命令报告错误时的Python 3.x编码错误。[fschulze]
使用完整的实例名称进行 init_ssh_key 登录,以便在多个主实例的情况下更容易进行调试。[fschulze]
2.0.0b3 - 2020-05-13
修复了Python 3.的ZFS部分。[fschulze]
2.0.0b2 - 2019-06-09
一些Python 3.x编码相关修复。[fschulze]
删除对Python 3.4的支持。[fschulze]
2.0.0b1 - 2018-02-07
支持ploy 2.0.0。[fschulze]
1.5.1 - 2018-02-03
通过将名称中的点替换为下划线修复了FreeBSD 11.x的启动脚本。[fschulze]
1.5.0 - 2017-12-17
添加 get_fingerprints 以支持所有密钥类型的宿主密钥。[fschulze]
修复了各种情况下的jail宿主 status 命令。[fschulze]
在多个错误上输出stdout以及stderr。这可以让一个人在jail无法启动时看到额外的调试信息。[fschulze]
1.4.0 - 2015-10-16
允许通过 ezjail-name 设置jail名称,而不是使用实例ID作为默认值。[fschulze]
1.3.0 - 2015-09-03
通过提供有用的错误消息而不是跟踪信息来改进错误处理。[fschulze]
允许设置jail的启动顺序。[tomster]
1.2.0 - 2015-03-05
从ploy 1.2.0版本开始使用新的Executor辅助程序,该程序可以处理SSH代理转发。[fschulze]
启用“本地模式”,如果instance选项为空,所有命令都在本地执行。[fschulze]
1.1.0 - 2014-10-27
在请求主机的状态时,打印所有jails的状态。[fschulze]
在尝试连接之前检查jail状态。[fschulze]
使用ploy 1.0.2版本中的新辅助程序来设置proxycommand。[fschulze]
1.0.0 - 2014-07-19
添加了文档。[fschulze]
1.0b9 - 2014-07-08
修复了打包和测试问题。[fschulze]
1.0b8 - 2014-07-04
Python 3兼容性。[fschulze]
将mr.awsome重命名为ploy,将mr.awsome.ezjail重命名为ploy_ezjail。[fschulze]
1.0b7 - 2014-06-16
为proxyhost和proxycommand选项提供默认值。[fschulze]
将ez-master的配置与其使用的实例合并。[fschulze]
1.0b6 - 2014-06-11
将代理实例配置的更改传递给代理实例配置。[fschulze]
1.0b5 - 2014-06-10
强制销毁jail。与ezjail 3.4.1一起使用,这解决了有时ZFS文件系统没有被删除,jail无法在没有人工干预的情况下启动的问题。[fschulze]
1.0b4 - 2014-05-22
在将代理实例的配置复制到配置文件后清除massagers,以防止在创建代理实例时发生冲突。[fschulze]
1.0b3 - 2014-05-21
修复了使[instance:...]使用ez-master工作的错误。[fschulze]
1.0b2 - 2014-05-15
向ez-master部分添加了instance选项,以使用其他实例作为jail主机。[fschulze, tomster]
将setuptools-git从setup.py移动到.travis.yml,它仅适用于发布和测试。[fschulze]
1.0b1 - 2014-03-24
首次发布 [fschulze]
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。