是否有任何云CI服务允许Vagrant VM使用VirtualBox作为提供商运行?
早期调查显示Travis CI或Circle CI似乎无法做到这一点,尽管vagrant-aws插件允许将AWS服务器用作Vagrant提供者。这是对的吗?
答案 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的工作流:
我在这里创建了一个可以正常工作且100%可理解的示例项目:https://github.com/jonashackt/vagrant-travisci-libvrt
答案 2 :(得分:0)
AppVeyor使用VirtualBox作为提供程序来运行Vagrant。此外,您可以使用其他提供程序,例如libvirt或Hyper-v。
已更新: Github Actions是另一种选择。只有Mac OS environment启用了嵌套虚拟化。一个示例是here和here。