英语法语西班牙文

OnWorks 网站图标

virt-builder - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 virt-builder

这是 virt-builder 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


virt-builder - 快速构建虚拟机镜像

概要


virt-builder 操作系统版本
[-o|--输出磁盘图像] [--大小 SIZE] [--format raw|qcow2]
[--arch 架构] [--附上 ISOFILE]
[--chmod 权限:文件] [--commands-from-file 文件名]
[--copy SOURCE:DEST] [--copy-in LOCALPATH:REMOTEDIR]
[--删除路径] [--编辑文件:EXPR] [--firstboot SCRIPT]
[--firstboot-command 'CMD+ARGS'] [--firstboot-install PKG,PKG..]
[--hostname 主机名] [--install PKG,PKG..]
[--link TARGET:LINK[:LINK..]] [--mkdir DIR] [--move SOURCE:DEST]
[--密码用户:选择器] [--根密码选择器]
[--run 脚本] [--run-command 'CMD+ARGS'] [--scrub 文件]
[--sm-attach 选择器] [--sm-register] [--sm-remove]
[--sm-unregister] [--ssh-inject USER[:SELECTOR]] [--truncate FILE]
[--截断递归路径] [--timezone TIMEZONE] [--touch FILE]
[--更新] [--上传文件:DEST] [--写入文件:内容]
[--无日志文件] [--密码加密 md5|sha256|sha512]
[--selinux-relabel] [--sm-credentials 选择器]

virt-builder -l|--list [--long] [--list-format短|长|json]

virt-builder --notes 操作系统版本

virt-builder --打印缓存

virt-builder --cache-all-templates

virt-builder --删除缓存

virt-builder --get-kernel 磁盘
[--format raw|qcow2] [--输出 OUTPUTDIR]

商品描述


Virt-builder 是一个快速构建新虚拟机的工具。 您可以构建多种
用于本地或云使用的 VM,通常在几分钟或更短的时间内。 Virt-builder 也
有很多方法可以自定义这些 VM。 一切都从命令行运行,什么都没有
需要 root 权限,因此自动化和脚本编写很简单。

请注意,virt-builder 不会从头开始安装来宾。 它需要干净的准备,
数字签名的操作系统模板并对其进行自定义。 使用这种方法是因为它是
更快,但如果您需要进行全新安装,您可能需要查看 安装virt(1)
盎司安装(1)。

最简单的入门方法是查看下一节中的示例。

示例


列表 虚拟 可使用
virt-builder --list

将列出可供安装的操作系统。 自由选择
可再发行操作系统作为标准提供。 您也可以添加自己的(见下文)。

从列表中选择一个客人后,您可能想看看是否有任何安装
注意事项:

virt-builder --notes fedora-20

构建 a 虚拟
虚拟构建器 fedora-20

将为与 virt-builder 相同的架构构建 Fedora 20 映像(因此从
i386 安装将尝试构建 i386 映像(如果可用)。 这将拥有所有
默认配置(最小尺寸,无用户帐户,随机 root 密码,只有裸机
最少安装的软件等)。

do 而不去 需要以 root 身份运行此命令。

第一次运行它必须通过网络下载模板,但这会
缓存(参见“缓存”)。

输出文件的名称是从模板名称派生出来的,所以上面会是
fedora-20.img. 您可以使用以下命令更改输出文件名 -o 选项​​:

virt-builder fedora-20 -o mydisk.img

您也可以使用 -o 选项写入现有设备或逻辑卷。

virt-builder fedora-20 --format qcow2

同上,但将 qcow2 格式的输出写入 fedora-20.qcow2.

virt-builder fedora-20 --大小 20G

如上所述,但输出大小将为 20 GB。 来宾操作系统在复制到
输出(自动,使用 虚拟调整大小(1))。

virt-builder fedora-20 --arch i386

如上所述,但使用 i386 模板(如果可用)。

设置 密码
virt-builder fedora-20 --root-password 文件:/tmp/rootpw

创建 Fedora 20 映像。 根密码取自文件 /tmp/rootpw.

注意如果你 --root-密码 然后给客人一个 随机 根密码。

您还可以创建用户帐户。 请参阅下面的“用户和密码”。

主机
virt-builder fedora-20 --主机名 virt.example.com

将主机名设置为“virt.example.com”。

安装 软件
要从普通(来宾)软件存储库(例如 yum 或 apt)安装软件包:

virt-builder fedora-20 --install "inkscape,@Xfce Desktop"

(在 Fedora 中,“@”用于安装软件包组。在 Debian 上,您将安装一个
元包代替。)

要将核心包更新到最新版本:

virt-builder debian-7 --更新

对于使用 SELinux 的客户机,例如 Fedora 和 Red Hat Enterprise Linux,您可能需要执行
安装或更新软件包后 SELinux 重新标记(请参阅下面的“SELINUX”):

virt-builder fedora-20 --update --selinux-relabel

定制 安装
有许多选项可让您自定义安装。 这些包括:
- 跑/--运行命令, 在磁盘映像正在运行时运行 shell 脚本或命令
生成并允许您添加或编辑进入磁盘映像的文件。
--首次启动/--firstboot-命令,它允许您添加首先运行的脚本/命令
时间来宾靴。 - 编辑 编辑文件。 --上传 上传文件。

例如:

cat <<'EOF' > /tmp/yum-update.sh
yum -y更新
EOF

virt-builder fedora-20 --firstboot /tmp/yum-update.sh

或者干脆:

virt-builder fedora-20 --firstboot-command 'yum -y update'

这使得 百胜(8) “update”命令在guest 虚拟机第一次启动时运行一次。

或:

virt-builder fedora-20 \
--edit '/etc/yum.conf:
s/gpgcheck=1/gpgcheck=0/'

哪些编辑 /etc/yum.conf 在磁盘映像内部(在磁盘映像创建期间,很久以前
开机)。

您可以组合这些选项,并拥有所有类型的多个选项。

配置


- 帮帮我
显示帮助。

- 拱 建筑设计
对输出图像使用指定的架构。 这意味着必须有来源
为请求的架构提供请求的模板。

另见“架构”。

- 附 ISO文件
在定制阶段,给定的磁盘附加到 libguestfs
器具。 这用于提供额外的软件存储库或其他数据
定制。

您可能希望确保附加磁盘中的卷或文件系统是
标记(或使用 ISO 卷名),以便您可以在运行中按标签安装它们-
脚本:

mkdir /tmp/挂载
挂载标签=额外的/tmp/mount

你可以有多个 - 附 选项,格式可以是任何磁盘格式(不是
只是一个 ISO)。

另见: - 跑, "在构建时从侧库安装包",
基因图像(1) virt-make-fs(1)。

--附加格式 FORMAT
指定下一个磁盘格式 - 附 选项。 “FORMAT”通常是“raw”
或“qcow2”。 对 ISO 使用“原始”。

--缓存 DIR
--无缓存
--缓存 DIR 设置目录以使用/检查缓存的模板文件。 如果没有设置,
默认为任一 $XDG_CACHE_HOME/virt-builder/ or $HOME/.cache/virt-builder/.

--无缓存 禁用模板缓存。

--缓存所有模板
将所有模板下载到缓存中,然后退出。 请参阅“缓存”。

请注意,这不会缓存所有内容。 可能会上传更多模板。 还有这个
不缓存包( - 安装, - 更新 选项)。

--检查签名
--无检查签名
检查/不检查操作系统模板的数字签名。 默认是检查
签名,如果不正确退出。 使用 --无检查签名 绕过这个
检查。

参见 - 指纹.

- 卷曲 卷曲
指定一个替代 卷曲(1) 二进制。 您还可以使用它来添加 curl 参数,
例如禁用 https 证书检查:

virt-builder --curl "curl --insecure" [...]

--删除缓存
删除模板缓存。 请参阅“缓存”。

--失败时不删除
不要在构建失败时删除输出文件。 您可以使用它来调试故障
运行脚本。 有关调试图像的方法,请参阅“调试构建”。

如果 virt-builder 失败(或者,例如,某些
它运行的脚本失败)。

- 指纹 'AAAA BBBB ...'
检查索引和模板是否由具有给定指纹的密钥签名。
(指纹是一长串,一般写成10组4个十六进制
数字)。

您可以多次提供此选项。 如果您有多个源 URL,那么您
可以没有指纹,一个指纹或多个指纹。 如果你有
多个,那么每个必须与源 URL 1-1 对应。

- 格式 qcow2
- 格式
对于普通构建,这将选择输出格式。 默认是 .

通过 --get-内核 这指定了输入格式。

创建旧式 qcow2 文件(为了与 RHEL 6 或非常旧的 qemu 兼容
1.1),运行virt-builder后,使用这个命令:

qemu-img 修改 -f qcow2 -o compat=0.10 output.qcow2

--get-内核 图像
此选项从先前构建的磁盘映像中提取内核和 initramfs
称为“IMAGE”(实际上它适用于任何 VM 磁盘映像,而不仅仅是使用
virt-builder)。

内核和 initramfs 将写入当前目录,除非您还指定
- 输出 “输出目录” 目录 名称。

除非您通过使用指定它,否则将自动检测磁盘映像的格式
- 格式 选项。

在guest包含多个内核的情况下,最高的那个
选择了版本号。 要从磁盘映像中提取任意内核,请参阅
客鱼(1). 提取整个 /启动 来宾目录,见 虚拟拷贝(1)。

--gpg GPG
指定一个替代 GPG(1) (GNU Privacy Guard) 二进制。 您也可以使用它来添加
gpg 参数,例如指定备用主目录:

virt-builder --gpg "gpg --homedir / tmp目录“ [...]

-l
- 列表
- 列表 --列表格式 格式
- 列表 - 长
列出可用的模板。

可以选择 --列表格式 列表模板的输出格式:


默认格式,只打印模板标识符,旁边是它的短
描述。


打印包含可用资源详细信息的文本列表,然后是
可用模板的详细信息。

JSON
打印一个 JSON 对象,其中包含可用源的详细信息和
可用的模板。

主对象中的“version”键代表“兼容版本”,
每次生成的 JSON 输出与
以前的版本(例如结构发生了变化,或者非可选的键是
不再存在)。

- 长 是“长”格式的简写。

另见: - 来源, - 笔记,“模板来源”。

--机器可读
此选项用于在被解析时使输出对机器更友好
其他程序。 请参阅下面的“机器可读输出”。

-m MB
--内存大小 MB
更改分配给的内存量 - 跑 脚本。 如果你发现增加这个
- 跑 脚本或 - 安装 选项内存不足。

可以使用以下命令找到默认值:

来宾鱼获取记忆大小

- 网络
- 没有网络
在安装期间启用或禁用来自来宾的网络访问。

已启用是默认设置。 用 - 没有网络 禁用访问。

网络只允许传出连接并有其他小的限制。 看
“网络”中 虚拟救援(1)。

如果你使用 - 没有网络 然后某些其他选项,例如 - 安装 不管用。

这不会影响guest启动后是否可以访问网络,
因为它由您的虚拟机管理程序或云环境控制,与
用 virt-builder 做。

一般来说你应该 而不去 使用 - 没有网络. 但这里有一些原因让你
可能想要:

1.因为你使用的libguestfs后端不支持网络。
(参见:“后端”中 来宾(3))。

2. 您需要安装的任何软件都来自附加的 ISO,因此您不需要
网络。

3. 您不希望不受信任的访客代码在以下情况下尝试访问您的主机网络
运行 virt-builder。 当您不信任
操作系统模板的来源。 (参见下面的“安全”)。

4. 您没有主机网络(例如,在安全/受限环境中)。

--无同步
不要在退出时同步输出文件。

Virt-builder fsync 退出时的输出文件或磁盘映像。

原因是 qemu/KVM 的默认缓存模式是“none”或“directsync”,两者都是
绕过主机页面缓存。 因此,如果您这样做,这些将无法正常工作
运行 virt-builder 后立即启动来宾 - 他们不会看到
完整的输出文件。 (请注意,您不应该使用这些缓存模式 - 它们是
由于这个和其他原因,从根本上被打破了。)

如果您不使用这些损坏的缓存模式,则可以使用 --无同步 为了避免这种情况
不必要的同步并获得可观的额外性能。

- 笔记 操作系统版本
列出与此来宾关联的所有注释,然后退出(这不会执行安装)。

-o 文件名
- 输出 文件名
将输出写入 文件名. 如果不指定此选项,则输出
文件名是通过取“os-version”字符串并添加“.img”(对于原始
格式)或“.qcow2”(用于 qcow2 格式)。

请注意,输出文件名可以是设备、分区或逻辑卷。

当与 --get-内核,此选项指定输出目录。

--打印缓存
打印有关模板缓存的信息。 请参阅“缓存”。

-q
- 安静的
不要打印普通的进度消息。

- 尺寸 尺寸
选择输出磁盘的大小,其中大小可以使用常用名称指定
例如“32G”(32 GB)等。

Virt-builder 将自动调整磁盘映像内的文件系统大小。

如果未指定大小,则会发生以下两种情况之一。 如果输出是一个
文件,则大小与模板相同。 如果输出是一个设备,
分区等,然后使用该设备的大小。

要以字节为单位指定大小,数字后必须跟小写字母 b,例如:
“--大小 10737418240b”。

--smp N
为 N ≥ 2 个虚拟 CPU 启用 - 跑 要使用的脚本。

- 来源 网址
设置源 URL 以查找索引。

您可以多次提供此选项以指定多个来源。

另请参阅下面的“模板来源”。

注意不要点 - 来源 到您不信任的来源(除非
源由您信任的人签名)。 另见 - 没有网络 选项。

-v
--详细
启用调试消息和/或生成详细输出。

报告错误时,使用此选项并将完整的输出附加到您的错误
报告。

-V
- 版
显示版本号并退出。

-x 启用对 libguestfs API 调用的跟踪。

个性化定制 选项
--chmod 权限:文件
将“文件”的权限更改为“权限”。

备注:默认情况下,“权限”将是十进制,除非您在它前面加上 0 以获得
八进制,即。 使用 0700 而不是 700。

--命令来自文件 文件名
从文件中读取自定义命令,每行一个(及其参数)。

每行包含一个自定义命令及其参数,例如:

删除/一些/文件
安装一些包
密码 some-user:password:its-new-password

空行被忽略,以“#”开头的行是注释,被忽略为
好。 此外,通过添加“\”,参数可以分布在多行中
(连续字符)在一行的,例如

编辑/一些/文件:\
s/^OPT=.*/OPT=ok/

这些命令的处理顺序与它们在文件中的顺序相同,就好像它们是
指定为 - 删除 /一些/文件 在命令行上。

- 复制 来源:DEST
在客户机内部递归复制文件或目录。

不能使用通配符。

--复制输入 本地路径:远程
将本地文件或目录递归复制到磁盘映像中,并将它们放在
目录“REMOTEDIR”(必须存在)。

不能使用通配符。

- 删除 PATH
从来宾中删除文件。 或者删除一个目录(及其所有内容,
递归)。

另见: --上传, - 擦洗.

- 编辑 文件:EXPR
使用 Perl 表达式“EXPR”编辑“FILE”。

小心正确地引用表达式以防止它被
贝壳。

请注意,此选项仅在安装了 Perl 5 时可用。

参见“非交互式编辑” 虚拟编辑(1)。

--首次启动 SCRIPT
在来宾中安装“SCRIPT”,这样当来宾第一次启动时,脚本
运行(以 root 身份,在引导过程的后期)。

脚本在guest 中安装后自动chmod +x。

替代版本 --firstboot-命令 是一样的,但它方便地包装了
在单行脚本中为您命令。

你可以有多个 --首次启动 选项。 它们以相同的顺序运行
出现在命令行中。

请查看“FIRST BOOT SCRIPTS”了解更多信息和注意事项
第一个启动脚本。

参见 - 跑.

--firstboot-命令 'CMD+ARGS'
当来宾首次启动时(以 root 身份,在来宾内部运行命令(和参数),
在启动过程的后期)。

你可以有多个 --首次启动 选项。 它们以相同的顺序运行
出现在命令行中。

请查看“FIRST BOOT SCRIPTS”了解更多信息和注意事项
第一个启动脚本。

参见 - 跑.

--firstboot-安装 PKG,PKG..
安装指定的包(逗号分隔的列表)。 这些是在安装时安装的
来宾首先使用来宾的包管理器(例如 apt、yum 等)和
访客的网络连接。

有关安装软件包的不同方法的概述,请参阅“安装软件包”。

- 主机名 主机名
将来宾的主机名设置为“HOSTNAME”。 您可以使用带点的 hostname.domainname
(FQDN) 如果你愿意。

- 安装 PKG,PKG..
安装指定的包(逗号分隔的列表)。 这些是在安装过程中安装的
使用来宾的包管理器(例如 apt、yum 等)和主机的包管理器构建映像
网络连接。

有关安装软件包的不同方法的概述,请参阅“安装软件包”。

参见 - 更新.

- 关联 目标:链接[:链接..]
在来宾中创建符号链接,从“LINK”开始并指向“TARGET”。

--mkdir DIR
在来宾中创建一个目录。

这使用“mkdir -p”,因此创建任何中间目录,并且如果
目录已经存在。

- 移动 来源:DEST
在来宾中移动文件或目录。

不能使用通配符。

--无日志文件
构建后从镜像中擦除“builder.log”(来自构建命令的日志文件)
完全的。 如果您不想准确显示图像的构建方式,请使用此
选项。

另见:“日志文件”。

- 密码 用户:选择器
为“USER”设置密码。 (注意这个选项确实 而不去 创建用户帐户)。

有关“SELECTOR”字段的格式以及如何设置,请参阅“USERS AND PASSWORDS”
用户帐户。

--密码-加密 md5|sha256|sha512
当 virt 工具更改或在来宾中设置密码时,此选项设置
将该密码加密为“md5”、“sha256”或“sha512”。

“sha256”和“sha512”需要 glibc ≥ 2.7(检查 地穴(3) 客人内部)。

“md5”将适用于相对较旧的 Linux 客户机(例如 RHEL 3),但不安全
对抗现代攻击。

默认为“sha512”,除非 libguestfs 检测到一个没有
支持 SHA-512,在这种情况下它将使用“md5”。 您可以通过以下方式覆盖 libguestfs
指定此选项。

请注意,这不会更改来宾使用的默认密码加密
在来宾中创建新用户帐户。 如果你想这样做,那么你应该
使用 - 编辑 修改“/etc/sysconfig/authconfig”的选项(Fedora、RHEL)或
"/etc/pam.d/通用密码"(Debian、Ubuntu)。

--root-密码 选择器
设置根密码。

有关“SELECTOR”字段的格式以及如何设置,请参阅“USERS AND PASSWORDS”
用户帐户。

注意:在 virt-builder 中,如果你 --root-密码 然后给客人一个
随机 根密码。

- 跑 SCRIPT
在磁盘映像上运行名为“SCRIPT”的 shell 脚本(或任何程序)。 剧本
在一个小型设备中虚拟化运行,chroot 到来宾文件系统中。

该脚本自动 chmod +x。

如果 libguestfs 支持它,那么有限的网络连接可用,但它仅
允许传出网络连接。 您还可以附加数据磁盘(例如 ISO 文件)
作为另一种向脚本提供数据(例如软件包)而无需
网络连接 (- 附)。 您还可以上传数据文件(--上传).

你可以有多个 - 跑 选项。 它们的运行顺序与它们出现的顺序相同
命令行。

另见: --首次启动, - 附, --上传.

--运行命令 'CMD+ARGS'
在磁盘映像上运行命令和参数。 该命令在内部虚拟化运行
一个小设备,chroot 到访客文件系统中。

如果 libguestfs 支持它,那么有限的网络连接可用,但它仅
允许传出网络连接。 您还可以附加数据磁盘(例如 ISO 文件)
作为另一种向脚本提供数据(例如软件包)而无需
网络连接 (- 附)。 您还可以上传数据文件(--上传).

你可以有多个 --运行命令 选项。 它们以相同的顺序运行
出现在命令行中。

另见: --首次启动, - 附, --上传.

- 擦洗 文件
从来宾擦洗文件。 这就像 - 删除 除了那个:

· 它会清理数据,因此来宾无法恢复它。

· 不能删除目录,只能删除普通文件。

--selinux-重新标签
重新标记来宾中的文件,以便它们具有正确的 SELinux 标签。

您应该只对支持 SELinux 的来宾使用此选项。

--sm-附加 选择器
使用“订阅管理器”附加到池。

有关“SELECTOR”字段的格式,请参阅“SUBSCRIPTION-MANAGER”。

--sm-凭据 选择器
设置“订阅管理器”的凭据。

有关“SELECTOR”字段的格式,请参阅“SUBSCRIPTION-MANAGER”。

--sm-注册
使用“订阅管理器”注册来宾。

这需要使用设置凭据 --sm-凭据.

--sm-删除
使用“订阅管理器”从来宾中删除所有订阅。

--sm-注销
使用“订阅管理器”取消注册来宾。

--ssh 注入 用户[:选择器]
注入一个 ssh 密钥,以便给定的“用户”将能够通过 ssh 登录,而无需
提供密码。 “USER”必须已经存在于来宾中。

有关“SELECTOR”字段的格式,请参阅“SSH KEYS”。

你可以有多个 --ssh 注入 选项,适用于不同的用户以及更多的键
对于每个用户。

- 时区 时区
将客人的默认时区设置为“TIMEZONE”。 使用位置字符串,如
“欧洲/伦敦”

- 触碰 文件
该命令执行一个 触摸(1) 类似对“FILE”的操作。

- 截短 文件
此命令将“路径”截断为零长度文件。 该文件必须已经存在。

--截断递归 PATH
此命令递归地将“路径”下的所有文件截断为零长度。

- 更新
执行相当于“yum update”、“apt-get upgrade”或任何需要的命令
将已安装在模板中的软件包更新为最新版本。

参见 - 安装.

--上传 文件:目标
将本地文件“FILE”上传到磁盘映像中的目的地“DEST”。 文件所有者和
保留原始权限,因此您应该将它们设置为您想要的
它们位于磁盘映像中。

“DEST”可能是最终的文件名。 这可用于在上传时重命名文件。

如果“DEST”是目录名称(必须已经存在于来宾中),则该文件为
上传到该目录中,并保持与本地文件系统相同的名称。

另见: --mkdir, - 删除, - 擦洗.

- 写 文件:内容
将“内容”写入“文件”。

参考


安装 配套
有几种方法可以在来宾中安装软件包或应用程序
有不同的权衡。

安装 at 建立

如果您安装的来宾操作系统与主机操作系统相似(例如,两者都是 Linux),并且
libguestfs 支持网络连接,那么就可以使用 - 安装 安装软件包
喜欢这个:

virt-builder fedora-20 --安装 inkscape

这使用来宾的包管理器和主机的网络连接。

更新 at 建立

在构建时更新模板中的核心包集:

virt-builder fedora-20 --更新

virt-builder 附带的大多数模板都带有非常少的选择
软件包(称为“JEOS”或“恰到好处的操作系统”),它们是最新的
创建模板的时间,但在您安装时可能已过期
来自模板的操作系统。 此选项更新那些模板包。

安装 at 第一

另一种选择是在来宾首次启动时安装软件包:

virt-builder fedora-20 --firstboot-installinkscape

这使用来宾的包管理器和来宾的网络连接。

缺点是来宾第一次启动需要更长的时间,并且有
如果软件包安装失败,您无能为力(例如,如果网络问题意味着
来宾无法访问包存储库)。

安装 at 建立 a 知识库

如果您要安装的软件在主软件包存储库中不可用
来宾,然后您可以添加一个侧面存储库。 通常这表示为 ISO(CD 盘
image) 文件包含额外的包。

您可以使用以下任一方法创建磁盘映像 基因图像(1)或 virt-make-fs(1)。 为了
genisoimage,使用这样的命令:

genisoimage -o extra-packages.iso -R -J -V EXTRA cdcontents/

创建一个安装 ISO 并设置存储库的脚本。 对于 yum,创建
/tmp/install.sh 包含:

mkdir /tmp/挂载
挂载标签=额外的/tmp/mount

cat <<'EOF' > /etc/yum.repos.d/extra.repo
[额外]
名称=额外
baseurl=文件:///tmp/挂载
启用= 1的
EOF

yum -y 安装著名数据库

对于 apt,创建 /tmp/install.sh 包含:

mkdir /tmp/挂载
挂载标签=额外的/tmp/mount

apt-cdrom -d=/tmp/mount 添加
apt-get -y 安装著名数据库

使用 - 附 选择附加 CD/磁盘映像和 - 跑 运行的选项
脚本:

virt-builder fedora-20 \
--附加额外的packages.iso \
--运行/tmp/install.sh

USERS AND 密码
这款 --root-密码 选项用于更改 root 密码(否则随机
使用密码)。 此选项采用以下之一的密码“SELECTOR”
格式:

--root-密码 文件:文件名
从“文件名”中读取 root 密码。 这个文件的整个第一行是
更换密码。 任何其他行都将被忽略。 您应该使用以下命令创建文件
模式 0600 以确保其他人无法读取它。

--root-密码 密码:密码
将 root 密码设置为文字字符串“PASSWORD”。

请注意: Free Introduction is 而不去 安全 因为同一台机器上的任何用户都可以看到明文
密码使用 ps(1)。

--root-密码 随机
选择一个随机密码,该密码打印在标准输出上。 密码大约有
120 位随机性。

这是默认设置。

--root-密码 禁用
root 帐户密码已禁用。 这就像在密码中加入“*”
领域。

--root-密码 锁定:文件:文件名
--root-密码 锁定:密码:密码
--root-密码 锁定:随机
root 帐户被锁定,但在帐户上放置了密码。 如果先
解锁(使用“passwd -u”)然后登录将使用给定的密码。

--root-密码 锁定
--root-密码 锁定:禁用
root账户被锁定 密码被禁用。

创造 用户 账户

要创建用户帐户,请使用 useradd的(8) 带有 --firstboot-command 的命令,如下所示:

virt-builder --firstboot-命令 \
'useradd -m -p "" rjones ; chage -d 0 rjones'

上面的命令将创建一个没有密码的“rjones”帐户,并强制用户
在他们第一次登录时设置密码。还有其他管理密码的方法,请参阅
useradd的(8) 详情。

键盘 布局
因为在 Linux 中有很多不同的方法来设置键盘布局
在发行版中,virt-builder 还没有尝试使用简单的命令行选项。
本节介绍如何为一些常见的 Linux 发行版设置键盘。

键盘 布局 - systemd

对于使用 systemd "localectl" 的发行版,请使用如下命令:

virt-builder fedora-20 \
--firstboot-command 'localectl set-keymap uk'

参见 本地化(1)和
https://www.happyassassin.net/2013/11/23/keyboard-layouts-in-fedora-20-and-previously/ for
更多细节。

键盘 布局 运用 /etc/sysconfig/键盘

RHEL ≤ 6、Fedora ≤ 18 及类似版本,上传或修改键盘配置文件
使用 --上传, - 写 or - 编辑 选项。 例如:

虚拟机生成器 centos-6 \
--edit '/etc/sysconfig/keyboard: s/^KEYTABLE=.*/KEYTABLE="uk"/'

这个文件的格式可以在网上的很多地方找到。

键盘 布局 - Debian 派生的 发行版

对于 Debian 衍生的发行版,使用 /etc/default/键盘, 上传或修改键盘文件
使用 --上传, - 写 or - 编辑 选项。 例如:

virt-builder debian-7 \
- 编辑 '/etc/default/键盘: s/^XKBLAYOUT=.*/XKBLAYOUT="gb"/'

请参阅 https://wiki.debian.org/Keyboard。

语言
大多数 Linux 发行版都支持多种语言环境设置,以便您可以使用来宾
以另一种语言(例如俄语)打印的消息。

然而,没有单一的设置来控制这一点,因为可能需要额外的包
安装以支持控制台和 X 字体,以及键盘输入法。 包裹
需要,并且它们的配置是高度特定于发行版的,并且超出了范围
virt-builder 来做到这一点。

本节包含一些常见 Linux 发行版的示例。

设置 日文 in Fedora 20

virt-builder fedora-20 \
--大小 20G \
- 更新 \
--安装@japanese-支持\
--安装@xfce \
--安装 xorg-x11-server-Xorg,xorg-x11-drivers,rsyslog \
--link /usr/lib/systemd/system/graphical.target:/etc/systemd/system/default.target \
--firstboot-command 'localectl set-locale LANG=ja_JP.utf8' \
--firstboot-command 'localectl set-keymap jp' \
--firstboot-command 'systemctl 隔离图形目标'

设置 日文 in Debian 7 (气喘吁吁)

请注意,虽然这也可以在文本控制台中启用日语,但您不太可能
会在那里看到正确呈现的日语。 但是日语在 X 中正确呈现
应用程序和终端。

pkgs=语言环境,xfce4,\
ibus,ibus-anthy,\
ttf-sazanami-哥特式,ttf-sazanami-mincho,\
字体-takao-mincho,\
xfonts-intl-japanese,xfonts-intl-japanese-big,\
iceweasel-l10n-ja,手册页-ja

virt-builder debian-7 \
--大小 20G \
--安装 $pkgs \
--edit '/etc/inittab: s,^#([1-9].*respawn.*/sbin/getty.*),$1,' \
- 编辑 '文件/etc/locale.gen: s,^#\s*ja,ja,' \
- 写 '/etc/默认/语言环境:LANG="ja_JP.UTF-8"' \
--run-command "locale-gen"

登录 文件
在构建时运行的脚本和包安装(- 跑, --运行命令, - 安装,
- 更新,但 而不去 firstboot) 记录在以下位置之一:

/tmp/builder.log
在 Linux、BSD 和其他客户机上。

C:\Temp\builder.log
在 Windows 上,DOS 来宾。

/builder.log
If / tmp目录 or C:\ TEMP 不见了。

如果您不希望日志文件出现在最终图像中,请使用 --无日志文件
命令行选项。

SSH的 KEYS
这款 --ssh 注入 选项用于为来宾中的用户注入 ssh 密钥,因此他们可以
无需提供密码即可登录。

选项值的“SELECTOR”部分是可选的; 在这种情况下, --ssh 注入 “用户”
意味着我们看 当前 用户的 〜/ .ssh 目录以查找默认公共 ID
文件。 该密钥已上传。 “默认公共 ID”是 默认_ID_文件 中描述的文件
ssh 复制 ID(1)。

如果指定,“SELECTOR”可以是以下格式之一:

--ssh 注入 用户:文件:文件名
从中读取 ssh 密钥 文件名. 文件名 通常是 .pub 文件中。

--ssh 注入 用户:字符串:KEY_STRING
使用指定的“KEY_STRING”。 “KEY_STRING”通常是一个公共字符串,如 SSH-RSA
啊啊啊…… 用户@本地主机.

无论如何, ~用户/.ssh 目录和 〜USER/.ssh/authorized_keys 文件将是
如果不存在则创建。

第一 BOOT 脚本
这款 --首次启动--firstboot-命令 选项允许您首先执行命令
客人的引导。 为此,安装了来宾 init 系统的 init 脚本,其中
负责运行所有添加的脚本和命令。

支持的操作系统有:

Linux
支持的初始化系统有:systemd、System-V init(也称为 sysvinit)和
新贵(使用 System-V 脚本)。

请注意,通常 init 脚本以 root 身份运行,但环境比
可以从普通 shell 获得的内容:例如,$HOME 可能未设置或为空。

第一个引导脚本的输出在来宾中可用
~root/virt-sysprep-firstboot.log.

Windows
驱动程序,可从 https://github.com/rwmjones/rhsrvany 的来源获得,是
安装运行第一个引导脚本。 它是必需的,并且第一次启动的设置
如果它不存在,脚本将失败。

驱动程序 从“VIRT_TOOLS_DATA_DIR”指向的位置复制
环境变量; 如果未设置,将使用编译后的默认值(类似于
/usr/share/虚拟工具).

第一个引导脚本的输出在来宾中可用 C:\ PROGRAM 文件\红色
帽子\Firstboot\log.txt.

订阅管理器
可以使用自动注册和附加系统
“订阅管理器”。 这在 Red Hat Enterprise Linux 客户机上很典型。 有
很少有选项可以简化这个过程,避免手动执行命令和暴露
命令行上的密码。

--sm-注册 开始注册过程,并需要 --sm-凭据 成为
指定的; “SELECTOR”的格式 --sm-凭据 是以下之一
格式:

--sm-凭据 用户:文件:文件名
从指定的“USER”读取密码 文件名.

--sm-凭据 用户:密码:密码
对指定的“USER”使用文字字符串“PASSWORD”。

--sm-附加 将系统附加到订阅; 其“SELECTOR”的格式是其中之一
执行以下操作:

--sm-附加 汽车
“订阅管理器”附加到最适合系统的订阅。

--sm-附加 文件:文件名
从中读取池 ID 文件名.

--sm-附加 池:池
使用文字字符串“POOL”作为池 ID。

--sm-删除 从访客中删除所有订阅,而 --sm-注销 完全
注销系统。

安装 疗程开始前
当您调用 virt-builder 时,安装过程如下:

· 下载模板图像。

如果模板图像存在于缓存中,则使用缓存的版本。
(参见“缓存”)。

· 检查模板签名。

· 模板被解压缩为 tmp 文件。

· 模板图像被调整到目的地,使用 虚拟调整大小(1)。

· 附加了额外的磁盘(- 附).

· 为客人生成一个新的随机种子。

· 按照命令行中指定的顺序执行来宾自定义。

· SELinux 重新标记已完成(--selinux-重新标签).

输入 DISK 图像
输入 libvirt的

使用以下命令将磁盘映像导入 libvirt 安装virt(1) - 进口 选项。

虚拟安装 --import \
--name 来宾 --ram 2048 \
--disk path=disk.img,format=raw --os-variant fedora20

笔记:

1。 你 必须 指定正确的格式。 除非您使用 virt-,否则格式为“原始”
建筑商的 - 格式 选项。

2. --os-变体 强烈推荐,因为它将提供最佳设备以启用
来宾最有效地运行。 要获取所有变体的列表,请执行以下操作:

osinfo-查询操作系统

上述工具由 libosinfo 包提供。

3. 您可以以 root 或非 root 身份运行 virt-install。 每个的工作方式略有不同,因为
libvirt 为每个用户管理一组不同的虚拟机。 特别是
virt-manager 通常显示 root 拥有的 VM,而 Boxes 显示用户拥有的
虚拟机和其他工具的工作方式也可能有所不同。

输入 OpenStack的

通过执行以下操作将图像导入 Glance(OpenStack 图像存储):

概览 image-create --name fedora-20-image --file fedora-20.img \
--disk-format raw --container-format 裸 \
--is-public 真

这款 - 文件 参数是 virt-builder 生成的磁盘映像。 它应该匹配 virt-
建筑商的 - 输出 选项。 该 --磁盘格式 参数应该匹配 virt-builder 的
- 格式 选项(或“原始”,如果您没有使用该选项)。 这 --容器格式 应该
始终“裸”,因为 virt-builder 不会将图像放入容器中。

您可以使用“glance image-show fedora-20-image" 显示属性的命令
图片。

要在 Nova 计算节点上启动映像实例,请执行以下操作:

nova 启动 fedora-20-server --image fedora-20-image \
--风味m1.medium

使用“nova flavor-list”列出可能的机器口味。 使用“nova list”列出运行
实例。

引导 直接 运用 or KVM

qemu 命令行不是很稳定或易于使用,因此在以下情况下应该使用 libvirt
可能的。 但是,可以使用类似于以下内容的命令行来引导
虚拟机:

qemu-系统-x86_64 \
-机器加速度=kvm:tcg \
-cpu 主机 \
-m 2048 \
-驱动文件=disk.img,format=raw,if=virtio

与 libvirt 一样,选择正确的格式非常重要。 它将是“原始的”
除非 - 格式 选项被使用。

配置 项目管理
木偶

要在来宾中启用 Puppet 代理,请安装软件包,将配置指向
您的 Puppetmaster,并确保代理在启动时运行。

一个典型的 virt-builder 命令是:

virt-builder fedora-20 \
--主机名client.example.com \
- 更新 \
--安装木偶\
--edit '/etc/puppet/puppet.conf:
s/^\[agent\]/[agent]\n server = puppetmaster.example.com/' \
--run-command 'systemctl enable puppet' \
--selinux-重新标签

确切的说明因 Linux 发行版而异。 有关更多信息,请参阅:
http://docs.puppetlabs.com/guides/installation.htm

调试 装修
如果 virt-builder 本身失败,则启用调试(-v) 并报告错误(请参阅“错误”
下文)。

如果 virt-builder 因为它正在安装的某些脚本或包失败而失败,请尝试使用
--失败时不删除 保留输出文件,并继续阅读本节。

如果 virt-builder 成功但映像不起作用,请尝试以下操作:

使用虚拟救援
运行 虚拟救援(1) 在磁盘映像上:

virt-rescue -a disk.img

这为您提供了一个救援外壳。 您可以从磁盘映像挂载文件系统
/系统根 并使用普通的 Linux 命令检查它们。 你也可以 chroot 到
来宾重新安装引导加载程序。 virt-rescue 手册页有更多
信息和示例。

使用guestfish
运行 客鱼(1) 在磁盘映像上:

guestfish -a 磁盘.img -i

使用诸如“ll /directory”和“cat /file”之类的guestfish命令来检查目录和
文件。

使用guestmount
使用 FUSE 将磁盘映像安全地挂载到主机上 来宾山(1):

mkdir /tmp/mp
guestmount -a disk.img -i /tmp/mp
光盘/tmp/mp

要卸载磁盘映像,请执行以下操作:

fusionmount -u /tmp/mp

添加串行控制台
如果来宾在引导期间挂起,将串行控制台添加到
来宾,并将内核消息定向到串行控制台。 添加串行控制台
将涉及查看您的管理程序的文档。 直接内核
消息到串行控制台,在内核命令行上添加以下内容:

控制台=tty0 控制台=ttyS0,115200

来源 OF TEMPLATES
virt-builder 从配置文件中读取可用的源,使用 .conf
扩展并位于以下路径中:

· $XDG_CONFIG_HOME/virt-builder/repos.d/ ($XDG_CONFIG_HOME 是 $HOME/.config 如果没有设置)。

· $XDG_CONFIG_DIRS/virt-builder/repos.d/(其中 $XDG_CONFIG_DIRS 表示任何
该环境变量中的目录,或者只是 /etc/xdg 如果没有设置)

.conf 这些路径中的文件具有如下所示的简单文本格式:

[libguestfs.org]
网址=http://libguestfs.org/download/builder/index.asc
gpgkey=文件:///etc/xdg/virt-builder/repos.d/libguestfs.gpg

方括号中的部分是存储库标识符,用作唯一
标识符。

可能会出现以下字段:

“uri=URI”
此存储库引用的索引文件的 URI。

本栏位为必填项。

“gpgkey=URI”
此可选字段表示 URI(虽然仅 文件:// 接受 URI) 的
用于签署索引文件的密钥。 如果不存在,则引用的索引文件
乌里=.. 未签署。

“代理=模式”
此可选字段指定代理模式,下载索引时使用
此存储库的文件。 可能的值为:

没有, 折扣
根本没有使用代理,甚至覆盖系统配置。

系统
使用的代理是系统代理。

什么 其他
指定要使用的实际代理配置,覆盖系统
组态。

如果不存在,则假定值是尊重系统的代理设置(即
仿佛 系统 将被指定)。

“格式=格式”
此可选字段指定存储库的格式。 可能的值为:

本地人
“virt-builder”存储库的原生格式。 另请参阅“创建和
签署索引文件”如下。

简单流
URI 表示 Simple Streams v1.0 元数据树的根。

有关简单流的更多信息,另请参见
https://launchpad.net/simplestreams.

如果不存在,则假定值为“本机”。

对于真正的 virt-builder 使用,您可能想要创建自己的模板存储库。

libguestfs.org 知识库

开箱即用,virt-builder 下载文件
http://libguestfs.org/download/builder/index.asc 这是可用模板的索引
加上一些关于每个人的信息,包含在数字签名中。 命令
“virt-builder --list”列出了这个索引文件中的信息。

托管在 libguestfs.org 上的模板是使用 shell 脚本、kickstart 文件创建的
和预置文件,这些文件可以在 libguestfs 源代码树中的“builder/website”中找到。

设置 up 知识库

您可以建立自己的站点,其中包含一个索引文件和一些模板,然后指向
virt-builder 在站点上创建一个 .conf 指向它的文件。

请注意,如果您的索引已签名,则需要正确填写 gpgkey=.. 在您的 .conf
文件,确保也部署 GPG 密钥文件。

virt-builder --source https://example.com/builder/index.asc \
--指纹'AAAA BBBB ...' \
- 列表

您可以将其托管在任何 Web 或 FTP 服务器,或者本地或网络文件系统上。

设置 up a GPG

如果您没有 GnuPG 密钥,则需要设置一个。 (严格来说这是
可选,但如果您的索引和模板文件未签名,那么 virt-builder 用户将
必须使用 --无检查签名 每次使用 virt-builder 时标记。)

要创建密钥,请参阅 GPG 手册 http://www.gnupg.org/gph/en/manual.html.

导出您的 GPG 公钥:

gpg --export -a "[电子邮件保护]“ > 公钥

创建 模板

有很多方法可以创建模板。 例如,您可以克隆现有的客人
(见 虚拟系统准备(1)),或者您可以手动安装来宾 (安装virt(1))。 看看如何
模板是为 virt-builder 创建的,查看“builder/website”中的脚本

为了在压缩模板时获得最佳效果,请使用以下 xz 选项(请参阅
nbdkit-xz-插件(1) 进一步说明):

xz --best --block-size=16777216 磁盘

创造 签约 指数 文件

索引文件具有简单的文本格式(此处显示没有数字签名):

[Fedora-18]
名称=Fedora® 18
osinfo=fedora18
拱=x86_64
文件=fedora-18.xz
校验和[sha512]=...
格式=原始
大小= 6442450944
压缩大小=148947524
展开=/dev/sda3

[Fedora-19]
名称=Fedora® 19
osinfo=fedora19
拱=x86_64
文件=fedora-19.xz
校验和[sha512]=...
修订版=3
格式=原始
大小= 4294967296
压缩大小=172190964
展开=/dev/sda3

方括号中的部分是“os-version”,它与用于
用于构建该操作系统的 virt-builder 命令行。

以正确的格式准备“索引”文件后,使用以下命令清除它
命令:

gpg --clearsign --armor 索引

这将创建名为的最终文件 索引.asc 可以上传到服务器(和
乌里=.. 网址)。 如上所述,对索引文件进行签名是可选的,但建议使用。

可能会出现以下字段:

“姓名=姓名”
此模板的用户友好名称。 这显示在 - 列表 输出但是
否则不重要。

“osinfo=ID”
此可选字段将操作系统映射到关联的 libosinfo ID。 虚拟-
builder 不使用它(还)。

“拱=拱”
安装在模板中的操作系统的架构。 这个字段是
必需的。

“文件=路径”
xz 压缩模板的路径(相对于索引)。

请注意,绝对路径或 URI 是 而不去 这里允许。 这是因为 virt-builder
模板具有“同源”策略,因此它们不能来自其他服务器。

“信号=路径”
本篇 选项 is 弃用. 请改用校验和字段。

xz 文件的 GPG 分离签名的路径(相对于索引)。

请注意,绝对路径或 URI 是 而不去 这里允许。 这是因为 virt-builder
模板具有“同源”策略,因此它们不能来自其他服务器。

该文件可以按如下方式创建:

gpg --detach-sign --armor -o disk.xz.sig disk.xz

"checksum[sha512]=7b882fe9b82eb0fef..."
的 SHA-512 校验和 压缩 文件下载后进行检查。 到
计算出签名,请执行以下操作:

sha512sum 磁盘.xz

请注意,如果您使用它,则不需要对文件进行签名,即。 不要使用“sig”。 这个
选项覆盖“sig”。

"checksum=7b882fe9b82eb0fef..."
“校验和”是“校验和[sha512]”的别名。

如果您需要与 virt-builder = 1.24.0 进行互操作,那么您必须使用“校验和”
因为那个版本会在方括号和数字中给出解析错误
一个字段的键。 这在 virt-builder ≥ 1.24.1 中得到修复。

“修订= N”
修订版是一个整数,用于控制模板缓存。 增加
修订号会导致客户再次下载模板,即使他们有
复制到缓存中。

修订号是可选的。 如果省略,则默认为 1。

“格式=原始”
“格式=qcow2”
指定磁盘映像的格式(压缩之前)。 如果没有给出,则
格式是自动检测的,但通常最好明确说明预期的
格式。

注意这是源格式,它不同于 - 格式 选项(要求
输出格式)。 Virt-builder 进行从源格式到
要求的输出格式。

“大小= NNN”
图像的虚拟大小(以字节为单位)。 这是图像的大小时
未压缩。 如果使用非原始格式,例如 qcow2,则表示虚拟磁盘
大小,而不是 qcow2 文件的大小。

本栏位为必填项。

Virt-builder 也使用这个作为用户可以通过 - 尺寸
选项,或作为默认大小,如果没有 - 尺寸 选项。

“compressed_size=NNN”
磁盘映像的压缩大小(以字节为单位)。 这仅用于信息
(当使用 - 列表 - 长).

“展开=/dev/sdaX”
将图像扩展到最终大小时,请指示 虚拟调整大小(1) 扩大
来宾映像中的命名分区以填充所有可用空间。 这就像
虚拟调整大小 - 扩张 选项。

您通常应该将来宾根文件系统的设备名称放在这里。

使用它是个好主意,但不是必需的。 如果该字段被省略,则 virt-
调整大小将在磁盘末尾创建一个额外的分区以覆盖可用空间,
这对用户不那么友好。

“lvexpand=/dev/VolGroup/LogVol”
将图像扩展到最终大小时,请指示 虚拟调整大小(1) 扩大
来宾映像中的命名逻辑卷以填充所有可用空间。 这有效
像 virt-resize --lv-展开 选项。

如果来宾使用 LVM2,您通常应该放置来宾根文件系统的 LV
这里。 如果来宾不使用 LVM2 或其根文件系统不在 LV 上,请不要
使用此选项。

“注释=注释”
与此图像相关的任何注释,尤其是描述包含哪些包的注释
图像、图像是如何准备的以及许可信息。

此信息显示在 - 笔记- 列表 - 长 模式。

您可以在此处使用多行注释,方法是将每行至少缩进一个
空白字符(即使在空行上):

notes=这张图片是用
以下 kickstart 脚本:
<-- 行首一个空格
部分 /启动 --fstype ext3
...

“隐藏=真”
使用隐藏标志可防止模板被 - 列表 选项
(但它仍然可以安装)。 这用于测试图像。

“别名=ALIAS1 ALIAS2 ...”
此可选字段指定图像的别名列表,以空格分隔。
例如,别名可用于始终指向某个特定版本的最新版本
图像,在索引中保留旧版本而不是更新相同的
图像(请参阅“修订”字段)。

运行 虚拟建设者 来源

可以通过 virt-builder 使用多个源。 推荐的方法是
部署 .conf 指向索引文件的文件。 另一种方法是指定来源
使用多个 - 来源- 指纹 opţiuni:

虚拟生成器\
- 来源 http://example.com/s1/index.asc \
- 来源 http://example.com/s2/index.asc

您可以提供 N 或 1 个指纹。 如果您提供 N 个指纹,则 N =
源的数量,并且每个源和每个源之间存在 1-1 对应关系
指纹:

虚拟生成器\
- 来源 http://example.com/s1/index.asc --指纹'0123 ...' \
- 来源 http://example.com/s2/index.asc --指纹'9876 ...'

如果您提供 1 个指纹,则所有来源都使用相同的指纹。

您“必须”提供至少 1 个指纹。

授权计划 of 模板

您应该了解您分发的图像的许可。 对于开源
来宾,请在“注释”字段中提供指向源代码的链接并遵守其他
要求(例如,围绕商标)。

正式 规范 of 指数 文件

索引文件格式有一个由 flex 扫描器和野牛定义的正式规范
用于解析文件的解析器。 这可以在 libguestfs 的以下文件中找到
源树:

建造者/索引-scan.l
建设者/索引-parse.y

一个工具叫 虚拟索引验证(1) 可用于验证索引文件以确保它
是正确的。

请注意,解析器和工具可以处理签名或未签名的索引文件(即。
指数 or 索引.asc).

索引始终以 UTF-8 编码。

缓存
高速缓存 模板

由于模板通常非常大,下载的模板缓存在用户的
主目录。

缓存的位置是 $XDG_CACHE_HOME/virt-builder/ or $HOME/.cache/virt-builder.

您可以打印出有关缓存目录的信息,包括哪些来宾是
当前缓存,通过执行:

virt-builder --打印缓存

如果您想通过执行以下操作来节省空间,可以删除缓存:

virt-builder --删除缓存

您可以通过执行以下操作将所有(当前)模板下载到本地缓存:

virt-builder --cache-all-templates

要禁用模板缓存,请使用 --无缓存.

仅缓存模板。 不缓存索引和分离的数字签名。

高速缓存

Virt-builder 使用 卷曲(1) 下载文件,它也使用当前的“http_proxy”
(等)安装包时的设置(- 安装, - 更新).

因此,您可能希望设置这些环境变量以最大化数量
发生的本地缓存。 请参阅“环境变量”和 卷曲(1)。

当地的 镜子

为了提高安装包的速度和可靠性,您可以设置一个本地
目标发行版的镜像,并将来宾包管理器指向那个。

由于每个安装阶段发生的顺序,您不能使用 - 写
(将包管理器指向一个仓库)然后是 - 安装 (从那个安装
回购)。 这 - 写- 安装 步骤以相反的顺序运行,无论它们如何
命令行下的命令。 你必须使用 --运行命令 而不是 - 安装.

在 Fedora 中使用本地镜像

要使用本地镜像安装 Fedora 来宾:

virt-builder fedora-20 \
--edit '/etc/yum.repos.d/fedora.repo:
s{.*baseurl=.*}{baseurl=http://example.com/mirror/};
s{.*metalink=.*}{};
' \
--edit '/etc/yum.repos.d/fedora-updates.repo:
s{.*baseurl=.*}{baseurl=http://example.com/mirror-updates/};
s{.*metalink=.*}{};
' \
--run-command 'yum -y 更新' \
--run-command 'yum -y install pkg1 pkg2 ...'

在 Debian 中使用本地镜像

假设您使用“apt-proxy”来镜像存储库,您应该创建一个新的
sources.list文件 文件指向您的代理(请参阅 https://help.ubuntu.com/community/AptProxy)
然后执行:

virt-builder debian-7 \
--上传sources.list:的/ etc / apt / sources.list文件 \
--run-command 'apt-get -y 更新' \
--run-command 'apt-get -y install pkg1 pkg2 ...'

DIGITAL 签名
Virt-builder 使用 GNU Privacy Guard(GnuPG 或 gpg)来验证索引和模板
没有被篡改。

源指向一个索引文件,该文件可选择签名。

Virt-builder 下载索引并检查签名是否有效以及签名者的
指纹匹配指定的指纹(即指定的指纹 gpgkey=.. ,在
.conf- 指纹, 以该顺序)。

为了检查内置的公钥/指纹,这需要导入
公钥进入用户的本地 gpg 密钥环(这就是 gpg 的工作方式)。

下载模板时,会以相同的方式检查其签名。

尽管签名是可选的,但如果您没有它们,那么 virt-builder 用户将
必须使用 --无检查签名 在命令行上。 这可以防止攻击者
用未签名的索引文件替换已签名的索引文件并使用 virt-builder
默默地工作而不检查签名。 在任何情况下,强烈建议
您始终创建签名索引和模板。

建筑设计
无论主机架构如何,Virt-builder 都可以为任何架构构建客机
是。 例如,ARM 主机上的 x86-64 来宾。

但是某些选项可能不起作用,特别是需要运行命令的选项
在构建过程中的来宾中: - 安装, - 更新, - 跑, --运行命令。 您可以
需要用它们的 firstboot-equivalents 替换这些。

构建 86 位 i64 客户机的 x32-686 主机应该无需任何特殊步骤即可工作。

保安
virt-builder 不需要以root身份运行(其实不应该以root身份运行),以及
不使用 setuid、"sudo" 或任何类似的机制。

- 安装, - 更新, - 跑--运行命令 使用设备(一个小
虚拟机),因此这些命令不会在主机上运行。 如果您使用的是
libguestfs libvirt 后端并启用 SELinux 然后虚拟机是
另外封装在一个 SELinux 容器 (sVirt) 中。

但是,这些选项将可以访问主机的网络,并且由于模板可能
包含不受信任的代码,该代码可能会尝试访问它的主机网络资源
不应该。 您可以使用 - 没有网络 为了防止这种情况。

Firstboot 命令在启动时在来宾的上下文中运行,因此安全性
应该考虑您的管理程序/云。

Virt-builder 将随机种子注入它构建的每个来宾中。 这有助于确保
当来宾启动时,TCP 序列号、UUID、ssh 主机密钥等是真正随机的。

您应该检查数字签名,不要忽略任何签名错误。

克隆
如果你想创建许多相同类型的新来宾,运行 virt-builder 很有诱惑力
一次,然后复制输出文件。 你应该 而不去 做这个。 你应该运行 virt-builder
对于您需要的每位新客人,一次。

原因是每个克隆都需要(至少)有一个单独的随机种子,并且
未来版本的 virt- 中可能还有其他独特的功能(例如文件系统 UUID)
建造者。

你应该做的另一件事 而不去 做的是引导来宾,然后克隆引导的磁盘映像。
原因是一些来宾首先创建了唯一的机器 ID、SSH 主机密钥等
启动,并且您不希望克隆具有重复的身份。

另见: 虚拟系统准备(1)。

性能
获得良好性能的最重要方面是缓存。 模板获取
第一次使用时下载到缓存中,或者如果您使用
--缓存所有模板 选项。 有关详细信息,请参阅上面的“缓存”。

所需的包 - 安装- 更新 使用主机下载选项
网络连接。 设置“http_proxy”、“https_proxy”和“ftp_proxy”环境
指向本地网络缓存的变量可以确保它们只需要下载一次。
您也可以尝试使用本地包存储库,尽管设置起来可能很复杂
并根据您尝试安装的 Linux 发行版而有所不同。

运用 --无同步

使用 VHDL 语言编写 --无同步. 但是请阅读上面“选项”部分中的警告,因为这可以
如果使用不当会导致磁盘损坏。

跳绳 虚拟调整大小

在某些情况下,Virt-builder 可以跳过 virt-resize 步骤。 这使得虚拟
建设者要快得多。 条件是:

· 输出必须是一个普通文件(不是块设备),

· 用户做了 而不去 使用 - 尺寸 选项,

· 输出格式与模板格式相同(通常为raw)。

猫猫

如果 liblzma 是 Virt-builder,则使用 pxzcat(并行 xzcat)的内部实现
在构建时发现。 如果在构建时未找到 liblzma,则使用常规的“xzcat”
这是单线程的。

用户模式 Linux

您可以将 virt-builder 与用户模式 ​​Linux (UML) 后端一起使用。 这可能会更快
在虚拟机内(例如在云中)运行 virt-builder。

要启用 UML 后端,请阅读“USER-MODE LINUX BACKEND”中的说明
来宾(3)。

目前你必须使用 - 没有网络 选项。 这应该在未来修复
版。

UML 不支持 qcow2 输出格式。 您只能创建原始格式的来宾。

SELinux
使用 SELinux(例如 Fedora 和 Red Hat Enterprise Linux)的客户机要求每个
文件具有正确的 SELinux 标签。

Virt-builder 不知道如何给新文件一个标签,所以有两种可能
它可以用来确保正确标记的策略:

运用 --selinux-重新标签
这运行 修复文件(8) 就在最终确定来宾之前,它设置了 SELinux 标签
在磁盘映像中正确。

有时在安装过程中无法使用 fixfiles,在这种情况下此选项
回到:

接触 /.自动重新标记
访客模板可能已经包含一个名为 /.自动重新标记,或者它被触摸,如果
--selinux-重新标签 无法运行修复文件。

对于使用 SELinux 的客户机,这会导致修复文件在首次启动时运行。 客人将
第一次使用时重启一次,这是正常且无害的。

请注意,如果您的访客使用 SELinux,并且您正在对其进行操作,
可能会创建新文件或更改现有文件,建议您使用
--selinux-重新标签. 这将有助于确保文件具有正确的 SELinux
标签。

可读的 OUTPUT


这款 --机器可读 选项可用于使输出更机器友好,这
从其他程序、GUI 等调用 virt-builder 时很有用。

单独使用该选项来查询 virt-builder 二进制文件的功能。 典型的
输出看起来像这样:

$ virt-builder --机器可读
虚拟建设者

配置文件
定制
json列表
猫猫

打印一个特性列表,每行一个,程序以状态 0 退出。

环境 变数


对于影响所有 libguestfs 程序的其他环境变量,请参阅“ENVIRONMENT
变量”中 来宾(3)。

“http_proxy”
“https_proxy”
“无代理”
设置下载代理。 这些环境变量(以及更多)实际上是
解释者 卷曲(1),不是virt-builder。

“家”
用于确定模板缓存的位置,以及用户的位置
来源。 请参阅“缓存”和“模板源”。

"VIRT_TOOLS_DATA_DIR"
这可以指向包含用于 Windows 首次启动的数据文件的目录
安装。

通常你不需要设置它。 如果未设置,将使用编译后的默认值
(就像是 /usr/share/虚拟工具).

该目录可能包含以下文件:

驱动程序
这是 RHSrvAny Windows 二进制文件,用于在
窗户客人。 如果您打算使用 --首次启动 or
--firstboot-命令 Windows 来宾的选项。

另见:“https://github.com/rwmjones/rhsrvany”

“XDG_CACHE_HOME”
用于确定模板缓存的位置。 请参阅“缓存”。

“XDG_CONFIG_HOME”
用于确定用户来源的位置。 请参阅“模板来源”。

“XDG_CONFIG_DIRS”
用于确定系统源的位置。 请参阅“模板来源”。

退出 状态


如果成功,该程序返回 0,如果有错误,则返回非零。

使用 onworks.net 服务在线使用 virt-builder


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad