【发布时间】:2018-01-05 05:30:50
【问题描述】:
我正在尝试使用 Vagrant (Ubuntu/trusty64) 学习 Ansible,并且我正在尝试使用 test-kitchen 来维护我的设置。
我遇到的问题是 Vagrant 机器具有旧版本的 Ruby (1.9.1),因此其中一个依赖项 (busser) 无法运行。我收到的错误是:
-----> Installing Busser (busser)
Fetching: thor-0.19.0.gem (100%)
Fetching: busser-0.7.1.gem (100%)
Successfully installed thor-0.19.0
Successfully installed busser-0.7.1
2 gems installed
-----> Installing Busser plugin: busser-serverspec
/usr/lib/ruby/1.9.1/rubygems/installer.rb:390:in
'ensure_required_ruby_version_met': rake requires Ruby version >= 2.0.0.
(Gem::InstallError)
当我运行命令“bundle exec kitchen test”时,vagrant 正在从 https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20171208.0.0/providers/virtualbox.box
这是我的 Gemfile,后面是我的 kitchenfile.yml 文件。
source 'https://rubygems.org'
gem 'test-kitchen', '~> 1.19.2'
gem 'kitchen-ansible', '~> 0.48.1'
gem 'kitchen-vagrant', '~> 1.2.1'
gem 'serverspec', '~> 2.41.3'
driver:
name: vagrant
provisioner:
name: ansible_playbook
playbook: playbook.yml
hosts: all
require_chef_for_busser: false
require_ruby_for_busser: true
platforms:
- name: ubuntu
driver_config:
box: "ubuntu/trusty64"
suites:
- name: default
verifier:
ruby_bindir: '/usr/bin'
【问题讨论】:
-
这个特殊问题似乎与 ansible 没有任何关系,因此您可能需要删除 ansible 标记。
-
您使用 ubuntu 镜像有什么特别的原因吗?为什么不使用明确为您提供最新版本 Ruby 的图像?
-
@HubertGrzeskowiak 谢谢,我已经更改了名称:平台下的 ubuntu/xenial64,这似乎有效。在给出答案之前,我会做一些进一步的研究,因为我真的不知道 xenial64 是什么。
-
Trusty 和 xenial 是某些 Ubuntu 版本的别名。您可以使用较新的 Ubuntu 版本或专门用于 ruby 的映像,因为您可能根本不关心使用哪个 Linux 发行版。
-
app.vagrantup.com/boxes/… 在这里拿任何能满足您需求的小号
标签: vagrant test-kitchen