Articles of 厨师

厨师:如何将日志消息复制到聊天服务器(DevOps)

我们正在使用厨师进行基础设施pipe理和部署各种系统应用程序。 我们希望“复制”一些日志语句,以便将消息logging到正常的厨师logging器,并通过curl其logging到我们的聊天系统。 是否有捷径可寻? 例如,像这样的工作 log "this is a log message" do level :info notifies :run, 'execute[log_to_chat]', :immediately end # log a message to slack via curl command execute 'log_to_chat' do command 'curl ….' action :nothing end

这个厨师属性来自哪里,为什么我不能改变它?

当我更改angular色时,厨师节点的属性没有更新,旧值持续存在。 node['nagios']['custom_variables']['styleurl']属性没有更新到/urlprefix的新值, /urlprefix卡在旧值urlprefix 。 我一个多星期前就改变了angular色定义。 另一个与chef-client(这是看这个属性的nagios服务器)的节点: # chef-shell -z chef > nodes.show("server2.example.com")['nagios']['custom_variables']['styleurl'] => "urlprefix" 节点和angular色定义(下面)不包括这个值,只包含/urlprefix 。 debug_value告诉我这是来自一个覆盖。 chef > nodes.show("server2.example.com").debug_value("nagios", "custom_variables", "styleurl") => [["set_unless_enabled?", false], ["default", :not_present], ["env_default", :not_present], ["role_default", :not_present], ["force_default", :not_present], ["normal", :not_present], ["override", "osm"], ["role_override", :not_present], ["env_override", :not_present], ["force_override", :not_present], ["automatic", :not_present]] knife node show -l显示我有一个override该variables。 (见下面的输出)。 我使用这些属性来configuration我的nagios检查。 Nagiosconfiguration了厨师,显然我的nagios检查失败了。 我怎么能改变angular色的属性? 为什么override_attribute这个angular色不是, 重写属性呢? […]

刀天青服务器列表返回空结果

我试图在Ubuntu 16.04上设置CHEF服务器和工作站。 我已经遵循了几个指南,到目前为止,我可以得到它列出可用的图像,但“刀天青服务器列表”返回一个空的结果。 AFAIK我已经完成了所有必需的工作。 我已经获得了发布设置文件,managementCertificate.pem等 这是我的knife.rb内容: current_dir = File.dirname(__FILE__) log_level :info log_location STDOUT node_name "bruce" client_key "#{current_dir}/bruce.pem" validation_client_name "company-validator" validation_key "#{current_dir}/company-validator.pem" chef_server_url "https://URL/organizations/company" syntax_check_cache_path "#{ENV['HOME']}/.chef/syntaxcache" cookbook_path ["#{current_dir}/../cookbooks"] knife[:azure_publish_settings_file] = "#{current_dir}/Enterprise Dev-Test-Microsoft Azure Enterprise-2-20-2017-credentials.publishsettings" knife[:azure_mgmt_cert] = "~/managementCertificate.pem" knife[:azure_subscription_id] = "specific subscription id i want to work with" 任何想法,为什么我没有得到任何东西? 有在那里vms …预先感谢!

厨师根据主机名创buildconfiguration文件

厨师新手 我已经写了一个基于主机名的模板来创build一个文件。 如果主机名与服务器1和服务器2匹配,则从template1创build,否则从默认模板创build。 但是它总是创buildtemplate1。 请协助 :( 这是代码: case node.name when "server1" || "server2" template "template1.conf" do source "template1.conf.erb" owner "root" group "root" mode "0644" end else template "template2.conf" do source "template2.conf.erb" owner "root" group "root" mode "0644" end end

Ubuntu升级后,厨师客户端无法连接

在将我的厨师服务器上的Ubuntu从10.04升级到10.10后,我所有的刀和厨师客户端都停止工作。 我收到401:每个查询和操作的未经授权的例外。 我试图重新注册我的客户( knife client reregister CLIENT ),这没有奏效。 我尝试重新生成我的厨师authentication数据(删除/etc/chef/validation.pem ,重新启动chef-server ,并运行knife configure –initial chef-server knife configure –initial与chef-validation作为pipe理员用户和新生成的/etc/chef/validation.pem作为证书),使我能够用我的新凭证再次连接厨师,但现在我的configuration数据是空的! 正在运行的knife node list没有任何返回。 这表明CouchDB数据库是空的。 实际上,有一个/var/lib/couchdb/0.10.0/chef.couch文件和一个几乎为空的/var/lib/couchdb/1.0.1/chef.couch文件。 我仍然在搞清楚如何恢复我的数据,但有没有人有类似的经验? 您是如何将您的厨师数据库迁移到新的CouchDB版本的?

厨师/刀的环境configuration帮助

我有以下作为我的knife.rb: log_level :info log_location STDOUT node_name 'user' client_key '/home/user/.chef/user.pem' validation_client_name 'chef-validator' validation_key '~/.chef/validation.pem' chef_server_url 'url:4000' cache_type 'BasicFile' cache_options( :path => '/home/user/.chef/checksums' ) cookbook_path [ './', './site-cookbooks' ] 我可以做“刀菜谱”和所有有趣的东西就好,但是当我去编辑我得到: # knife node edit test.domain.com -c knife.rb -e vim ERROR: ArgumentError: Attribute chef_environment is not defined! 我有一个环境设置: # knife environment list _default production 而我试图编辑的节点就是在那个环境下。 我已经尝试使用-E参数,并且为我的knife.rb添加了一个“environment”和“chef_environment”参数(文档对于我应该使用的有点模糊),但是无济于事。 任何人有任何意见呢?

在Chef-solo开始之前运行脚本?

我使用Vagrant和Chef-solo来创build开发环境虚拟机。 问题是,Debian Chef包依赖于某个版本的RubyGems来运行,但是我希望VM有一个更新的从源代码安装的RubyGems版本。 在启动Chef-solo 之前 ,Vagrant有办法运行一些脚本/命令吗? 这样我就可以在Chef-solo运行之前和之后切换rubygems版本之间的符号链接。

我应该在哪里configuration由第三方厨师食谱安装的软件?

我正在configuration一个带有Chef的Vagrant虚拟机,这真是太棒了,但是我不确定在哪里放置代码来configuration由第三方厨师食谱安装的软件。 例如,我正在用这个配方安装NGINX,但是我需要configuration默认的虚拟主机来为/vagrant/public而不是/var/www/nginx-default 。 我应该更改第三方配方的模板,还是创build另一个重新configuration它的配方?

复制现有的厨师节点

我有一个虚拟机(托pipe在“云”),已经与我的组织自己的厨师服务器配备厨师。 我想在本地复制该虚拟机(使用stream浪的pipe理虚拟机),以便做一些厨师开发。 我已经能够通过在厨师服务器上创build新节点并手动复制现有节点中的angular色,食谱,属性等来做我想做的事情。 在我看来这将是一个相当常见的用例(即复制一个节点/虚拟机),所以可能有一种方法可以轻松地做到这一点(无需手动复制angular色,食谱,属性等) – 但是,我找不到一个。

Opscode厨师nginx从源代码编译报告成功运行,但什么都不做

我试图从源代码安装Opscode主厨nginx,它有点奇怪,它没有任何抱怨,但不安装它。 这是我的angular色属性如何看起来像 "nginx":{ "default_site_enabled":false, "version":"1.2.6", "init_style":"init", "install_method":"source", "configure_flags":[ "–without-http_access_module", "–without-http_auth_basic_module", "–without-http_autoindex_module", "–without-http_browser_module", "–without-http_charset_module", "–without-http_fastcgi_module", "–without-http_memcached_module", "–without-http_referer_module", "–without-http_scgi_module", "–without-http_split_clients_module" ], "log_dir":"/var/log/nginx", "binary":"/opt/nginx/sbin/nginx", "source":{ "prefix":"/opt/nginx/dist", "modules":["http_ssl_module", "http_gzip_static_module" ] } }, 厨师日志显示: [2012-12-19T02:37:44+00:00] INFO: Processing bash[compile_nginx_source] action run (nginx::source line 82) [2012-12-19T02:37:45+00:00] INFO: bash[compile_nginx_source] ran successfully 我无能为力发生了什么:(