You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统下用Molecule与Vagrant本地测试Ansible Role的方案

在Windows上用Molecule + Vagrant测试Ansible Role的最佳方案

最佳方式是通过**WSL2(Windows Subsystem for Linux)**搭建Linux环境,在WSL内部部署Molecule、Vagrant及依赖,同时对接Windows端的虚拟化后端(VirtualBox)或WSL原生的虚拟化层(libvirt),完美适配Ansible生态的Linux原生工具链。

步骤1:安装WSL2

  • 以管理员身份打开PowerShell,运行以下命令开启WSL和虚拟机平台功能:
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    
  • 重启电脑后,安装WSL2 Linux内核更新包(微软官网可下载x64版本)。
  • 设置WSL默认版本为2:
    wsl --set-default-version 2
    
  • 从Microsoft Store安装Ubuntu 22.04 LTS(或其他偏好的Linux发行版),首次启动时设置用户名和密码。

步骤2:在WSL内部安装核心依赖

  • 更新系统包:
    sudo apt update && sudo apt upgrade -y
    
  • 安装Python环境:
    sudo apt install python3 python3-pip python3-virtualenv -y
    
  • 安装Vagrant:
    sudo apt install vagrant -y
    
    (如果需要最新版,可下载对应Linux的deb包手动安装)
  • 安装Molecule及Vagrant驱动:
    1. 创建并激活Python虚拟环境(避免污染系统环境):
      virtualenv ~/ansible-test-env
      source ~/ansible-test-env/bin/activate
      
    2. 安装所需工具:
      pip install molecule molecule-vagrant ansible-core
      

步骤3:配置虚拟化后端

方案A:使用Windows端的VirtualBox(推荐新手)

  • 在Windows系统上安装最新版VirtualBox。
  • 在WSL的终端中添加环境变量,让Vagrant能访问Windows端的VirtualBox:
    echo 'export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1"' >> ~/.bashrc
    source ~/.bashrc
    
  • 测试Vagrant连接:
    vagrant init ubuntu/jammy64
    vagrant up
    vagrant destroy -f
    

方案B:使用WSL原生的libvirt(性能更优)

  • 在WSL中安装libvirt及KVM:
    sudo apt install libvirt-daemon-system libvirt-clients qemu-kvm -y
    sudo usermod -aG libvirt $USER
    
  • 重启WSL会话后,安装Vagrant的libvirt插件:
    vagrant plugin install vagrant-libvirt
    
  • 测试libvirt后端:
    vagrant init ubuntu/jammy64 --provider=libvirt
    vagrant up
    vagrant destroy -f
    

步骤4:测试你的Ansible Role

  • 挂载Windows上的代码目录到WSL:比如你的Role在C:\Users\你的用户名\Projects\my-ansible-role,在WSL中访问/mnt/c/Users/你的用户名/Projects/my-ansible-role。
  • 如果还未初始化Molecule配置,运行:
    molecule init role --driver-name vagrant my-ansible-role
    
  • 进入Role目录,执行完整测试流程:
    cd my-ansible-role
    molecule test
    
    该命令会自动完成虚拟机创建、Role执行、结果验证、虚拟机销毁的全流程。

日常使用注意事项

  • 每次开始测试前,记得激活Python虚拟环境:source ~/ansible-test-env/bin/activate。
  • 使用VirtualBox时,需确保Windows防火墙允许VirtualBox的网络请求,避免虚拟机启动失败。
  • WSL与Windows的文件系统互通,无需复制代码,直接访问/mnt/盘符即可。

内容的提问来源于stack exchange,提问作者Ji Saa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:06:22