在MacOSX上,当我尝试跟随Wagrant教程使用chef进行资源调配时,我遇到了以下错误。如果我使用puppet,同样的问题也会发生,如果我使用lucid32,同样的问题也会发生。帮忙
[default] Importing base box 'lucid64'...
[default] The guest additions on this VM do not match the install version of
VirtualBox! This may cause things su
我见过几个使用Chef Git资源安装windows应用程序的示例。关于这一点,我有两个问题:
安装Git中未提供且厨师社区中没有现有食谱的windows应用程序的最佳实践是什么
e、 g.下载并安装一个静态URL托管的Windows安装程序?我想我可以把它放在GitRepo中,然后把它取下来,但是我想知道是否有一种更优雅的方式可以直接从提供者的站点上取下来,类似于wget
下载后如何运行windows installer,并在安装例程中提供所需的参数?e、 g.windows no compi
我正在尝试将我的应用程序从Heroku迁移到AWS,我想在AWS上使用Chef/Docker。我可能需要几个服务器来做迁移的web服务器,应用服务器,数据库,redis
我希望我的部署流程像heroku一样简单;我希望尽量减少AWS上服务器的配置;所以我来找厨师和码头工人
我看过一个使用Chef管理Docker的演示:但我仍然不了解Chef和Docker的边界在哪里
有谁能就如何将厨师和码头工人结合起来提出一些建议吗?或者,如果我要使用Docker,我需要Chef吗?Chef对Docker的支持
我有一本使用Test Kitchen和vagrant运行良好的食谱,但在AWS OpsWorks上,它在使用remote_目录从我的食谱中的文件复制目录结构时出错,因为它正在加载服务器并通过URL访问文件。我是厨师新手,所以不确定我应该如何处理这种情况。在这种情况下,我可以在没有空格的情况下重命名所有内容,但在其他情况下这是不可能的
URI::InvalidURIError
--------------------
cookbook_file[/var/lib/jenkins/jobs/aws
我想在我的厨师食谱中创建已知的_主机文件,我正在尝试使用以下内容:
file "/home/xxx/.ssh/known_hosts" do
owner xxx
group xxx
content lazy {`ssh-keyscan localhost #{node[:hostname]}`}
end
请告诉我这是否是创建已知主机文件的正确方法,或者我们是否可以使用更好的方法来实现此目的。实际上只有两种解决方案:
你的,这似乎是一个很好的解决方案,也许做一个供应
请帮我解决以下问题
注:前一段时间它运行良好
错误
请在此问题上提供帮助,如果我遗漏了任何内容,请告诉我。Postgres未运行。重新启动它。开始时您想做什么?
execute[create_database_opscode-pgsql] action run
================================================================================
Error executing action `r
我有一个Chef 12.5风格的自定义资源,需要在load\u current\u value块中“require”它之前安装gem。我试图使用一个chef_gem资源,但是当我在那里使用它时,我在chef_gem上得到了一个命名错误。这项工作:
load_current_value do
Chef::Resource::ChefGem.new 'inifile' do
compile_time true
end
require 'inifile'
# ... load_
我正在尝试执行一个原始sql来创建一个没有多少授权的用户,但是我得到了一个未定义的方法错误。我正在使用数据库chef cookbook的v4.0.9
mysql_database[create random grants] action query
================================================================================
Error executing action `query
如果我在同一块中有一个通知作为only_If,only_If(如果它的计算结果为false)会阻止通知吗?似乎找不到任何例子
在调试中,似乎无论如何都会发生通知,获得所需行为的唯一方法是在接收通知的块中放置另一个only_if
例如,复制rc.local文件并仅为某些服务器运行它,但保持执行块通用,以便可以为任何服务器调用它:
cookbook_file '/etc/rc.d/rc.local' do
source 'rc.local.servername'
owner 'root'
当调试厨师食谱中的错误时,我通常喜欢登录到有问题的机器,键入“shef-z”。如果之前有一次成功的跑步,那么注册的跑步列表会自动加载所有相关属性和食谱,这样我就可以直接跳进去尝试那些有问题的行了
问题是,如果chef客户端在第一次运行时失败,则运行列表为空,shef甚至会从缓存中删除(急需的)食谱,并说“此客户端不再需要它的食谱”。有没有办法强迫shef让我使用我的跑步列表
官方维基
“运行列表将以与普通chef客户端相同的方式设置
跑。”
但是尝试“-j”似乎没有帮助
我还试着运行单独模式(“
菜谱如何获得服务器标签的完整列表
或
配方如何检查某个标签是否设置/存在
顺便说一句:标签?对我不起作用你可以通过node.tags或node[:tags]获取配方中某个节点的所有标签。因此,要检查是否存在特定标签,您需要:
node[:tags].include? 'mytag'
要获得所有节点上所有标记的完整列表,必须使用搜索
search( :node, '*:*' ).collect(:tags).flatten.uniq
但是标记了吗mytag“实际上应该可以工作。显示您的代码。使
对于如何在chef中使用环境运行列表,我有点困惑。
如您所见,下面是role.json。在env_run_列表中,您有默认值,然后我们已经有了默认的run_列表。有什么区别?在运行环境run_list之前,是否每次都会运行缺省值
{
"name": "webserver",
"default_attributes": {
},
"json_class": "Chef::Role",
"env_run_lists": {
"_default": [
],
我正在运行Vagrant 1.4.2来运行由Chef提供的Ubuntu13.10设备。由于某些原因,找不到模板文件,运行失败,出现以下错误:
[2014-01-07T17:25:28+00:00] ERROR: template[/etc/init/verifier-tornado.conf] (transmit::default line 48) had an error: Chef::Exceptions::FileNotFound: Cookbook 'transmit' (0.1.0)
正在尝试删除非空文件夹:
directory "C:\tempdirectory" do
action :delete
end
。。。在厨师长方面,我收到:
Errno::ENOTEMPTY
Directory not empty
有没有快速删除目录中所有文件的方法
或者一个参数或标志,允许我删除非空目录 如果调用正确,设置recursive true属性将强制删除非空目录
不描述此行为,但他们提供了以下使用示例:
directory "/tmp/something"
我有一个菜谱,可以在运行chef client时创建/服务并装载它。但是,即使已经创建了chef,chef仍将装载/服务并将其添加到fstab。我以为厨师会知道不要这样做
#mkdir /service
directory node['storm-prep']['service']['dir'] do
owner "root"
group "root"
mode 00755
action :create
recursive true
end
#Create /service
我正在尝试使用Opscode提供的新vCAir插件在VMware的vCloud Air服务中提供新服务器。我的厨师服务器和工作站都在vCloud Air服务中运行。服务器设置并引导后,它会尝试从www.opscode.com引导Chef客户端,但无法解析,因为服务器的resolv.conf中没有定义任何名称服务器。My knife.rb文件将chef_server_url属性设置为我的chef server的IP地址,例如https://1.2.3.4但新服务器继续尝试从opscode.com下
我有一个包含以下内容的log.properties文件
LogFilePathKnown=true
LogFileSizeBytes=10000000
LogFileCount=1
LogFileAppend=true
我想更新LogFileAppend=false。我如何用厨师的食谱做到这一点。任何帮助都会很好。您必须使用食谱模板。要做到这一点,您必须从您的cookbook根目录在templates/default/中创建一个erb文件。您可以根据需要和愿望以不同的方式组织模板文件。查看详细
我使用Chef来管理Ubuntu服务器。我正在为服务器上的每个用户添加一个控制台工具包,其中大多数是在第一次运行Chef时创建的。第一次运行Chef时,会创建用户,但这段代码不会将符号链接添加到工具箱中,也不会创建正确的.bashrc文件。我认为这是因为rubyDir.open('/home')是在创建用户之前在运行开始时编译的,因为在下一次运行时正确添加了文件
当这个配方实际运行时,我如何获得目录列表以反映系统的当前状态?我认为我需要考虑的可能是ruby_块,但我不确定如何在这里应用它
# L
Chef是否有办法确定它是否更改了给定目录中的任何文件?如果conf.d目录中的任何设置被更新,我想重新启动服务器进程
我确信在每次chef客户端运行时都可以将md5sums列表写入一个文件,并将当前迭代与以前的迭代进行比较。但这是一段相当多的代码,可以解决一个常见的场景。有更好的方法吗?您可以从软件包中使用inotifywait实用程序Chef提供了一个名为的概念
这允许您定义一个资源中的更改触发另一个资源的执行。上述在配置文件更改后重新启动服务可能是最常见的用例
template”/etc/
我们在两个不同的环境中使用Chef Server ver 11—开发和登台。暂存环境中的cookbook版本仅限于特定版本,因此环境下的所有节点都不受我的更改的影响
登台环境
myookbook=0.6.2
现在,我在dev环境(没有启用版本限制)中验证了对给定节点的cookbook更改
如何在上面定义的登台环境中删除版本约束?。我只看到通过管理控制台更新约束的选项。用于上载修改后的环境文件(您应该在VCS中跟踪该文件,而不是在chef服务器中修改它)。通常,您不会删除约束,一旦在dev中进
我正在学习厨师使用OpsWorks,目前我正在尝试创建一个食谱,将安装2包在一个实例中。我把我的食谱储存在github上。。在这里,我有一个类似这样的食谱-webserver.rb
# Install apache and start the service
httpd_service 'site' do
mpm 'prefork'
action [:create, :start]
end
# Add the site configuration
httpd_config 'site
我正在使用Chef从nexus下载一个war文件到一个文件夹中
remote_file '/home/Test/AAA.war' do
source 'https://IP.com:8082/ URL Of the Repo/AAA.war'
owner 'root'
group 'root'
mode '0755'
action :create
end
但是,如果我运行此配方,则会出现未经授权的访问错误
是否需要为nexu
是否可以从厨师配方中设置数据包值?我需要从一个特定节点收集一些信息,然后与另一个节点共享。我想在烹饪书中做,而不是用刀子手动操作。TL;博士
从技术上讲,你可以做到,但不能。不应动态修改。这将使系统状态几乎无法推理
相反,可以在运行时使用来收集有关本地节点的信息,或者使用来查询远程节点上的ohai或其他数据收集活动
不要这样做
本用例在中特别说明。文档中说不可以这样做,并解释了原因
不建议从配方中创建和编辑数据包或数据包项目的内容。更新数据包或数据包项目的推荐方法是使用刀和刀数据包子命令。如果必
我是厨师的新手,目前正在想办法。我们目前正在Windows环境中使用Chef Solo。我们每3个月发布一次产品。Chef在我们的组织中用于设置生产构建环境、开发人员机器等。这些环境的设置包括安装一系列开发人员工具,如Visual Studio、第三方软件等。此环境设置所需的工具/软件列表可以在不同版本中不断更改。例如:如果产品版本1.0要求安装Visual Studio 2015,则产品版本2.0可能需要Visual Studio 2015更新1,依此类推
更准确地说,对于特定的产品版本,所有
我有一个要求,只有在特定用户存在的情况下才能执行特定的操作。通过研究以下问题,我得出以下结论:
if node['etc']['passwd']['random']
这是个好方法
当我在厨房测试它时,它实际上起了作用,但当推到生产阶段时,它在所有服务器上都出现了错误:
NoMethodError: undefined method `[]' for nil:NilClass
当使用bash中的ohai时,我确实看到了etc:{…}
这里到底发生了什么?最后,在评论中的人的帮助下,我发现Oha
我正在为我的厨师食谱编写inspec测试,其中有5个文件需要测试它们的模式。它们都应具有相同的模式0755
describe file('/dev') do
its('mode') { should cmp '00755' }
end
这是我用的sytax。但这只测试1个文件(/dev)。是否可以使用单个测试块测试多个文件?它并不完全是“单个测试块”,但您可以迭代文件列表:
%w(/dev /tmp).each do |path|
describe file(path)
its(
我想取默认属性的值
[node][forwarder][username]
并将其作为参数传递给执行资源。比如说
execute 'set-up-boot-start' do
command "/opt/splunkforwarder/bin/splunk enable boot-start -user <username attribute> --accept-license"
user "root"
end
但是我得到一个错误,说在我的Docker实例中没有这样的用
我正在使用Chef Automatic的工作流部分将烹饪书发送到我的Chef服务器。我已经通过管道在厨师服务器上成功上传了2本烹饪书
在Chef服务器上:
apache的版本为0.2.3
另一个测试版本为0.1.1
我想更改apache以依赖另一个测试,因此我更新了apache的元数据,并将版本升级到0.2.4
apache的元数据文件有依赖于“另一个测试”
而另一个测试没有相关性
apache的Berksfile是
source :chef_server
source 'https://sup
我正在使用Chef windows_软件包在windows中安装名为Oxygen的软件。我希望它能在无需任何用户输入的情况下进行静默安装(采用所有默认设置),但它会启动install4j向导并要求用户输入“请选择您的语言”
这是厨师的食谱
windows_package 'Notepad++ Installer 64-bit x64' do
source 'http://mirror.oxygenxml.com/InstData/Editor/Windows64/VM/oxygen-64bi
我一直在尝试使用CHEF在Windows 10上安装MTPuTTY.exe文件。根据从stackoverflow获得的其他参考资料,我能够理解安装程序的类型以及与安装程序关联的命令行开关。详情如下:
应用程序:MTPuTTY.exe(1.6 Beta版)
安装程序类型:inno
命令行参数/用法:/VERYSILENT/suppressMsgBox/NORESTART/SP-
当我在系统上手动运行静默安装时,它会创建桌面图标,但是当通过chef客户端运行时,相同的命令不会创建桌面图标。我甚至使用
假设我想像这样布置一个属性目录
cookbooks
|- ...
attributes
|- project-one
|--- foo.rb
|--- blah.rb
|--- bar.rb
|- project-two
|--- bang.rb
有没有办法让chef从这里列出的子目录中查找属性?我有很多属性:(不幸的是,目前不支持子目录(用于属性、库、食谱等)。该项目位于Chef 12的路线图上
即使你做了一些疯狂的Ruby魔术,比如做一个dir glob并需要relative,子目录中的那
前几天,我不得不将一些文件从windows共享复制到windows主机上。令我恐惧的是,我意识到没有内置选项:
远程\u文件不接受windows网络共享作为源
windows_软件包(来自windows cookbook)仅用于运行安装程序(.msi/.exe等)
... ?
唯一的解决方案是编写一个自定义的帮助程序库来复制文件吗?这听起来像是应该存在于远程_文件中的核心功能。我在这里遗漏了什么,或者Chef确实没有内置选项来复制windows共享的简单文件吗?要使用远程文件从windows
我使用刀子独奏与厨师独奏一起工作,但我发现除了刀子独奏
例如:
$ knife role list
ERROR: Your private key could not be loaded from /etc/chef/client.pem
Check your configuration file and ensure that your private key is readable
如何使用刀命令?提前感谢。您可能缺少一个配置文件,
您是否尝试配置刀
如果文件不存在,刀可能会有点吵
我读过Jamie Windsor的博客,了解了这个概念,以及除了环境烹饪书之外,烹饪书应该在自己的版本控制存储库中,而不是在chef repo目录树结构中的概念。在chef repo目录结构中,环境cook是否应该与产品一起成为唯一的食谱?换句话说,我的产品应该有这个目录结构吗
- Product
--- component1
--- component2
--- chef-repo
------ cookbooks
--------- environment-cookbook
如果你走这条路
假设我使用了两本食谱食谱A和B,每本食谱中都有A、B、c食谱。
如果我将两本食谱都分配给一个节点,那么食谱和食谱的执行顺序是什么?。哪个食谱A或B将首先运行,A、B、c的顺序是什么。这个问题也适用于a、b、c、d四个属性文件中的属性文件,如果我将var定义为变量并在配方中使用它,那么将使用哪个属性文件变量。请给我一些建议,我是厨师的新手。这比第一次出现时要复杂一些。我有一本使用chefspec测试来演示它的食谱,但遗憾的是它被破坏了。当我把它修好后,我会试着把它加在这里。这是给你的答案
属性
在
我正在旋转一组节点。在myrepo/cookbooks/mycookbook/.kitchen.yml中,我有
driver:
name: vagrant
provisioner:
name: chef_zero
roles_path: '../../roles'
environments_path: '../../environments'
data_bags_path: '../../data_bags'
platforms:
- name: ubuntu-12.
可以在执行期间显示消息。从该链接获得帮助,但未获得适当的解决方案
Chef在执行过程中已经显示了许多消息。如果您想显示特定的内容,可以将Chef::Log.warn('hello world')放在日志中,在编译过程中显示消息,或者在聚合过程中使用来显示消息。您希望做什么?我们无法预测您的用例……也许您可以说说它们的不同行为(Chef::Log的编译时间与Log resource的聚合时间)
我对厨师是全新的,我试着让自己适应它
我已经写了一些食谱,但我总是把属性放在食谱本身。现在我正在尝试分离属性和食谱,但它不会以任何方式工作,我尝试,我不知道我做错了什么
我在C:\chef repo\vie“chef generate coobook ff_test”中创建了一个cookbook,然后通过“chef generate attribute ff_test\default”创建了attribute.rb。
现在我有了一个文件夹结构,其中default.rb在attributes中,另
看来刀索洛和刀零是相似的。它们之间的主要区别是什么?在我不想设置chef服务器的情况下,哪一个更适合使用?一个使用chef solo,另一个在本地模式下使用chef client。如果您从零开始,本地模式可能是一个更好的选择,但由于厨师服务器确实是推荐的,因此可能会有一些粗糙的边缘。如果您对引入厨师服务器犹豫不决,我建议您尝试先使用零刀
正如coderange所说,因为它是基于Chef Zero的。这使得以后能够迁移到Chef服务器
我使用的是AWS Opsworks,我有一本食谱,其中有一段代码可以编辑httpd.conf
##cookbook file source will check in /files directory
cookbook_file 'apache settings' do
action :create #if exists it will update see doc
source 'httpd.conf'
path '/etc/httpd/conf/httpd.conf
下面是我的问题的一个示例,带有一个错误输出(错误无关,产生错误的陈旧值就是问题)
我只是想重写一个变量。然后我订阅这个ruby_块,并基于重写变量的字符串内容创建一个文件
ruby_block "Get and set volume id" do
block do
node.force_override['ec2-consistent-snapshot']['script']['volumes-test'] = 'wtf?'
end
action :run
end
我看到了一些类似问题的答案,例如如何为环境变量设置属性,或者如何在整个系统中设置环境变量。但这不是我要找的
我知道变量只能在烹饪书的上下文中使用,这很好
我只想定义一个属性,例如:
default['mycookbook']['myvar'] = '3'
default['mycookbook']['myvar'] = '3'
然后是我配方中的一个环境变量,如:
ENV['MY_VAR'] = default['mycookbook']['myvar']
并在配方中使用$MY_VAR
有什
标签: Chef Infra
berkshelfchef-zerochef-provisioning
我是Chef的新手,我正在尝试使用“Chef provisioning”在vsphere节点上配置VM
当我执行以下命令时
chef-client -z -o 'my_company::vsphere' 'my_company::test_cluster'
我得到以下错误:
================================================================================
Error Resolving Cookbooks for
我已经能够使用为我的机器提供一个wildfly实例
正如您在文档中所看到的,我还可以使用此LWRP将webapp设置为在ot上部署:
wildfly_deploy 'my-app-1.0.war' do
url 'http://artifacts.company.com/artifacts/my-app.1.0.war'
runtime_name 'my-app.war'
end
如您所见,它能够从任何url中选择工件。然而,我不希望我的作品是公开的。因此,我在考虑如何以安全的方式(使
我试图将安装文件的副本存储在C:drive中。这段代码适用于某些应用程序,但不适用于所有其他替代程序。这是给chef for windows server的。多谢各位
windows\u软件包“7zip”应该做什么
来源'http://www.7-zip.org/a/7z938-x64.msi'
远程文件属性({
:path=>'C:\\7zip.msi',
:校验和=>“7c8e873991c82ad9cfc123415254ea6101e9a645e12977dcd518979e50fded
当我下载烹饪书的时候没关系
PS> knife cookbook site download java_se
Downloading java_se from Supermarket at version 8.121.0 to D:/tools/chef-setupDevEnv/java_se-8.121.0.tar.gz
Cookbook saved: D:/tools/chef-setupDevEnv/java_se-8.121.0.tar.gz
然而,当我想安装烹饪书时,麻烦就出现
我试图从我的chef服务器下载包含所有json文件的整个数据包项目,但刀子下载命令似乎不起作用。我试过:
下载我的数据包名称
但是这在命令行中不返回任何内容,并且无法找到数据包文件。或者刀下载数据包/bagname或者(如果不需要将其作为单独的文件)刀搜索bagname*:*
我有一份旧的食谱回购协议,旨在与Vagrant一起创建一个完整的开发环境。我想根据最佳实践“重构”它。我想拆分大的烹饪书,为社区烹饪书制作合适的包装烹饪书,并添加Testkitchen可以运行的InSpec测试,以检查所有东西是否按预期安装
我决定从头开始,看看通过执行chef generate app some_name将创建什么样的框架。此命令生成以下一组文件:
.
|-- .gitignore
|-- .kitchen.yml <----------
|-- README.m
我正在编写一些ohai插件,它依赖于烹饪书,需要chef版本>=12.7
我们的基础设施需要能够将我的插件烹饪书中的菜谱添加到12.4版本的节点上。配方不需要运行,只需进入标准运行列表即可
我是否可以指定只有在metadata.rb中的厨师版本>=12.7时才需要ohai cookbook?或者,如果厨师版本太旧,则应忽略整个烹饪书及其食谱。我认为您可以通过与
我从未试过,但觉得值得一试。
我还记得,在过去,我可以在菜谱中使用Chef::VERSION。这并不能解决这个问题。Chef仍然看到de
我正在Ubuntu Focal上使用chef client 16.8,
刚发现它的产量和以前的有很大的不同
# chef-client -o some_cookbook -l info
...
[2021-01-14T09:45:49+00:00] INFO: Skipping removal of unused files from the cache
[2021-01-14T09:45:49+00:00] INFO: Running report handlers
[2021-01-14T0
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 54 页