Tag: 食谱

如何获取linux命令输出到chef属性

我想将命令输出转换为chef属性。 有人可以帮助我如何在执行资源或bash资源中设置它。 ruby_block “something” do block do #tricky way to load this Chef::Mixin::ShellOut utilities Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut) command = ‘cat #{fileName}’ command_out = shell_out(command) node.set[‘my_attribute’] = command_out.stdout end action :create end 如何在上面的代码中使用属性..

在厨师执行期间在本机扩展包之后安装gem

虽然在安装本机软件包之前安装了gem,但我尝试在大厨配方中安装雾gem,因此gem安装失败 package “libxslt-dev” package “libxml2-dev” chef_gem “fog” 这是输出 [Thu, 14 Mar 2013 13:04:30 +0000] INFO: Processing chef_gem[fog] action install (ebs4000::update_volumes line 23) [Thu, 14 Mar 2013 13:04:52 +0000] ERROR: Running exception handlers [Thu, 14 Mar 2013 13:04:52 +0000] FATAL: Saving node information to /var/cache/chef/failed-run-data.json [Thu, 14 Mar 2013 13:04:52 +0000] ERROR: Exception handlers complete [Thu, […]

Chef Ruby循环遍历.erb模板文件中的属性

所以这可能有点令人困惑,但请耐心等待。 简而言之,我希望使用某个键值循环所有属性,然后在值不为空时将它们插入模板中。 这是我的代码: 属性: # === Default file Configurations # default[‘elasticsearch’][‘default’][‘ES_USER’] = ” default[‘elasticsearch’][‘default’][‘ES_GROUP’] = ” default[‘elasticsearch’][‘default’][‘ES_HEAP_SIZE’] = ” default[‘elasticsearch’][‘default’][‘MAX_OPEN_FILES’] = ” default[‘elasticsearch’][‘default’][‘MAX_LOCKED_MEMORY’] = ‘unlimited’ default[‘elasticsearch’][‘default’][‘MAX_MAP_COUNT’] = ” default[‘elasticsearch’][‘default’][‘LOG_DIR’] = ‘/var/log/elasticsearch’ default[‘elasticsearch’][‘default’][‘DATA_DIR’] = ‘/var/lib/elasticsearch’ default[‘elasticsearch’][‘default’][‘WORK_DIR’] = ‘/tmp/elasticsearch’ default[‘elasticsearch’][‘default’][‘CONF_DIR’] = ‘/etc/elasticsearch’ default[‘elasticsearch’][‘default’][‘CONF_FILE’] = ‘/etc/elasticsearch/elasticsearch.yml’ default[‘elasticsearch’][‘default’][‘RESTART_ON_UPGRADE’] = ” 模板: = 输出(希望): MAX_LOCKED_MEMORY=unlimited LOG_DIR=/var/log/elasticsearch DATA_DIR=/var/lib/elasticsearch WORK_DIR=/tmp/elasticsearch CONF_DIR=/etc/elasticsearch CONF_FILE=/etc/elasticsearch/elasticsearch.yml […]

使用Ruby / Chef Recipe for Vagrant导入Mysql数据库

我正在编写一个自动设置开发环境的厨师脚本。 我可以创建一个数据库并授予权限,但我试图找到一种方法将mysql转储文件导入刚刚创建的数据库。 我授予访问权限的代码是 ruby_block “Execute grants” do block do require ‘rubygems’ Gem.clear_paths require ‘mysql’ m = Mysql.new(‘localhost’, “root”, node[:mysql][:server_root_password]) m.query(“GRANT ALL ON *.* TO ‘root’@’10.0.0.1’ IDENTIFIED BY ‘#{node[:mysql][:server_root_password]}'”) m.query(‘FLUSH PRIVILEGES’) end end 我希望我能够执行以下查询#m.query(“-u root -p root db_name < /project/db/import.sql") 但只是给了我一个错误。 我没有做太多的Ruby,所以很难弄明白。 谁知道我怎么做到这一点?