我正在使用厨师来pipe理我们所有的食谱。 问题不仅在于我使用厨师,我想知道是否有办法logging所有使用完成的动作。 特别是,我感兴趣的时候,谁做knife cookbook upload和knife cookbook upload所有其他命令。 如果有一种方法可以logging所有用户的操作,如knife cookbook upload
我试图build立一个更新的监控服务器,使用当前版本的厨师nagios食谱(3.1)。 它在我的Ubuntu VM上从源代码安装nagios-3.4.3。 但是我没有在服务器上find任何check_nrpe命令的证据,所以我所有的远程检查都以“(返回代码127超出范围 – 插件可能会丢失)”失败。 在配方文档或者包含check_nrpe插件的食谱源代码中找不到任何东西。 任何人有我的小费?
我有一个我正在与厨师部署的Java应用程序。 我希望它开始,并允许厨师客户端退出。 然而,似乎厨师客户端等待命令完成,无论我如何运行它。 我努力了: 用execute资源执行javaw 执行与start 用start /B执行 创build批处理脚本并使用start和start /B 有没有办法运行Java程序,而不阻止厨师客户端?
我开始在我的基础设施中使用厨师,但不能这样做: 每个开发者都有自己的公共ssh密钥。 在远程服务器中有一个名为ubuntu的独特用户 我想和用户一起使用数据包,比如data_bags / users / jeff.json,data_bags / users / aaron.json等等。 创build用户的Ubuntu和密钥从这些用户需要上传到远程系统的Ubuntu(authorized_keys),并从那里删除,如果我从data_bags /用户删除它。 标准的食谱用户是否允许这样做? 如果您提供示例或帮助,我将不胜感激。
我在一些服务器上安装了一个小应用程序,我想写一个快速配方,让我从这些服务器收集版本号。 这是我写的: bash "Get app version" do code <<-EOH cat /var/lib/myapp/node_modules/myapp/package.json | grep version EOH end 但是,当我运行knife bootstrap命令,我没有看到我的控制台中的输出,即使我用-VV运行它的输出不存在。 我有两个问题: 这是我收集版本号的最好方法吗? 为什么cat结果不出现在我的控制台?
我正尝试在Ubuntu上使用opscode java社区食谱来安装Java 7。 无论我做什么咒语,Java 6似乎都是select: [2013-09-24T00:24:32 + 00:00]信息:处理包[openjdk-6-jdk]动作安装(java :: openjdk第49行) 这些是我的包装的相关细节: #berks cookbook "java", :git => "[email protected]:opscode-cookbooks/java.git" #recipe node.set["java"]["install_flavor"] = "openjdk" node.set["java"]["jdk_version"] = "7" include_recipe "java::default" 任何帮助,将不胜感激。
我对厨师和Ruby都是新手,我正在实施一些脚本来学习它们。 现在,我正面临着如何组织我的代码的问题:我已经在库目录中创build了一个类,并且使用了自定义名称空间来维护顺序。 这是我的文件的一个简化的例子: # ~/chef-repo/cookbooks/mytest/libraries/MyTools.rb module Chef::Recipe::EP class MyTools def self.print_something( text ) puts "This is my text: #{text}" end def self.copy_file( dir, file ) cookbook_file "#{dir}/#{file}" do source "#{dir}/#{file}" end end end end 从我的食谱我称这两种方法: # ~/chef-repo/cookbooks/mytest/recipes/default.rb EP::MyTools.print_something "Hello World!" EP::MyTools.copy_file "/etc", "passwd" print_something工作正常,但与copy_file我得到这个错误: undefined method `cookbook_file' for Chef::Recipe::EP::FileTools:Class 我很清楚,我不知道如何在厨师里创build图书馆,或者我不知道一些基本的假设。 任何人都可以帮我吗? 我正在寻找这个问题的解决scheme(组织我的代码,库,在类中使用资源),或者更好的,一个好的厨师文档,因为我发现文档非常缺乏清晰和杂乱无章,所以通过它的研究是一个痛苦。
我正在尝试创build我的第一个主厨节点。 我有我的笔记本电脑作为pipe理员和虚拟机alaska和kentucky厨师服务器和节点,分别。 这很奇怪,因为它回到了“没有这样的文件或目录”,但它看起来像试图进行RPC调用。 laptop :: ~/chef/test ‹master› » knife bootstrap kentucky –sudo -x parallels -N "target1" Bootstrapping Chef on kentucky kentucky knife sudo password: Enter your password: kentucky kentucky Starting Chef Client, version 11.8.2 kentucky Creating a new client identity for target1 using the validator key. kentucky kentucky ================================================================================ kentucky Chef encountered an error attempting […]
我刚刚创build了一本食谱,通过knife cookbook create ruby -o site-cookbooks 。 但是我注意到后, rails是一个更好的命名。 我想删除食谱并创build另一个。 但是我找不到如何删除它。 有没有办法像这样的情况回滚create操作? 也许是好的,如果我只是简单地将cookbook文件夹ruby重命名为rails ?
我是厨师新手,并试图通过自动安装我们的产品来设置Ubuntu VM进行testing。 我可以下载.tgz,解压缩并使用bash资源执行安装程序。 我遇到的问题是我们的安装脚本强制EULA检查命令行安装。 它在shell脚本中与以下内容类似: # various statements and input to expect from stdin echo "You must accept our EULA to install the software" read ENTER more EULA.txt echo "Do you accept the EULA?" # additional input expected from stdin 我可以通过使用响应文件轻松地从标准添加预期的input,并使用./install.sh < response.txt安装,但是一旦执行一次就停止工作。 more命令没有看到来自响应文件的input,并且在接受eula之前仍然期望“q”退出命令。 厨师自动执行这种安装的正确方法是什么? 除了简单地重写install.sh脚本来忽略EULA行。