当我的厨师客户端在厨师零(厨师本地)模式下运行时,我可以运行chef-shell作为厨师客户端吗? 用于在零模式下运行chef-client的参数是-z 。 然而使用-z与chef-shell只是使它在chef-client模式下运行…
我正在编写一个配方,从源代码编译和安装应用程序,但也更改应用程序完成安装时创build的目录中的configuration文件。 配方看起来像这样: bash "install inspircd from source" do … code <<-EOH …. make && \ make install EOH end … # Copy over the configuration template template "<config dir>/inspircd.conf" do source "inspircd.conf.erb" …. end 根据这些文档 ,“资源按其出现的顺序执行”。 但是Chef似乎并没有按照它们出现的顺序执行它,因为它试图把模板文件放到一个只有在make安装完成后才创build的目录中。 厨师是否同时执行配方? 有没有办法阻止执行,直到bash命令完成? 任何帮助,将不胜感激。 谢谢。
我有一些服务器在一段时间内没有检查(内部开源)厨师服务器。 以root身份运行chef-client ,我收到消息 WARN: Can not find config file: /etc/chef/client.rb, using defaults. 运行“-c / path / to / config”选项会得到相同的结果。 但是,正如您所看到的,这些文件在读取和执行权限上都是原地的: root@client:~# ls -lah /etc/chef total 24K drwxr-xr-x 2 root root 4.0K 2011-08-19 09:24 . drwxr-xr-x 91 root root 4.0K 2012-03-12 14:55 .. -rw-rw-r– 1 root root 148 2010-09-15 13:14 client.json -rw——- 1 root root 1.7K […]
我有一个基于Linux的networking基础架构,由15台虚拟机和50多种不同的服务组成。 由厨师完全控制。 大部分服务都是内部开发的。 基本上当前的部署过程由shell脚本触发。 构build系统(Python和shell脚本的混合)将服务打包为.deb文件,并将这些包放入回购站。 它在所有15个节点上运行apt-get update ,然后是因为标准Chef apt Cookbook每天仅运行apt-get一次,而且我们绝对不希望在每个chef-client唤醒中无条件地运行apt-get update 。 构build系统最终在所有15个节点上重新启动chef-client守护进程(因为拉厨师本质,我们需要这一步)。 目前的过程有一些缺陷,我们要解决。 首先,它是asynchronous的,因为部署脚本在重启之后不检查chef-client日志,所以我们甚至不知道部署是否成功。 它甚至不等Chef客户完成这个周期。 其次,我们绝对不希望强制所有节点上的chef-client重启,因为我们通常只部署less量的包。 第三,我不太清楚使用chef-client进行部署是否合法,可能我们从一开始就做错了。 请分享您的想法/经验。
我试图find一种方法来dynamic地应用模板资源在食谱模板文件夹内的文件夹中的所有文件。 就像是: Dir.foreach("../templates/default/shared/") do | file | # This is the wrong line… template "/home/admin/shared/#{file}" do source "shared/#{file}" … end end 我该怎么做? 我试图避免有一个单独的目录中的所有文件列表作为variables…谢谢。
我已经使用官方说明在Ubuntu 12.04上安装了Chef Server,它使用embedded了ruby 1.8.7的“omnibus installer”。 我试图安装刀窗 ,但是当我运行gem install knife-windows我得到这个错误: ERROR: Error installing knife-windows: gssapi requires Ruby version >= 1.9.1. 我尝试安装RVM和1.9.3,但我得到这个错误,并退还: /opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:900:in `report_activate_error': Could not find RubyGem chef (>= 0) (Gem::LoadError) from /opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate' from /opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1276:in `gem' from /opt/vagrant_ruby/bin/knife:18 用Ruby 1.9.x安装Chef server&knife的正确方法是什么?
我正在寻找一个Opscode Chef食谱 ,它在run_list执行时安装最新的补丁级别的系统级Ruby 1.9.3。 已经做了一些研究,并且至less有一个适用于Ubuntu的Brightbox PPA 。 我不知道是否有一个写得很好的跨平台的厨师食谱,取代旧的1.8.7 Ruby的1.9.3或更好的,而不依赖于RVM或rbenv。
我在虚拟机上创build了一个厨师服务器(192.168.0.21)。 服务器在https上运行良好(这是opscode站点的最后一个版本)。 knife user list (和其他列表命令)运行良好,返回正确的结果(所有的用户/节点/客户端,新用户显示就好了)。 当我试图上传一个食谱到服务器,我得到这个错误: networking错误:getaddrinfo:名称或服务未知检查您的刀具configuration和networking设置 或者这个更长的错误: 错误:networking错误:getaddrinfo:名称或服务未知检查您的刀具configuration和networking设置/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763: initialize': getaddrinfo: Name or service not known (SocketError) from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in打开'从/opt/chef/embedded/lib/ruby/1.9.1/net /http.rb:763:in block in connect' from /opt/chef/embedded/lib/ruby/1.9.1/timeout.rb:69:in timeout from /opt/chef/embedded/lib/ruby/1.9 .1 / timeout.rb:100:在/ opt / chef / embedded / lib / ruby中timeout' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in连接timeout' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in /1.9.1/net/http.rb:756 do_start' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:745:in开始/从/ opt / chef /embeddeddo_start' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:745:in […]
我正在使用自定义bash脚本来根据需要旋转向上/向下EC2实例。 该脚本创build类似于以下的实例: knife ec2 server create –config .chef/knife.rb与一些其他参数。 它创build的实例很好,但我想能够分配我的弹性ip到当前活动的实例。 短的发送输出到一个文本文件,parsingIP和实例名称的输出,然后运行ec2-associate-address -i $instancename $ipaddress是否有一个很好的方式来做到这一点编程? 我相信我正在想这个。
我有两个应用程序在同一个域/子域下的单个节点上部署/运行。 一个是Rails应用程序,另一个是Wordpress应用程序。 Rails应用程序将作为example.com的主应用程序和blog.example.com的wordpress应用程序驻留。 假设我将使用Apache2作为Web服务器来处理VirtualHost。 到目前为止,我已经search并find了每个节点的一个应用程序的交易的例子和post。 但是对于我来说,挑战是如何使用VirtualHost在同一个域下的单个节点上部署多个应用程序? 我可以创build2个单独的run_list,添加不同的angular色。 之后,当我必须在同一个域上添加另一个应用程序(例如forum.example.com时,我可以为此创build一个单独的run_list。 但是,如何更新/修改Apache服务器的VirtualHost,因为每个节点只有一个?