ezjail的远程控制和便利包装器
项目描述
ezjail-remote 是一个针对优秀工具 ezjail 的 ezjail-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 环境。这是通过 bootstrap 和 install 命令完成的。
要成功运行引导命令,主机上需要满足以下要求
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]。除了这些,它还提供了 create 和 destroy(后者是 delete 命令的一个更彻底的变体)的增强版本。
创建
在指定主机上创建一个新的 jail 实例,创建一个具有 sudo 权限的管理员用户,并启用通过公钥的 ssh 访问。
设置 jail 后,它尝试执行从 ezjailremote.flavours.<name-of-flavour> 的 setup 方法,传递所有参数,包括任何额外的任意关键字参数。
参数
- 名称
新 jail 的名称,必需
- IP
IP 地址,必需
- 管理员
监狱的管理员用户名,默认为当前用户。该用户将被创建并添加到wheel组(这反过来将允许无需密码使用sudo)。
- 密钥文件
为管理员用户安装的公钥,默认为~/.ssh/identity.pub。
- 风味
本地风味的名称,默认为basic。
- ctype
默认为None,指代-c标志,意味着您可以将其设置为simple、bde、eli或zfs。
销毁
停止、删除和删除指定的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.*)
添加了start、stop和jls命令。
0.1 - 2011-07-29
初始发布。提供所有命令的“透传”,以及增强版的create和destroy。
项目详情
ezjailremote-0.2.2.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3d8a4f178f85f8357c92c78b4ed6956fbd640556cac9a2e6689f27cfa2658faa |
|
MD5 | dad16a7a77d10f1533c3438fd3f7ca92 |
|
BLAKE2b-256 | 0744d6e6f41f0abc7987145075fc511bd8223812352c625f966af4ab3a1c741f |