资源管理系统( chef_gem )使用chef-solo
,但不使用vagrant up
myapp/Vagrantfile
Vagrant.configure("2") do |config|
config.vm.hostname = "my-hostname"
config.vm.box = "ubn1204-chef-gemsources-i386"
config.vm.network :private_network, ip: "33.33.33.10"
config.vm.boot_timeout = 120
config.berkshelf.enabled = true
config.vm.provision :chef_solo do |chef|
chef.json = {
:mysql => {
:server_root_password => 'rootpass',
:server_debian_password => 'debpass',
:server_repl_password => 'replpass'
}
}
chef.run_list = [
"recipe[myface::mysql_gem]"
]
end
end
*myapp/食谱/mysql_gem.rb*
%w{mysql-client libmysqlclient-dev make}.each do |pack|
package pack do
action :nothing
end.run_action(:install)
end
g = chef_gem "mysql" do
action :nothing
end
g.run_action(:install)
当执行vagrant up
时,我得到以下错误
[2014-01-22T15:21:06+00:00] INFO: Forking chef instance to converge...
[2014-01-22T15:21:07+00:00] INFO: *** Chef 11.8.2 ***
[2014-01-22T15:21:07+00:00] INFO: Chef-client pid: 1162
[2014-01-22T15:21:09+00:00] INFO: Setting the run_list to ["recipe[myface::mysql_gem]"] from JSON
[2014-01-22T15:21:09+00:00] INFO: Run List is [recipe[myface::mysql_gem]]
[2014-01-22T15:21:09+00:00] INFO: Run List expands to [myface::mysql_gem]
[2014-01-22T15:21:09+00:00] INFO: Starting Chef Run for myface-berkshelf
[2014-01-22T15:21:09+00:00] INFO: Running start handlers
[2014-01-22T15:21:09+00:00] INFO: Start handlers complete.
[2014-01-22T15:22:54+00:00] WARN: failed to find gem mysql (>= 0) from [http://rubygems.org/]
[2014-01-22T15:22:54+00:00] ERROR: Running exception handlers
[2014-01-22T15:22:54+00:00] ERROR: Exception handlers complete
[2014-01-22T15:22:54+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2014-01-22T15:22:54+00:00] ERROR: chef_gem[mysql] (myface::mysql_gem line 6) had an error: ArgumentError: Illformed requirement [""]
================================================================================
Error executing action `install` on resource 'chef_gem[mysql]'
================================================================================
ArgumentError
-------------
Illformed requirement [""]
Cookbook Trace:
---------------
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/myface/recipes/mysql_gem.rb:9:in `from_file'
Resource Declaration:
---------------------
# In /tmp/vagrant-chef-1/chef-solo-1/cookbooks/myface/recipes/mysql_gem.rb
6: g = chef_gem "mysql" do
7: action :nothing
8: end
9: g.run_action(:install)
Compiled Resource:
------------------
# Declared in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/myface/recipes/mysql_gem.rb:6:in `from_file'
chef_gem("mysql") do
provider Chef::Provider::Package::Rubygems
action [:nothing]
retries 0
retry_delay 2
package_name "mysql"
cookbook_name :myface
recipe_name "mysql_gem"
end
================================================================================
Recipe Compile Error in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/myface/recipes/mysql_gem.rb
================================================================================
ArgumentError
-------------
chef_gem[mysql] (myface::mysql_gem line 6) had an error: ArgumentError: Illformed requirement [""]
Cookbook Trace:
---------------
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/myface/recipes/mysql_gem.rb:9:in `from_file'
Relevant File Content:
----------------------
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/myface/recipes/mysql_gem.rb:
2: package pack do
3: action :nothing
4: end.run_action(:install)
5: end
6: g = chef_gem "mysql" do
7: action :nothing
8: end
9>> g.run_action(:install) 10:
[2014-01-22T15:21:06+00:00] INFO: Forking chef instance to converge...
[2014-01-22T15:22:54+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.
然而,我进入了迷茫的VM vagrant ssh
。
执行流浪汉$ sudo chef-solo -c /vagrant/solo.rb -j /vagrant/aux.rb
它工作正常.
什么时候
/流浪汉/辅助设备
{
"mysql": {
"server_root_password": "rootpass",
"server_debian_password": "debpass",
"server_repl_password": "replpass"
},
"run_list": [ "recipe[myface::mysql_gem]" ]
}
和
/流浪汉/独身
file_cache_path "/var/chef/cache"
file_backup_path "/var/chef/backup"
cookbook_path ["/tmp/vagrant-chef-1/chef-solo-1/cookbooks"]
log_level :info
verbose_logging true
encrypted_data_bag_secret "/tmp/encrypted_data_bag_secret"
有人知道为什么它可以直接从厨师-solo而不是通过流浪汉那里运行。
工具版本
发布于 2014-01-22 21:54:48
这是一个已知的厨师错误- 厨师-3912
https://stackoverflow.com/questions/21287563
复制