返回顶部
v

vagrant流浪者

>-

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.7.4
安全检测
已通过
142
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

vagrant

用户输入

text
$ARGUMENTS

在继续之前,你必须考虑用户输入(如果不为空)。

执行说明

本技能提供一个一次性虚拟机沙箱,用于安全的开发和测试。所有特权操作(sudo、iptables、Docker、systemd、KVM)都在虚拟机内部进行——宿主机不会被修改。

你(代理)永远不需要宿主机级别的 sudo。 相反,使用此 Vagrant 工作流程来获取一个完全配置好的、一次性虚拟机,在其中你拥有不受限制的 root 访问权限。

前置条件

在使用此工作流程之前,请确认有一个可用的提供者:

bash

检查 Vagrant 是否已安装


command -v vagrant

检查是否有可用的提供者(任意一个即可)

command -v prlctl # Parallels(Mac Apple Silicon — 推荐) vagrant plugin list | grep libvirt # libvirt(Linux — 嵌套 KVM) command -v VBoxManage # VirtualBox(备选)

详细的提供者安装说明请参见 references/platform-setup.md



核心工作流程

步骤 1:在用户项目中创建 Vagrantfile

如果用户项目尚未包含 Vagrantfile,你必须在其项目目录中创建一个真实可用的文件。这不是模板或示例——它必须能够与 vagrant up 端到端配合使用。

你创建的 Vagrantfile 要求:

  • - 基础镜像:bento/ubuntu-24.04
  • 将项目根目录同步到虚拟机中:config.vm.synced_folder ., /project, type: rsync
  • 包含所有三个提供者(Parallels、libvirt、VirtualBox),以便在任何平台上都能工作
  • 使用项目实际需要的工具进行配置(先检查项目——查找 go.mod、package.json、requirements.txt、Makefile、Dockerfile 等)
  • 在配置脚本中使用 set -euo pipefail
  • 使配置具有幂等性

以下是基础 Vagrantfile——你必须根据项目实际使用的内容自定义配置部分:

ruby

-- mode: ruby --


Vagrantfile — 一次性开发/测试虚拟机

VMCPUS = Integer(ENV[VMCPUS] || 4)
VMMEMORY = Integer(ENV[VMMEMORY] || 4096)

Vagrant.configure(2) do |config|
config.vm.box = bento/ubuntu-24.04
config.vm.boxcheckupdate = false
config.vm.hostname = dev
config.vm.boot_timeout = 300
config.ssh.forward_agent = true

# ─── 将项目同步到虚拟机中的 /project ─────────────────────────────────────
config.vm.synced_folder ., /project, type: rsync,
rsyncexclude: [
.git/, node_modules/, vendor/, .vagrant/,
bin/, dist/, build/, .next/,
]

# ─── 提供者:Parallels(Mac Apple Silicon — 推荐)────────────────────────
config.vm.provider parallels do |prl|
prl.cpus = VM_CPUS
prl.memory = VM_MEMORY
prl.updateguesttools = true
end

# ─── 提供者:libvirt(Linux — 首选,嵌套 KVM)────────────────────────────
config.vm.provider libvirt do |lv|
lv.cpus = VM_CPUS
lv.memory = VM_MEMORY
lv.cpu_mode = host-passthrough
lv.nested = true
end

# ─── 提供者:VirtualBox(跨平台备选)─────────────────────────────────────
config.vm.provider virtualbox do |vb|
vb.cpus = VM_CPUS
vb.memory = VM_MEMORY
vb.customize [modifyvm, :id, --nested-hw-virt, on]
end

# ─── 配置:安装项目依赖 ──────────────────────────────────────────────
# 根据项目自定义此项。检查 go.mod、package.json、
# requirements.txt、Dockerfile、Makefile 等,并安装所需内容。
config.vm.provision shell, privileged: true, inline: <<-SHELL
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq
apt-get install -y -qq build-essential curl git jq ca-certificates gnupg

# ── Docker ────────────────────────────────────────────────────────────
if ! command -v docker &>/dev/null; then
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable \
| tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update -qq
apt-get install -y -qq docker-ce docker-ce-cli containerd.io
fi
systemctl enable --now docker
usermod -aG docker vagrant

# ── 在下方添加项目特定的工具 ────────────────────────────────
# 示例(取消注释/添加项目所需的内容):
#
# Go:
# GO_VERSION=1.24.3
# curl -fsSL https://go.dev/dl/go${GO_VERSION}.linux-$(dpkg --print-architecture).tar.gz \
# | tar -C /usr/local -xz
# echo export PATH=/usr/local/go/bin:$HOME/go/bin:$PATH > /etc/profile.d/go.sh
#
# Node.js:
# curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
# apt-get install -y -qq nodejs
#
# Python:
# apt-get install -y -qq python3 python3-pip python3-venv

echo 虚拟机已就绪 — 项目已同步到 /project
SHELL
end

你必须自定义配置部分。 阅读项目以确定其需要什么:

  • - go.mod → 安装 Go
  • package.json → 安装 Node.js
  • requirements.txt / pyproject.toml → 安装 Python
  • Dockerfile → 上面已包含 Docker
  • 网络测试 → 添加 iptables dnsmasq dnsutils iproute2 net-tools
  • KVM/微型VM 测试 → 添加 qemu-kvm libvirt-daemon-system

取消注释相关代码块并添加任何其他工具。不要在最终的 Vagrantfile 中留下占位符注释——生成一个干净、可工作的文件。

然后,如果尚未存在,将 .vagrant/ 添加到用户的 .gitignore 中:

bash
grep -qxF .vagrant/ .gitignore 2>/dev/null || echo .vagrant/ >> .gitignore

Vagrantfile 本身应该被提交——它是可重用的项目基础设施。

如果用户已有 Vagrantfile,除非他们要求修改,否则按原样使用。

步骤 2:启动虚拟机

bash
vagrant up

这将启动虚拟机,并将用户项目同步到虚拟机内的 /project。

步骤 3:在虚拟机内运行命令

所有命令都从宿主机使用 vagrant ssh -c。 无需交互式 SSH。

bash

使用 sudo 运行任何命令


vagrant ssh -c sudo apt-get install -y some-package

构建项目

vagrant ssh -c cd /project && make build vagrant ssh -c cd /project && go test ./...

Docker 操作

vagrant ssh -c docker build -t myimage . vagrant ssh -c docker run --rm myimage

网络/防火墙测试

vagrant ssh -c sudo iptables -L -n

步骤 4:迭代代码更改

当你在宿主机上修改源代码时:

bash
vagrant rsync # 将更改同步到虚拟机
vagrant ssh -c cd /project && make build # 重新构建
vagrant ssh -c cd /project && make test # 测试

步骤

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 vagrant-skill-1776027902 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 vagrant-skill-1776027902 技能

通过命令行安装

skillhub install vagrant-skill-1776027902

下载

⬇ 下载 vagrant v0.7.4(免费)

文件大小: 32.85 KB | 发布时间: 2026-4-13 12:26

v0.7.4 最新 2026-4-13 12:26
- Maintenance release: no user-facing changes.
- Updated package metadata (`package.json`); skill content and functionality unchanged.

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large
返回顶部