我正在尝试按照以下文字教程进行操作,并且我的设置在他键入"捆绑安装"的时候中断,我的设置没有安装捆绑这么清楚那里有什么不对和我的厨师一起 - https://gorails.com/guides/using-vagrant-for-rails-development
编辑:为什么这个问题被低估?我没有提供一些背景知识吗?
我运行了前两个命令。
vagrant plugin install vagrant-vbguest
vagrant plugin install vagrant-librarian-chef-nochef
我创建了一个文件夹并制作了Cheffile和Vagrantfile,如下所示:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Use Ubuntu 14.04 Trusty Tahr 64-bit as our operating system
config.vm.box = "ubuntu/trusty64"
# Configurate the virtual machine to use 2GB of RAM
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
# Forward the Rails server default port to the host
config.vm.network :forwarded_port, guest: 3000, host: 3000
# Use Chef Solo to provision our virtual machine
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "cookbooks"
chef.add_recipe "apt"
chef.add_recipe "nodejs"
chef.add_recipe "ruby_build"
chef.add_recipe "rbenv::vagrant"
chef.add_recipe "rbenv::user"
chef.add_recipe "vim"
chef.add_recipe "mysql::server"
chef.add_recipe "mysql::client"
# Install Ruby 2.2.1 and Bundler
# Set an empty root password for MySQL to make things simple
chef.json = {
rbenv: {
user_installs: [{
user: 'vagrant',
rubies: ["2.2.1"],
global: "2.2.1",
gems: {
"2.2.1" => [
{ name: "bundler" }
]
}
}]
},
mysql: {
server_root_password: ''
}
}
end
end
Cheffile
site "http://community.opscode.com/api/v1"
cookbook 'apt'
cookbook 'build-essential'
cookbook 'mysql', '5.5.3'
cookbook 'ruby_build'
cookbook 'nodejs'
cookbook 'rbenv', git: 'https://github.com/aminin/chef-rbenv'
cookbook 'vim'
到目前为止,我花了3天时间整天摆弄这个,我无法让它工作。我启动了我的流浪盒并没有安装捆绑器,所以我无法捆绑安装。
很明显,chef.json无法正常工作。我已经尝试过倾斜错误输出,我一直在谷歌搜索并打开数百个标签,此时我完全迷失了。
在我的chef.json中,它是如何工作的?我如何开始了解如何制作自己的chef.json?我不明白,我怎么知道写user_installs
为例?
以下内容之间是否存在差异:
a)config.vm.provision :chef_solo do |chef|
b)config.vm.provision "chef solo" do |chef|
答案 0 :(得分:0)
嗨。那里有很多问题..所以我会一次尝试1个
*)在当地,你安装了厨师 - 客户或厨师dk吗? Chefclient不会有捆绑器,chefdk在哪里。这通常也是一种更顺畅的体验。
如果您正在使用chef-client。你必须得到捆绑器gem install bundler
如果你正在使用chefdk。您可以将chefdk ruby添加到路径中,使用临时环境设置(eval "$(chef shell-init bash)"
)或仅使用chef exec bundle ...
*)半无关。但该博客上的评论可以追溯到10多个月前。我建议您查看最新教程的https://learn.chef.io/index.html
*)chef_solo和'chef solo'是不同的东西。 :chef_solo
是一个符号。把它想象成在流浪语中具有特殊意义的东西。 chef solo
没有任何意义 - a)它有一个空格,所以它将是两个不同的东西 - 要么变量(在你的例子中未定义),要么“厨师独奏”是一个字符串,这对于供应者。
*)搜索与厨师相关的结果,我建议使用http://docs.chef.io或包含工具名称'chef vagrant nil error'
最后,掌声离开并学习这个工具集。它太棒了,但却是一个全新的世界。