Vagrant可以满足我的要求吗?

时间:2014-11-18 11:20:49

标签: automation virtual-machine automated-tests vagrant testcomplete

我一直在寻找设置自动化环境的方法,我发现这个应用程序名为Vagrant。我在网站上阅读了这些文档,但是我想从那里的专家那里了解一下,如果使用Oracle VirtualBox的Vagrant就足以满足我的需求了。

  1. 我需要一个可以调用Vagrant来初始化VM的脚本[VM-Image始终是相同的 - Windows Server 2008 R2]
  2. 我需要将一些项目相关文件从共享位置复制到VM
  3. 调用批处理文件,该文件将负责VM内部的测试运行
  4. 一旦我的测试运行完成,此VM需要自毁或销毁。
  5. 另外,我想知道Image是否是自定义.ISO文件?

1 个答案:

答案 0 :(得分:2)

听起来像Vagrant和VirtualBox将适用于该场景。此外,您可能会发现使用WinRM或SSH在VM中运行命令可能是启动测试的最简单方法。

如果您还没有看过,有关Vagrant 1.6中Windows支持的博客文章内容丰富:https://www.vagrantup.com/blog/feature-preview-vagrant-1-6-windows.html

从.iso创建VirtualBox / Vagrant基础VM应该可以工作,然后您可以从那时起使用VM完成所有工作。

要开始使用,您可以尝试以下步骤:

  • 使用VirtualBox GUI或cmdline工具从Windows .iso创建VirtualBox VM。
  • 让VM处于您想要的状态后,将其关闭并将其打包为流浪盒 - 例如,在步骤类似的Mac上(其中Win7x64是包含的dir) VirtualBox VM):

    cd ~/VirtualBox\ VMs
    vagrant package --base Win7x64 --output win7x64_base.box
    
  • 完成后,告诉流浪者新的基本框:

    vagrant box add win7x64_base /path/to/win7_base.box
    
  • 然后你可以让虚拟机初始化/变形虚拟机:

    mkdir win7 && cd win7
    vagrant init win7x64
    vagrant up
    

要启用SSH访问,我在VM中安装了Cygwin并配置了sshd。因此,启动后,您可以通过运行vagrant ssh

来SSH

请注意,如果名为' vagrant'的虚拟机中没有Windows用户,您可以通过将其放入Vagrantfile中来指定要用于vagrant ssh的SSH用户名:

config.ssh.username = 'user1'

如上所述,WinRM也是远程运行命令的选项。

Vagrant显然有一些便利功能,可以让RDP轻松进入虚拟机,但我还没有看过它。