我正在研究厨师服务员和厨师独奏之间的一些区别。如果配置了chef solo节点,是否可以将Ohai收集的属性存储在我自己的远程数据库中?我试着模仿一下Chef服务器的功能,但是用我自己的技术等等
我不认为默认情况下这个功能是在chef solo中构建的,有什么好的方法添加它呢?我目前正在考虑一个额外的处理程序,将属性发送到数据库?处理程序是实现这种功能的合理方式。如果只想在成功运行结束时更新服务器(模仿chef客户端的行为),请将其注册为报表处理程序。如果要在每次运行时更新服务器,请将其注册为报
有人能让Chef Solo安装我在某处提供的python.egg文件吗
easy_install_package "myeggfile"
action: install
???
end
根据,您应该使用source属性来使用本地文件:
easy_install_package 'name' do
source '/path/on/disk/to/my.egg'
end
我不知道我的设置有什么问题:
siegfried@ubuntu:~/chef-repo$ knife ssh -a ipaddress 'name:chefnode' 'uptime'
WARNING: Failed to connect to -- Net::SSH::AuthenticationFailed: Authentication failed for user siegfried@192.168.1.73@192.168.1.73
failed f
我正试图根据环境,使用特定的run\u列表来配置某些节点。因此,我创建了环境,然后创建了角色并指定了env\u run\u list,然后创建了节点my\u node\u ip.json:
{
"chef_environment": "test",
"run_list":["role[base]"]
}
但是当我启动时,默认的环境被设置。在我做了-E测试标记之后,它就正常工作了。当我在节点的配置中指定chef_environment变量时,这不是我期望的正确行为
是否有更好的方法避免使
我有一个应用程序,其中配置文件本身从一个版本更改为另一个版本。
基于发布版本维护多个模板变得越来越困难
除了对配置文件执行内联/就地文件编辑操作外,是否还有其他方法可以处理此类用例。可能是最好的选择,比直接使用FileEdit要好。不过,这是一个大量的air引号,它通常是一个脆弱的样式,如果你的正则表达式不是很好,那么你很容易就会得到两份修改过的行。如果软件支持某种类型的文件包含,则可以选择该选项。否则,我仍然建议通过Chef管理整个模板。检查此项或此项
我正试图与厨师一起使用berkshelf提供一台流浪机器。这是在Windows7上运行的。我安装了Berkshelf作为Chef DK的一部分。它报告了版本3.2.3。我的流浪供应失败了,因为它找不到一些食谱。这是我的Berksfile的相关部分
source "https://api.opscode.com/organizations/createthegood"
#source "https://api.berkshelf.com"
metadata
cookbook "drupal_s
我试图在我的一本烹饪书中使用windows\u http\u acllwrp
当我尝试使用它时,我得到了这个错误
================================================================================
Recipe Compile Error in c:/chef/cache/cookbooks/foo/recipes/bar.rb
=========================================
我对厨师很陌生。我在Centos6.6中安装了Chef,可以
门禁控制面板
但是,重新启动后,我无法通过访问Chef控制面板
. 它不加载任何内容
我遵守了这个指示
我已经启动了服务器
[root@chefsv1 ~]# chef-server-ctl status
run: bookshelf: (pid 807) 374s; run: log: (pid 791) 374s
run: nginx: (pid 1572) 360s; run: log: (pid 795) 374s
我可以从厨师烹饪手册中添加一个文件:
cookbook_file'/tmp/File1'do
源“默认/文件1”
所有者“詹金斯”
“詹金斯”组
模式“0755”
终止
如何使用for循环添加File1、File2、File3?
我浏览了chef docs,它既无助又令人困惑。这就是您可以使用Ruby代码的地方(这可能就是chef docs没有涵盖这么多内容的原因):
['File1'、'File2'、'File3'],每个文件|
食谱文件“/tmp/{file}”do
来源“默认/#{fil
仅仅是学习使用Chef,我似乎连基本的用户创建都做不到
以下是菜谱:
user 'bob' do
action :create
password '$1$NSy4M315$KfqF7bX49YgJuhdJZPqbv1'
end
错误是:
sudo chef-solo -c recipes/bob.rb
[2017-04-13T11:05:41-07:00] FATAL: Configuration error NoMethodError: undefined method `acti
我在学厨师。我需要一些调用http请求GET/POST的示例。如果请求是GET,我们从哪里获取内容?我已经阅读了厨师的文档,但在这方面还不够。提前感谢:)如果你正在学习厨师,你可能已经阅读了所有关于烹饪书籍、食谱和资源的书籍。Chef基于所需的状态配置,其中您以资源的形式声明所需的状态,这些资源被分组到菜谱和烹饪书中。chef客户机将节点带入此声明的所需状态。资源是所需状态声明的基本单元。因此,您将找不到具有编程意义上的“输出”的资源。例如,您可以找到下载到文件的资源(即远程文件)。通常情况下,
我目前正在使用以下代码:
elastic_ip = search(:node, 'roles:elastic',
filter_result: {
'ip' => ['ipaddress']
})
问题是我有不止一个网络接口,它给了我一个错误的接口
如何请求不同的网络接口?Ohai收集节点['network']['interfaces']
我试图通过chef solo安装apache2,但未成功。当我在本地模式下运行chef client时,同样的方法也会起作用
package 'apache2' do
action [:$pstall]
end
and
package 'apache2'
两者都失败,但以下情况除外:
* apt_update[Update the apt cache daily] action periodic (up to date)
* apt_package[apache2] action ins
我是新厨师,我正在编写安装和配置Kibana的食谱。我希望生成日志文件。
我创建了kibana.service模板,该模板还应该生成日志文件。Recipe创建kibana.service文件并成功启动服务,但它不生成日志文件。我希望日志位于data_hdd目录中。Recipe对此目录具有读/写权限。所以我认为“权限”不是问题。
如果有人能引导我度过难关,那将是一个很大的帮助
事先非常感谢
这是我创建kibana.service文件和模板文件的代码
template "/etc/systemd/s
我们正在使用测试厨房来测试我们的厨师烹饪书
在厨房容器内运行chef client时,我看到以下错误:
[2020-03-21T07:22:21+00:00] WARN: *****************************************
[2020-03-21T07:22:21+00:00] WARN: Did not find config file: /etc/chef/client.rb, using command line options.
[2020-03-21T0
在过去,我曾尝试过使用Vagrant部署“本地”开发实例,但一直没有花时间来完成学习过程。我正在再次尝试,虽然我可以加载Opscode cookbook(apache2),但它无法开箱即用,因为DocumentRoot没有指向/vagrant
我明白这一点,这并不出乎意料,但我不知道如何把这一切放在一起,可以理解的是,流浪汉的文档没有太多细节。另一方面,Opscode提供了如此多的细节,以至于我内心的noob无法将我的头缠绕在它周围
下面是我现在看到的uber简单片段:
config.vm.pr
在某些情况下,是否要在Chef编译阶段中止当前配方?完成此操作的推荐方法是什么?在Chef编译阶段中止当前配方的正确方法是返回
注意,这不会中止Chef运行。有关如何中止厨师运行,请参阅
to的回复提供了有关此主题的大量背景信息,强烈推荐。在Chef编译阶段中止当前配方的正确方法是返回
注意,这不会中止Chef运行。有关如何中止厨师运行,请参阅
to的回复提供了有关此主题的难以置信的背景信息,受到高度推荐
我正在使用Chef在AmazonEC2上启动Windows服务器(2008r2数据中心版)。在这个场景中,我运行一个脚本
railsdev@deb7> knife ec2 server create -VV -I ami-xxxxxxx --flavor=m1.medium --groups=windows_target --region=us-east-1 --ssh-key=deployme --identity-file=/home/railsdev/Development/me-c
我和厨师有一次意想不到的经历。这是:
我宣布了安装postgres的方法
execute 'sudo apt-get install postgresql-9.1 -y --force-yes'
template "/etc/postgres/9.1/main/pg_hba.conf" do
source "pg_hba.conf.erb"
owner "postgres"
group "postgres"
mode 00600
notifies :restart, 'se
我正在尝试使用刀引导设置chef客户端节点:
knife bootstrap nodename -x user -P passwd --sudo
正在获取以下错误消息::
Chef在尝试创建客户端“nodename.url.com”时遇到错误
身份验证错误-无法对chef服务器进行身份验证(http 401)。
服务器响应:用户或客户端“chef validator”的签名无效*
我的配置设置看起来不错,我已尝试重新启动所有chef服务器服务,并尝试将chef客户端从节点配置为
在新VM中正
我正在尝试创建一个将所有属性写入文件的资源
提供者
资源
我得到以下错误:
对资源“ruby\u块[dump\u节点\u属性]”执行操作run时出错`
NoMethodError
private method `open' called for Chef::Provider::File:Class
Cookbook Trace:
/Users/odedpriva/.chef/local-mode-cache/cache/cookbooks/test-helper/providers/cre
使用mac上chefdk的oahi 8.0.0版
如果我在终端中运行命令ohai,我的mac会完全锁定10分钟以上)
用户建议这是由于连接到LDAP并建议禁用passwd.rb插件造成的。该文件位于何处,如何禁用它
将以下内容放入/etc/chef/client.rb
ohai.disabled_plugins = [:Passwd]
或者如果使用ohai 7或更新版本
Ohai::Config[:disabled_plugins] = [ :Passwd ]
或将chef shell指向特
就我的高级理解而言,两个组(例如etcd和puppet)都进行分布式配置管理,我是对还是错?还是puppet在内部使用etcd?如果是这样,举个例子可能会有所帮助
问候,,
Seenu.尽管Chef/Puppet和etcd/zookeeper/Consour都可用于构建基础设施和服务发现,但它们提供的服务和解决方案却截然不同。它们不是直接面对的解决方案,实际上可以同时使用,因为它们提供的服务不同
IT自动化工具(即:Chef/Pupper/Ansible…)提供了一个完整的堆栈来部署、调配和管
我想覆盖cookbook包装中的模板,但模板资源是在提供者中定义的,而不是在配方中定义的。我一直在覆盖包装器中的模板,如本例所示
这总是如预期的那样有效
我正在尝试更改配置的cookbook是git_用户cookbook
我想改变的是一个提供者
尝试使用与我相同的食谱格式似乎不起作用
include_recipe "git_user::data_bag"
def load_current_resou
我正在尝试更新chef客户端版本,并通过运行chef客户端--version来验证它。更新似乎有效,但chef client--版本显示错误无法在…中找到chef(>=0)我找到了此解决方案
$rvm使用系统
然后
$chef客户端--版本
正常工作我找到了这个解决方案
$rvm使用系统
然后
$chef客户端--版本
正常工作不要使用gems安装chef客户端。请改为安装Chefdk软件包:
简单得多
注意:如果同时使用rvm和chefdk,请确保将前者配置为使用系统ruby,否则chef将
假设我在位置“/usr/bin”安装了一个二进制程序“customcommand”
现在,当应用程序团队发布新的二进制文件时,我想更新位于“/usr/bin”位置的二进制文件
如何在chef中实现上述场景?除了构建适合您的操作系统(apt、yum等)的软件包的常用方法外,最适合您的情况是IMHO资源
例如:
remote_文件”/usr/bin/example“do
来源“https://example.com/current/example"
模式“0755”
结束
如果您的服务器(位于ex
标签: Chef Infra
ubuntu-12.04chef-recipecookbookphp-5.6
我正在尝试使用Chef升级到Ubuntu12.04中的php5.6
到目前为止,我已经能够通过一些手动步骤来完成,但是,由于我们使用CI,这并不理想
这是我正在运行的以下配方:
#app.rb
include_recipe 'project::php'
include_recipe 'project::apache2'
include_recipe 'project::mod_php5'
#php.rb
# configure sessions
从Chef server gui编辑my role.json文件显然不起作用。。。但使用:
knife role edit activemq
工作。。。有人能解释一下原因吗?你能更具体地说明什么不起作用吗?如果我进入策略,然后单击角色,然后单击角色并选择属性>>编辑。。。我编辑属性并保存它们,但当我运行配方时,它找不到更改。。。但是,使用刀子编辑确实有效。保存后,请尝试使用knife role show检查对象的外观。此外,通过Web UI编辑对象是一个非常糟糕的主意,因为下次从git上载时,
不知道为什么,但当我尝试引用主机名cook book时,我得到一个错误:
Chef::Exceptions::CookbookNotFound
我的包装食谱中只有include_recipe“hostanmes”,并且该食谱位于cookbooks目录的磁盘上。我的其他烹饪书都没有这个问题,所以我觉得这里发生了一些奇怪的事情
我用的是这个食谱:
你知道我为什么会犯这个错误吗?我正在测试厨房中运行此配方。将“主机名”添加到你的包装器食谱的metadata.rb中。我希望这会很容易,但这不起作用。
环境
chefdk 1.3.40
伯克斯5.6.4
厨房1.16.0
流浪汉1.9.3
“厨房登录”后,我们可以看到端口80已打开
sudo iptables-save | grep 80
-A IN_public_allow -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
但是,当运行“厨房验证”时,测试失败:
PORT 80
[MAJR] should be listening
expected 'Port 80
假设您通过Chef工作站通过“刀子引导”引导Ubuntu节点,使用参数“--bootstrap version”作为“12.9.41”指定要在节点上安装的Chef客户端版本
在引导操作结束时,检查节点上的chef客户端版本,您将获得在刀子上指定的版本命令:
[root@myhostname greg]# chef-client -v
Chef: 12.9.41
假设现在要升级节点上的chef客户端版本。例如,因为运行列表上的新食谱需要更新版本才能工作
如果再次运行bootstrap命令,并在末
我得把很多木偶转换成厨师代码。
我做了一些厨师教程,我也会读关于木偶的书
有人知道我在哪里可以找到更多的比较Puppet和Chef代码的例子吗?
(就像这个傀儡代码在厨师代码中一样)
完美将是一个完整的指南,帮助我转换代码
我发现的只有大约3个例子
祝福
丹尼斯将向你展示许多选择。总的来说,由于工作风格的不同,这不是一对一。谢谢!我又找到了一个示例代码,这很好。甚至一个用puppet和chef编写的项目(比如Github)也会有帮助。。。
我正在检查一本即将配置我的客户机的大型烹饪书,我想详细了解它配置了哪些文件\删除了哪些文件\添加了哪些文件,等等
我运行:
find / -mount -mmin
它确实给了我一些提示,但我也得到了一些不相关的结果
有没有更好的方法通过运行烹饪书来了解我的clinet上到底发生了什么变化?有一个why run系统,它试图事先进行分析,以确定会发生什么变化,但由于厨师食谱是任意可执行代码的性质,它并不完美。您也可以在事后通过Reporting插件或事件处理程序(允许您将数据写入任何系统/格式)
我是一名开发人员,负责对devops团队拥有的食谱进行一些修改。我们无法访问刀子或厨师服务器
我试着对一个食谱做一些局部修改来尝试一下。但是,当我跑步时:
$ sudo chef-client --log_level debug
对配方的本地更改将被服务器上的内容覆盖
有没有一种方法可以在不从chef服务器获取菜谱的情况下快速测试菜谱的微小更改
谢谢。只需将--skip cookbook sync参数添加到您的命令中:
$sudo chef客户端--日志级调试--跳过cookbook同步
有用
我有一个厨师食谱,它克隆了git存储库的一个特定分支,其中包含两个.tgz文件和一个.sql文件。repo中的文件名遵循约定,但带有时间戳,这意味着无法确定每次运行时它们的确切名称。克隆存储库之后,我希望chef提取这两个.tgz文件
在chef需要提取.tgz文件之前,我已经准备好了所有的工作。客户端运行时总是出错,tgz文件名为nil。我认为问题在于,由于chef的工作方式,chef可能无法“发现”在运行阶段添加到目录中的文件名
在测试过程中,我发现如果在chef运行之前克隆git存储库,使
在我的prod环境中,我为某本食谱设置了一个版本约束
SampleCookbook = 1.1.4
现在我想摆脱这个限制。我如何以增量方式执行此操作?我不想做的只是删除约束,因为这将同时影响此环境中的所有计算机
我宁愿在中禁用单个节点上的约束,以检查更改是否安全,然后再在环境中禁用它。
有办法做到这一点吗?使用登台环境。在暂存中的一个单独节点上测试更新,或将一个节点临时移动到“暂存”环境-删除约束的生产副本-测试更新,在生产中删除约束,然后将节点移回
似乎没有一种简单的方法可以覆盖单个节点的约
我正在调查ChefSpec报告是否(有覆盖范围)和测试厨房报告
可以作为junit格式生成,这样Jenkins就可以对它们进行解析,从而发布结果。
或者,如果有其他友好的方式,这些结果可以由詹金斯发表
谢谢
编辑1:
抱歉,如果我解释不正确,但我知道chefspec用于单元测试,testkitchen用于集成测试。
我在这个问题中的意思是,如何以Jenkins可以解析的格式(比如junit格式)获取测试结果报告(对于chefspec和另一个手动测试厨房来说)。虽然似乎有这样一种功能,至少可以将其
我想知道是否有办法取消重新启动设置为延迟的服务的通知。例如,下面是一个配置更改代码块:
template "/etc/myapp/myconfig.conf" do
source "myconfig.conf.erb"
mode 0600
notifies :restart, "service[myapp]", :delayed
end
但在我的食谱的最后,我有一些逻辑,如果满足某些条件,我会禁用这个应用程序。这可以很好地工作,但是在禁用之后(在chef运行结束时),延
我想刷新我所有的保险库,有没有一个解决方案可以用一个命令来完成
例如
目前看来,在chef vault中似乎没有办法做到这一点。必须同时提供vault和要刷新的项目命令。或者,您可以为该任务创建一些自动化任务(rake任务),这样就不需要每次手动运行多个命令
您可以在GitHub上创建功能请求。您可以使用“刀子数据包”命令实现自动化
以下是如何在shell中执行此操作:
for i in $(knife data bag list); do
for j in $(knife data
只是想知道,是否可以在节点完成chef客户端运行之前搜索该节点
由厨师长主持:
当资源中的资源标识的所有操作
收集已完成,当chef客户端运行完成时
成功地,chef客户端更新chef上的节点对象
具有在此chef客户端期间生成的节点对象的服务器
跑(此节点对象将由chef客户端在
下一个chef客户端运行。)这将使节点对象(和
节点对象)可用于搜索
chef客户端始终检查资源集合是否存在
异常和报告处理程序的类型。如果有,每一个都是
处理得当
例如,我有一个搜索角色为“webserver”的
我已经安装了Chef服务器(运行版本12.0.1)
我现在有一个windows机器设置,可以与Chef服务器对话
我的问题是,在我将其转换为模板之后,如何让使用该模板创建的任何新服务器运行“chef client”以与chef服务器同步?使用for Vagrant
否则我就不明白你的问题。这个虚拟机模板存储在vSphereDesN中,在这种情况下没关系,不是吗?那台windows机器是怎么回事,它扮演了什么角色?你的问题我不清楚。
是否可以撤消引导
我必须将我的节点连接到另一个Chef服务器。不可能运行引导两次。这将在未经授权的情况下失败
jupiter2 [2015-02-13T21:06:26+01:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
jupiter2 Chef Client failed. 0 resources updated in 0.856840378 seconds
jupiter2 [2015-02-13T2
当我使用菜谱中的cookbook_文件资源时,它会按预期工作
cookbook_file 'd:/temp/test.txt' do
source 'text.txt'
end
当尝试使用以下代码从HWRP操作进行相同操作时
cbfile = Chef::Resource::CookbookFile.new('d:/temp/test.txt', run_context)
cbfile.source('text.txt')
cbfile.run_action(:create)
它失败并
我正在使用Chef Server 12.6.0,希望禁用webui。
我该怎么做呢
我尝试将chef\u server\u webui['enable']=false添加到/etc/opscode/chef server.rb,但当我执行chef server ctl重新配置时,出现了问题
通过删除上面的行并重新运行configure,我可以使事情恢复正常
Recipe Compile Error in /var/opt/opscode/local-mode-cache/cookbooks/pr
我想实现厨师食谱中的逻辑,如下所示。我怎样才能做到这一点
File=/tmp/productMain.param
if [ -f "${File}" ]; then
if [ -f /tmp/monitor.sh ]; then
echo "[INFO] configuration beeing processed"
/tmp/monitor.sh $File
else
error "The monitor script doe not exit
exit
如果我有两个相同的服务器,服务器A和服务器B,它们都是测试环境。如何使用相同的厨师配方,但在每台服务器上使用不同的用户详细信息
例如:
Server A
Recipe WebSite to setup IIS, but uses:
UsernameA
PasswordA ... for the application pool
及
在我的环境中,我实际上有10个测试环境,我需要使用相同的配方配置所有测试环境,所有测试环境都具有唯一的用户名和密码。将数据导入Chef运行的两种主要方法是节点属性
我正试图通过Kitchen+Vagrant使用我的厨师烹饪书安装Java。操作系统是CentOS 7.3
因为Java版本导致我与filesystem-3.2-21.el7.x86_64发生了一些冲突,所以我决定强制安装
因此,我决定遵循下一个例子:
安装带有选项的软件包
package 'debian-archive-keyring' do
action :install
options '--force-yes'
end
我将其转换为:
package "bf-sun-java"
我最近开始做厨师。我想使用chef在aws帐户中启动ec2实例。
我有厨师工作站(windows)、厨师节点(windows 2012 R2)和厨师服务器。
我需要这方面的信息,有人能推荐我吗?很难说清楚你在说什么。如果您只是想了解如何将服务器设置为客户端实例,请使用knife bootstrap。如果您想创建一个新的EC2实例,然后引导它,请使用刀EC2服务器创建 有两种方法:
(一)
这一个使用gem“aws sdk”,这是在aws云中进行资源调配最正确的方法。在这种情况下,您的ChefDK
每当我运行chef-client,当它执行我的食谱时,我会将消息记录到控制台两次
例如:
[2017-06-01T15:05:22-05:00] WARN: Skipping final node save because override_runlist was given
[2017-06-01T15:05:22-05:00] WARN: Skipping final node save because override_runlist was given
[2017-06-01T15:05
artifactory_版本:5.8.3
厨师长开发工具包版本:2.4.17
厨师长客户端版本:13.6.4
伯克斯版本:6.3.1
Artifactory位于F5负载平衡器后面
当我执行berks安装并尝试为artifactory supermarket拉取时,我得到以下错误:
ridley-5.1.1/lib/ridley/middleware/parse_json.rb:89:infirst_char:for#的未定义方法
如果我指向supermarket.chef.io,它可以正常工作。
1 2 3 4 5 6 ...
下一页 最后一页 共 54 页