在云CI服务上使用Vagrant

时间:2015-08-05 09:30:12

标签: continuous-integration vagrant travis-ci circleci scrutinizer

是否有任何云CI服务允许Vagrant VM使用VirtualBox作为提供商运行?

早期调查显示Travis CI或Circle CI似乎无法做到这一点,尽管vagrant-aws插件允许将AWS服务器用作Vagrant提供者。这是对的吗?

3 个答案:

答案 0 :(得分:4)

那是对的。

仍然没有CI服务允许通过LXC或Virtualbox运行Vagrant(而且很难过)。

我希望在我们看到CI服务允许使用Virtualbox或LXC运行Vagrant的时候,但是现在Docker(有其局限性)是唯一的选择。

就我个人而言,我很乐意通过Test-Kitchen CI将它用于针对不同平台/ Linux发行版的集成测试。

答案 1 :(得分:1)

TravisCI现在终于可以运行Vagrant!多亏了this GitHub issue,我了解了libvirt和KVM,它们可以与vagrant-libvirt Plugin一起用于在TravisCI上运行“无家可归”框。

示例TravisCI .travis.yml应该看起来像这样:

---
dist: bionic
language: python

install:
# Install libvrt & KVM
- sudo apt-get update && sudo apt-get install -y bridge-utils dnsmasq-base ebtables libvirt-bin libvirt-dev qemu-kvm qemu-utils ruby-dev

# Download Vagrant & Install Vagrant package
- sudo wget -nv https://releases.hashicorp.com/vagrant/2.2.7/vagrant_2.2.7_x86_64.deb
- sudo dpkg -i vagrant_2.2.7_x86_64.deb

# Vagrant correctly installed?
- vagrant --version

# Install vagrant-libvirt Vagrant plugin
- sudo vagrant plugin install vagrant-libvirt

script:
- sudo vagrant up --provider=libvirt
- sudo vagrant ssh -c "echo 'hello world!'"

generic Vagrant Box images from Vagrant Cloud的帮助下,如果愿意,您还可以建立在Travis上使用Vagrant + libvirt + KVM和在本地计算机上使用Vagrant + VirtualBox的工作流:

enter image description here

我在这里创建了一个可以正常工作且100%可理解的示例项目:https://github.com/jonashackt/vagrant-travisci-libvrt

答案 2 :(得分:0)

AppVeyor使用VirtualBox作为提供程序来运行Vagrant。此外,您可以使用其他提供程序,例如libvirt或Hyper-v。

已更新: Github Actions是另一种选择。只有Mac OS environment启用了嵌套虚拟化。一个示例是herehere