Sam*_*rns 13 continuous-integration vagrant travis-ci circleci scrutinizer
是否有任何云CI服务允许Vagrant VM使用VirtualBox作为提供商运行?
尽管vagrant-aws插件允许将AWS服务器用作Vagrant提供者,但早期调查显示Travis CI或Circle CI似乎无法做到这一点.它是否正确?
2021 年 1 月更新:GitHub Actions还支持 Vagrant - 并且Vagrant/VirtualBox 都在 MacOS 环境中开箱即用安装(目前不在 Linux或 Windows 上!)。请参阅此处可能的环境。因此,我在以下位置创建了一个完全可理解的示例项目: https: //github.com/jonashackt/vagrant-github-actions
1.:创建一个Vagrantfile(并且您不限于像 Travis 那样使用 libvirt,您拥有一个完整的 VirtualBox 环境,并且可以在 GitHub Actions 上运行嵌套虚拟化!),如下所示:
Vagrant.configure("2") do |config|
config.vm.box = "generic/ubuntu1804"
config.vm.define 'ubuntu'
# Prevent SharedFoldersEnableSymlinksCreate errors
config.vm.synced_folder ".", "/vagrant", disabled: true
end
Run Code Online (Sandbox Code Playgroud)
2.:在存储库的目录中创建一个像vagrant-up.yml这样的GitHub Actions 工作流程:.github/workflows
name: vagrant-up
on: [push]
jobs:
vagrant-up:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
- name: Run vagrant up
run: vagrant up
- name: ssh into box after boot
run: vagrant ssh -c "echo 'hello world!'"
Run Code Online (Sandbox Code Playgroud)
您甚至可以为 Vagran 盒子添加缓存,这将为您节省几秒钟的时间:)
2020 年初:
TravisCI 现在终于可以运行 Vagrant 了!感谢这个 GitHub 问题,我了解了libvirt和 KVM,它们可以与vagrant-libvirt 插件一起使用,在 TravisCI 上运行 Vagrant 盒子。
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!'"
Run Code Online (Sandbox Code Playgroud)
借助generic来自 Vagrant Cloud 的 Vagrant Box 映像,您还可以建立在 Travis 上使用 Vagrant + libvirt + KVM 以及在本地计算机上使用 Vagrant + VirtualBox 的工作流程,如果您愿意的话:
我在这里创建了一个完全工作且 100% 可理解的示例项目: https: //github.com/jonashackt/vagrant-travisci-libvrt
许多 CI 服务不允许通过 LXC 或 Virtualbox 运行 Vagrant,因为它需要嵌套虚拟化(在 VM 中运行 VM)或为您配置的纯裸机服务器。
2021 年当前(更新)情况:
我希望在此期间我们会看到 CI 服务允许使用 Virtualbox 或 LXC 运行 Vagrant,但目前 Docker(有其局限性)是唯一的选择。
就我个人而言,我很乐意通过Test-Kitchen CI或类似工具使用它对不同平台/Linux 发行版进行集成测试。
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |