发布于12月5日12月5日 Vagrant 文件*.box 是预先配置的虚拟机(VM) VM 映像,当导入到HashiCorp 的Vagrant 中时,允许通过命令行与VM 进行交互。 您无需离开终端即可创建、启动、交互、停止、销毁虚拟机。想想容器(Docker/Podman),但针对虚拟机。 之前我们一直使用HashiCorp 的Packer 来生成HashiCorp 的Vagrant 图像。 Packer 是一个包装器,围绕您想要的任何虚拟机管理程序,它将自动安装操作系统(通过预置进行无人值守设置)、运行任何命令或脚本、导出虚拟机并最终压缩它。 Packer 的缺点是您需要在主机操作系统上安装所选的虚拟机管理程序,并且无法交叉构建。如果您使用Linux,则无法构建Window 的Hyper-V。 几年来,我们一直在使用DebOS 来自动构建虚拟机。这对我们来说非常有效。 最近我们意识到:“为什么我们有两个不同的系统,目的相同?”。 深入研究“如何制作vagrant base box VM”可以归结为几个要求: 修复用户名(vagrant) 修复/已知公共SSH 密钥(默认/标准不安全密钥对)能够执行超级用户操作(sudo) 真的很简单,只需要确保Vagrant 可以轻松访问虚拟机! 可选项目(和推荐),因为它有助于用户而不是Vagrant: 已知/修复凭据(到处都是流浪者)SSH 调整(加速气隙网络)所有这些都可以在安装后步骤中处理,我们已将其放入Kali-VM 构建脚本中。 现在,我们正在以同样的方式自动构建所有虚拟机(Stock 和Vagrant),所有虚拟机都在相同的基础设施设置(Linux!)中。 自Microsoft Windows 10 1607/Server 2016 起,导出虚拟机时,会出现3 个额外的“二进制”文件,其中包括*.vmcx/*.vmrs 以及*.xml。由于我们不再从Hyper-V 导出虚拟机,而是在外部生成虚拟机,因此我们没有这些文件。 现在,我们可以创建一个“模板”二进制文件来充当虚拟标记。 但这并不适合我们,我们不想包含项目,尤其是二进制文件。 Vagrant 开箱即用,需要这些二进制文件,但如果没有它们,就会失败。然而,稍后向上游提出合并请求,并添加了支持。因此,尝试使用Hyper-V 在Windows 上使用Kali 2025.2 或更高版本,使用v2.4.7 之前的vagrant 是行不通的。您需要使用较旧的Kali、不同的虚拟机管理程序、手动修补或将Vagrant 升级到v2.4.8(2025-08-05 发布)或更高版本。 由于Packer 不再生成Vagrant VM,因此我们重命名了git 存储库(gitlab.com/kalilinux/build-scripts/kali-vagrant - gitlab.com/kalilinux/build-scripts/kali-packer)。 最后,在废弃我们的Packer 构建脚本之前,我们再次刷新了这些构建脚本。我们可能不会使用它,但这并不意味着您不能。 演示 安装Vagrant 和VirtualBox 后: $ vagrant box 添加kalilinux/rolling ==box: 正在加载框“kalilinux/rolling”的元数据 box: URL: https://vagrantcloud.com/api/v2/vagrant/kalilinux/rolling 该盒子可以与多个提供商合作!它的提供者 可以与下面列出的一起使用。请查看列表并选择 您将与之合作的提供商。 1) 超级v 2)libvirt 3)虚拟机 4)vmware_桌面 输入您的选择: 3 ==box: 为provider: virtualbox (amd64) 添加框'kalilinux/rolling' (v2025.2.1) box: 下载: https://vagrantcloud.com/kalilinux/boxes/rolling/versions/2025.2.1/providers/virtualbox/amd64/vagrant.box box: 正在计算和比较框校验和. ==box: 已成功为“virtualbox (amd64)”添加框“kalilinux/rolling”(v2025.2.1)! $ $ 流浪者盒子列表 kalilinux/滚动(virtualbox,2025.2.1,(amd64)) $ $ mkdir -pv vagrant-demo/; cd vagrant-demo/ mkdir: 创建了目录'vagrant-demo/' $ $ vagrant init --force --minimal kalilinux/rolling [.] $ $ cat Vagrantfile # -*- mode: 红宝石-*- # vi: 设置ft=ruby : Vagrant.configure('2') 执行|config| config.vm.box='kalilinux/滚动' 结束 $ $ vagrant up --provider virtualbox 将机器“默认”与“virtualbox”提供商一起使用. ==default: 输入基础框'kalilinux/rolling'. ==default: 正在生成NAT 网络的MAC 地址. ==default: 检查框“kalilinux/rolling”版本“2025.2.1”是否是最新的. ==default: 设置VM:的名称vagrant-demo_default_1753960552589_87147 Vagrant 当前配置为创建VirtualBox 同步文件夹 已启用“SharedFoldersEnableSymlinksCreate”选项。如果流浪者 来宾不受信任,您可能需要禁用此选项。了解更多 有关此选项的信息,请参阅VirtualBox 手册: https://www.virtualbox.org/manual/ch04.html#sharedfolders 可以使用环境变量: 全局禁用此选项 VAGRANT_DISABLE_VBOXSYMLINKCREATE=1 或Vagrantfile: 中的每个文件夹 config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false ==default: 清除任何先前设置的网络接口. ==default: 正在根据配置准备网络接口. 默认:适配器1: nat ==默认: 转发端口. 默认: 22(来宾)=2222(主机)(适配器1) ==default: 正在运行“预启动”VM 自定义. ==default: 正在启动虚拟机. ==default: 等待机器启动。这可能需要几分钟. 默认: SSH地址: 127.0.0.1:2222 默认: SSH用户名: vagrant 默认: SSH 身份验证方法: 私钥 default: 警告: 连接重置。正在重试. default: 警告: 远程连接断开。正在重试. default: 警告: 连接重置。正在重试. default: 警告: 远程连接断开。正在重试. 默认: default: Vagrant 检测到不安全密钥。 Vagrant 会自动替换 default: 使用新生成的密钥对以提高安全性。 默认: default: 正在访客中插入生成的公钥. default: 正在从来宾中删除不安全的密钥(如果存在). default: 钥匙已插入!使用新的SSH 密钥断开连接并重新连接. ==default: 机器已启动并准备就绪! ==default: 正在检查虚拟机中的来宾添加. default: 此VM 上的来宾添加与已安装的版本不匹配 默认: VirtualBox!在大多数情况下这很好,但在极少数情况下可能会这样 default: 会阻止共享文件夹等内容正常工作。如果你看到 default: 共享文件夹错误,请确保来宾添加在 default: 虚拟机与您安装的VirtualBox 版本匹配 default: 您的主机并重新加载您的虚拟机。 默认: default: 来宾添加版本: 7.0.20 默认: VirtualBox 版本: 7.1 ==default: 正在挂载共享文件夹. 默认: /tmp/vagrant-demo=/vagrant $ $ 流浪者ssh Linux kali 6.12.25-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.12.25-1kali1 (2025-04-30) x86_64 Kali GNU/Linux 系统中包含的程序是自由软件; 每个程序的确切分配条款在 /usr/share/doc/*/copyright 中的各个文件。 Kali GNU/Linux 绝对不提供任何保证 适用法律允许。 ┌──(流浪㉿kali)-[~] └─$ 备忘单 vagrant box添加kalilinux/rolling --force --clean --provider virtualbox --box-version 2025.2.1 mkdir -pv kali-vagrant/cd $_ vagrant init kalilinux/rolling --force --minimal --output - --box-version 2025.2.1 | vagrant init kalilinux/rolling --force --minimal --output --box-version 2025.2.1 | tee 流浪文件 vagrant up --provider virtualbox 流浪者ssh 更多阅读 Kali inside Vagrant (Guest VM)自定义Kali Vagrant Vagrantfilekali-packer/README.vagrant.mdkali-packer/README.packer.mdBuild Script: kali-packerBuild Script: kali-vm
创建帐户或登录后发表意见