基本上我想创build一个安装MySQL 5.7的食谱,所以我虽然我会利用从超市的MySQL。
我开始创build一个新的烹饪书,使用chef generate cookbook MYSQL然后添加depends 'mysql', '~> 8.0'并运行berks install ,成功运行,并安装mysql的食谱。
这是我的default.rb
mysql_service 'default' do version '5.7' bind_address '0.0.0.0' port '3306' data_dir '/data' initial_root_password 'vagrant' action [:create, :start] end
我运行这个命令来运行食谱 – sudo chef-client --local recipes/default.rb它给了我下面的输出
[2017-08-23T18:54:31+00:00] INFO: Started chef-zero at chefzero://localhost:1 with repository at /home/vagrant One version per cookbook [2017-08-23T18:54:31+00:00] INFO: Forking chef instance to converge... Starting Chef Client, version 13.2.20 [2017-08-23T18:54:31+00:00] INFO: *** Chef 13.2.20 *** [2017-08-23T18:54:31+00:00] INFO: Platform: x86_64-linux [2017-08-23T18:54:31+00:00] INFO: Chef-client pid: 26421 [2017-08-23T18:54:31+00:00] INFO: The plugin path /etc/chef/ohai/plugins does not exist. Skipping... [2017-08-23T18:54:33+00:00] INFO: Run List is [] [2017-08-23T18:54:33+00:00] INFO: Run List expands to [] [2017-08-23T18:54:33+00:00] INFO: Starting Chef Run for ardent-admin [2017-08-23T18:54:33+00:00] INFO: Running start handlers [2017-08-23T18:54:33+00:00] INFO: Start handlers complete. resolving cookbooks for run list: [] [2017-08-23T18:54:33+00:00] INFO: Loading cookbooks [] Synchronizing Cookbooks: Installing Cookbook Gems: Compiling Cookbooks... Running handlers: [2017-08-23T18:54:33+00:00] ERROR: Running exception handlers Running handlers complete [2017-08-23T18:54:33+00:00] ERROR: Exception handlers complete Chef Client failed. 0 resources updated in 02 seconds [2017-08-23T18:54:33+00:00] FATAL: Stacktrace dumped to /home/vagrant/.chef/local-mode-cache/cache/chef-stacktrace.out [2017-08-23T18:54:33+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report [2017-08-23T18:54:33+00:00] ERROR: undefined method `mysql_service' for #<Chef::Recipe:0x00000004e58a68> [2017-08-23T18:54:33+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
我99%确定你在其他地方交叉发布,我也在那里回答了,但为了以防万一:运行一个这样的配方不会处理依赖关系。 你需要使用正常模式的厨师独奏(或厨师客户端本地模式,但可能是独奏)。 不幸的是,你不能提供足够的信息来知道这将是什么样子。 基于独奏的工作stream程总是比较复杂,因为你离开了正常的path。 我们build议您尽可能地坚持标准的工作stream程,直到您熟悉厨师自己的足迹。