问题描述
我想使用Chef_solo作为Test Kitchen中的供应者来指定食谱路径。
I want to specify cookbook paths using chef_solo as a provisioner in Test Kitchen. We are not using Berkshelf or chef_zero at this time.
我在.kitchen.yml文件中设置了cookbooks_path,但似乎Chef_solo提供者忽略了该标志。
I set cookbooks_path in my .kitchen.yml file, but it seems like the chef_solo provisioner ignores that flag. See stack trace, below.
.kitchen.yml
.kitchen.yml
---
driver:
name: vagrant
provisioner:
name: chef_solo
require_chef_omnibus: 11.8.0
roles_path: '../../roles'
data_bags_path: '../../data_bags'
environments_path: '../../environments'
cookbooks_path: '../cookbooks, ../../site-cookbooks'
堆栈跟踪:
$ kitchen converge analytics-centos-65
-----> Starting Kitchen (v1.2.1)
-----> Converging <analytics-centos-65>...
Preparing files for transfer
Resolving cookbook dependencies with Berkshelf 3.2.1...
Removing non-cookbook files before transfer
Preparing data bags
Preparing environments
Preparing roles
Transfering files to <analytics-centos-65>
[2015-01-07T18:07:06+00:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 11.8.0
[2015-01-07T18:07:06+00:00] INFO: *** Chef 11.8.0 ***
[2015-01-07T18:07:06+00:00] INFO: Chef-client pid: 4294
[2015-01-07T18:07:06+00:00] INFO: Setting the run_list to ["role[default]", "role[test]", "role[development]", "role[etl]", "role[ets]", "role[log_consolidator]"] from JSON
[2015-01-07T18:07:06+00:00] INFO: Run List is [role[default], role[test], role[development], role[etl], role[ets], role[log_consolidator]]
[2015-01-07T18:07:06+00:00] INFO: Run List expands to [sysctl::attribute_driver, yum::epel, ad-summos::timezone, ad-summos::ntpd, ad-summos::users, ad-summos::pgpass, ad-summos::fix_adsummos_dir_permissions, ad-summos::ec2-keys, ad-summos::sudo, ad-summos::aws, ad-summos::git, ad-summos::bashrc, ad-summos::setup-additional-adsummos-directories, ad-summos::aws-adsummos-user, ad-summos::denyhosts, ad-summos::p7zip, ad-summos::set_firewall_rules, ad-summos::system-tools, ad-summos::deploy_analytics_code, vsftpd, users::development, ad-summos::setup_hostname, etl::configure_etl, ad-summos::mysql-client, ad-summos::postgresql-devel, etl::pdi-tools-42, etl::create_etl_folders, etl::system-wide-rvm-permissions, etl::user_agent_utils, etl::pgpass-adsummos-user, ets::ets-install, ets::varnish-install, ets::sftp-user, ad-summos::sinatra, log_consolidator::configure_log_consolidator, log_consolidator::log_cron_crontab, log_consolidator::install_consolidator_packages]
[2015-01-07T18:07:06+00:00] INFO: Starting Chef Run for analytics-centos-65
[2015-01-07T18:07:06+00:00] INFO: Running start handlers
[2015-01-07T18:07:06+00:00] INFO: Start handlers complete.
Compiling Cookbooks...
[2015-01-07T18:07:06+00:00] ERROR: Running exception handlers
[2015-01-07T18:07:06+00:00] ERROR: Exception handlers complete
[2015-01-07T18:07:06+00:00] FATAL: Stacktrace dumped to /tmp/kitchen/cache/chef-stacktrace.out
Chef Client failed. 0 resources updated
[2015-01-07T18:07:06+00:00] ERROR: Cookbook sysctl not found. If you're loading sysctl from another cookbook, make sure you configure the dependency in your metadata
[2015-01-07T18:07:06+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
>>>>>> Converge failed on instance <analytics-centos-65>.
>>>>>> Please see .kitchen/logs/analytics-centos-65.log for more details
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: SSH exited (1) for command: [sudo -E chef-solo --config /tmp/kitchen/solo.rb --json-attributes /tmp/kitchen/dna.json --log_level info]
>>>>>> ----------------------
涉及到:
我看到 sethvargo 的关于Chef_zero设置的答案,但由于零零零碎的环境和角色是在Ruby中而不是JSON中配置的,因此我们被零厨师阻止了。 现在具有优先权,因为Chef Client 12.0开始。
Sounds right to me, but remember that config.rb takes precedence now, since Chef Client 12.0.
文档很好地描述了这一点,但请记住其他人描述的属性:
The docs do well to describe this, but keep in mind the attributes that the others have described:
默认config.rb位置:
Default config.rb Location:
~/.chef/config.rb
烹饪书路径语法:
并重新加载Chef进行测试。
And reload Chef to test.
这篇关于如何在.kitchen.yml文件中为Chef_solo供应商指定菜谱路径?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!