跳转到主要内容

ezjail的远程控制和便利包装器

项目描述

ezjail-remote 是一个针对优秀工具 ezjailezjail-admin 命令的“远程控制”和便利包装器(该工具本身是针对 jails、FreeBSD的轻量级虚拟化解决方案)的便利包装器。

其主要功能包括

  • 对风味更复杂的支持,即交互式配置和/或模板,而不是ezjail的硬编码风味

  • 您可以在创建由 ezjail-remote 创建的jails后立即ssh进入(不再需要手动处理sshd配置或上传您的公钥!)

  • ezjail-admin 不同,ezjail-remote 并未安装在jails主机上,而是在您的本地机器上。这意味着 它不会在jails主机上引入任何其他依赖(ezjail本身故意限制自己为 sh)。

..注意:通常,ezjail-remote试图跟上ezjail的发展,除非另有说明,否则它需要(并默认安装)ezjail的最新版本(截至本写作时为3.2.2)。

用法

ezjail-remote 使用 fabric 库在远程执行其任务。基本上,它提供了一个所谓的 fabfile,其中包含了所有 ezjail-admin 的命令。

这意味着它的使用方式与 ezjail-admin 略有不同。特别是,您通过 -H 开关提供 jail 服务器的主机名,并通过冒号分隔的参数(如 jail 的名称等)提供命令的参数

ezjail-remote -H host(s) <COMMAND>:param1,param2,param3

或者

ezjail-remote -H host(s) <COMMAND>:param1=foo,param3=bar

请参阅此处 fabric 提供的完整文档 什么是 fabric 可以提供的

特别是,您可以使用...

  • 运行 ezjail-remote --help 以查看可用 选项 列表

  • 运行 ezjail-remote -l 以查看可用 命令 列表

  • 运行 ezjail-remote -d COMMAND 以查看命令的详细描述

使用 fabric 的副作用是,您可以同时针对多个 jailhosts 运行 ezjail-admin 命令。

引导

ezjail-remote 不仅使创建和管理 jail 变得容易,而且还帮助您从头开始设置 jailhost 环境。这是通过 bootstrapinstall 命令完成的。

要成功运行引导命令,主机上需要满足以下要求

  • sshd 正在运行

  • 启用了 root 的 ssh 登录(暂时)

  • 目前我们还需要一个互联网连接(用于安装 ezjail),但最终这将被上传 ezjail 的副本所取代。

例如(在控制台以 root 登录)

echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'ifconfig_em0=DHCP' >> /etc/rc.conf
passwd # give yourself a TEMP_PASSWORD
dhclient em0 # note the IP_ADDR you get
/etc/rc.d/sshd onestart

现在您可以使用您提供的临时密码运行引导命令

ezjail-remote -H IP_ADDR bootstrap

  • 禁用 root 登录

  • 永久启用 jail 主机的 SSH(并限制为首选 IP 地址)

  • 创建一个具有您用户名和公钥 SSH 的管理员用户

..note: 在使用 install 命令安装 ezjail 之前,您可能想设置一些额外的东西,例如 ZFS 池、网络接口别名等。

要安装 ezjail,您可以使用 install 命令,该命令可以从端口安装或从 CVS 安装(对于勇敢的人)

ezjail-remote -H IP_ADDR install

如果您想使用 CVS 快照

ezjail-remote -H IP_ADDR install:source=cvs

如果您想使用 ZFS(您应该这样做!)请通过 jailzfs 参数提供应使用的池

ezjail-remote -H IP_ADDR install:jailzfs='jails/ezjail'

命令

在其最简单形式中,ezjail 远程提供了与 ezjail-admin 完全相同的命令,即 [archive|config|console|create|delete|install|list|restore|start|stop|update]。除了这些,它还提供了 createdestroy(后者是 delete 命令的一个更彻底的变体)的增强版本。

创建

在指定主机上创建一个新的 jail 实例,创建一个具有 sudo 权限的管理员用户,并启用通过公钥的 ssh 访问。

设置 jail 后,它尝试执行从 ezjailremote.flavours.<name-of-flavour>setup 方法,传递所有参数,包括任何额外的任意关键字参数。

参数

名称

新 jail 的名称,必需

IP

IP 地址,必需

管理员

监狱的管理员用户名,默认为当前用户。该用户将被创建并添加到wheel组(这反过来将允许无需密码使用sudo)。

密钥文件

为管理员用户安装的公钥,默认为~/.ssh/identity.pub

风味

本地风味的名称,默认为basic

ctype

默认为None,指代-c标志,意味着您可以将其设置为simplebdeelizfs

销毁

停止、删除和删除指定的jail实例(但在询问您最后一次,明确地)。然而,一旦您确认,jail将无法撤销。

参数

名称

新 jail 的名称,必需

安装

只需使用easy_install即可。

easy_install ezjail-remote

开发

要开发ezjail-remote本身,请检出此存储库的副本,然后

virtualenv . --no-site-package
./bin/python setup.py develop

待办事项

  • 记录风味开发文档

  • 为风味使用基类

  • 使用ezjail-remote list-flavours列出它们(及其docstr)

  • 允许风味的链式/嵌套/堆叠(即始终包括basic)

变更历史

0.2.2 - 2013-05-03

  • 使用ezjail 3.2.2功能默认创建ZFS监狱

  • 使创建的监狱中的sshd的使用和配置可选

  • 各种较小的错误修复

  • 官方退出alpha阶段 :)

0.2.1 - 2012-09-10

  • 添加了对创建ZFS(和其他基于镜像)监狱的支持

0.2 - 2012-09-07

  • 将安装分为bootstrap(在ezjail设置之外已被证明很有用)和install

  • 添加了对ZFS的支持

  • 可以从CVS安装ezjail

  • 添加了对ezjail-remote包之外的风味的支持(使用命名空间包为ezjailremote.flavours.*)

  • 添加了startstopjls命令。

0.1 - 2011-07-29

初始发布。提供所有命令的“透传”,以及增强版的createdestroy

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

ezjailremote-0.2.2.zip (23.0 kB 查看哈希值)

上传时间

由以下机构支持