我已经安装了开源的chef服务器(11.x)。我是厨师的新手。我可以看到有用户拥有密码和pub/priv密钥(通常是刀子用户(@workstations))。还有带有pub/priv键的客户端s(chef validator,nodes…)
当我进行knife配置--initial时,它使用admin用户名和私钥来包装新的工作站用户,例如johnym。所以,具有密钥的管理用户功能强大,足以创建用户、节点、客户端等
但是,当Iknife bootstrap${FQDN}时,它需要一个具有管理员权限
opscode chef中当前资源和新资源的用途是什么。在图书馆中使用它们的确切位置。他们之间的区别
谢谢,在提供者的上下文中,new\u resource是配方中的实际资源对象,这意味着它包含资源所描述的任何内容的所需状态current\u resource由load\u current\u resource填充,通常包含当前系统上事物的当前状态,例如包的当前安装版本或文件的当前内容。在较新的自定义资源中也是如此?其中当前资源由加载当前值填充?
我使用此配置是为了让我的客人使用厨师客户端和流浪者:
config.vm.provision "chef_client" do |chef|
chef.add_recipe 'living-development'
chef.chef_server_url = 'https://api.chef.io/organizations/my-organization'
chef.validation_key_path = 'cert.pem'
chef.valida
TL:DR;
如何将chef manage ssl证书导入chromium/firefox?/var/opt/opscode/nginx/ca/[fqdn].crt是合适的文件吗
我正在使用vagrant、vagrant berkshelf和chef server超市食谱生成一个chef server机器。一旦完成,我就开始跑步
chef服务器ctl安装chef管理
chef服务器ctl重新配置
厨师长管理ctl重新配置
…以安装和设置chef manage插件。安装插件后,我尝试通过浏览器的
是否有任何选项可以上传我们自己的外部脚本(比如*.sh、*.bat、*.ps1)作为Chef cookbook的一部分并在Chef client运行期间执行?将其添加为或,然后使用或资源调用它。将其添加为或,然后使用或资源调用它。将其添加为或作为,然后使用或资源调用它。将其添加为或,然后使用或资源调用它。谢谢!!我用过烹饪书档案,效果很好:)谢谢!!我用过烹饪书档案,效果很好:)谢谢!!我用过烹饪书档案,效果很好:)谢谢!!已经使用了cookbook_文件,并且效果良好:)
正在尝试设置chef工作站
knife configure -i
以前它工作,但现在它不工作我无法创建刀。rb它表示以下错误:
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.10.0/lib/chef/config_fetcher.rb:53:in `realpath': Not a directory - /home/ubuntu/.chef/knife.rb (Errno::ENOTDIR)
from /opt/chef/e
目前,我正在使用开源chef,并且安装了多个节点chef客户端。我希望chef客户端以特定的时间间隔运行。有什么好的食谱可以配置它。使用cron或Windows任务调度器这样的工具不是很合适吗 是的
这正是使用这本食谱的要点之一
如果只在节点的运行列表中包含chef client::default,它将每30分钟运行一次。如果您想要一些不同的东西,只需调整节点[“chef_client”][“interval”]——请注意,这是以秒为单位的,默认值为1800
cookbook的自述文件列出了所有
快速提问。为什么每当我使用Berkshelf管理我的烹饪书依赖项时,我自己的烹饪书都会被冻结?有办法解冻吗
knife cookbook upload myNodeApp
Uploading myNodeApp [0.1.0]
ERROR: Version 0.1.0 of cookbook myNodeApp is frozen. Use --force to override.
WARNING: Not updating version constraints for Lighthous
例如,我有1个配方文件,5个目标节点。如何将配方文件应用于所有目标节点?
我需要使用什么命令,或者?我的目标不是进入每一个目标节点来运行chef客户端,我的目标可能只是通过单个命令或使用其他方法来完成
如果你知道怎么做的话,请发表评论并给出一些参考答案
谢谢。您将烹饪书上传一次到Chef服务器,然后节点从那里获取它
是相应的解释。您可以通过ssh命令在多个节点上运行chef客户端,如下所示:
knife ssh "role:app" "sudo chef-client" -x myuser -p
我是厨师新手。我的chef节点中有一个version.txt文件。我编写了一个菜谱来执行chef节点中的脚本。我上传了另一个版本不同的version.txt文件(即内容)。我只想执行脚本当前版本的.txt文件包含比前一版本更高的值?如何处理这个正则表达式?如何使用正则表达式比较两个文件?您不比较文件,而是告诉Chef您希望文件的内容是什么,Chef将强制执行。如果文件已经存在,但使用旧版本,则将对其进行更新;如果文件不存在,则将创建该文件。只有当文件内容发生更改时,才能使用通知触发运行脚本。如何
我最近更新了一个Ubuntu box,它作为chef客户端运行。当我尝试将客户端添加到服务器时,出现以下错误:
================================================================================
Error executing action `create` on resource 'mysql_database[myapp_prod]'
========================================
我只是在我的一个节点中执行这个命令'chef client-i30'。因此,chef客户端每30秒运行一次。现在我需要停止这个chef客户端运行。如何阻止厨师客户?同时,此命令启动chef客户端,首先等待30秒。但我需要先运行chef客户端,然后等待30秒,然后再次同时运行。此命令的执行方式
_____ _____
30sec| run |30sec| run |
wait | | wait| | -->30
我正在尝试使用FileEdit在文件中插入一行,如果该行不存在:
ruby_block "insert_line" do
block do
file = Chef::Util::FileEdit.new("/etc/environment")
file.insert_line_if_no_match("/blah/", "blah")
file.write_file
end
结束
然后,我尝试使用chefspec测试这一点:
it 'adds blah to the file' d
我的自定义cookbook按以下方式安装openvpn:
package 'openvpn'
... do some configuration ....
service 'openvpn' do
action [:enable, :start]
end
上述代码在centos 6中正常工作,在centos 7(systemd)中失败
错误:/bin/systemctl启用openvpn-没有这样的文件或目录
可以看出systemd上的服务名称不同:openvpn@server如何检测
我正在编写一个厨师食谱,我想使用节点的环境属性。我无法为fqdn、hostname或ipaddress找到类似自动属性的内容,以便自动发现节点环境,如下面的示例所示
:zabbix=>{
:ipaddress=>node['ipaddress'],返回已执行的IP
:environment=>node['environment']#不返回任何内容
}
如何访问节点的环境?您可以通过
node.chef\u环境
您的问题不完全清楚。。。。节点['fqdn']和节点['ipaddress']是oh
我做的事情,一步一步:
wgethttps://packages.chef.io/stable/ubuntu/14.04/chef-server-core_12.8.0-1_amd64.deb
wgethttps://packages.chef.io/stable/ubuntu/12.04/chefdk_0.17.17-1_amd64.deb
sudo dpkg-i厨师*
等待他们安装
sudo chef server ctl reconforme给了我
/opt/opscode/embedde
我想刷新节点上的自动属性,例如.filesystem属性,以获取节点上的磁盘空间等。如果不在节点上运行sudo chef client,我如何才能做到这一点厨师长客户端-o…似乎不起作用
对于上下文,我在chef服务器上设置了节点以及角色和运行列表。运行chef client将运行相应的运行列表,在某些情况下我不想这样做(例如,我有一个运行列表,安装并运行docker映像,我只是偶尔希望这样做)。chef不直接支持这一点。如果不进行主要工作,最接近的方法就是只使用code节点保存,然后通过-o模
我们有单独的java和python包,但一旦我从artifactory下载,我不想再下载一次,直到环境文件中的版本发生变化。由于版本是在环境中设置的,我如何确保如果所有这些版本都存在,就不会再次从artifactory下载python和java包
package_path_java = "org/jfrog/java_path"
package_version_java = node["package_version_java"]
package_version_java_name =
我正在使用chef来管理tomcat应用程序。在这个应用程序中,有一个web.xml文件,我需要对它做一个小更改。到目前为止,我一直在使用此文件的模板,但是应用程序的作者喜欢在每次更新时更改此文件的内容,这意味着我必须在每次更新时更改模板。在我看来,这是不正确的
我唯一关心的是文件末尾的这一点:
<!--
<session-config>
<session-timeout>30</session-timeout>
</session
正在尝试在RHEL7笔记本电脑上安装chef server,并获得以下信息:
Recipe: private-chef::postgresql
* execute[/opt/opscode/bin/private-chef-ctl start postgresql] action run
- execute /opt/opscode/bin/private-chef-ctl start postgresql
* ruby_block[wait for postgresql
我正试图从我的windows客户端上传一本测试食谱,以使服务器自动化。
chef服务器收到了cookbook,我可以在管理控制台中看到它,命令return上载了1本cookbook,但在Automation服务器上不起作用
以下是来自nginx的错误:
“POST/data collector/v0/HTTP/1.1”401
似乎是身份验证问题,但无法理解原因
以下是我的配置文件:
厨师服务员
data_collector["root_url"] = 'https://autome_fqdn/d
例如,我已经有一个核心转储的参数,即
kernel.core_模式=/usr/local/core-%e.%t.%p.%u.%g
现在我想把它改成这个
kernel.core\u模式=/usr/local/core.%e.%p.%h.%t
代码如下:
ruby_block "edit /etc/sysctl.conf" do
block do
file = Chef::Util::FileEdit.new("/etc/sysctl.conf")
file.
我们已经设置了一个chef服务器,现在当我尝试通过下面列出的命令注册客户端时。客户端显示在chef服务器门户中,但似乎未签入或未显示任何与客户端相关的信息
knife bootstrap 10.0.34.24 -x ec2-user --sudo -i ~/.ssh/mmc_Dev.pem \
-N mmcshibboleth -r 'role[infra], role[sudorules]'
默认情况下,Chef不会将自身安装为服务或cron作业。使用cookbook执行此操作。通过将
是否可以使用notifies资源属性指定多个操作
template '/etc/some.conf' do
source 'etc/some.conf.erb'
mode 0640
owner 'root'
group 'root'
notifies [ :restart, :enable ], "service[restart some service]", :delayed
end
service "restart some service" do
servic
我们希望实施一个策略,一旦我们合并到master并增加chef cookbook版本,它就会自动运行Berks安装和Berks上传。
此外,我们还希望收到有关cookbook版本控制的建议。为0.x.x。与1.x.x相比没有具体的答案,请查找所有不同的CI/CD工具和服务,然后编写一些脚本来执行您想要的操作。对于StackOverflow,我们不提供基于意见的工具建议,因为没有单一的答案。使用最适合您和您的团队的工具。没有具体的答案,请查找所有各种CI/CD工具和服务,然后编写一些脚本来完成您想
我需要将配方和数据包从Chef 11.x的一个实例复制到另一个实例,这是一个全新的安装。环境、节点、客户端等。。将会不同。我正在寻找一种方法来做到这一点。有人有这样做的经验吗?如果有,最好的方法是什么?查看抓取数据包的命令刀下载数据包
然后,您可以使用文件中的刀数据包将它们上载到新服务器。此外,该插件可能是一个很好的选择。有了它,您可以执行刀备份导出数据包,如果您计划从本地机器手动执行此操作,您可以查看一下,因为这是基于刀工作站的。为了更好地执行此操作,您可以尝试设置一个jenkins实例来为您
我正在运行knife client list,出现以下错误:
ERROR: Failed to authenticate to https://chef-server.dev.reach.IE.LOCAL/organizations/accenture as chef-user with key /home/svc.jenkins/helix-chef/iac_chef_standalone_wso2/.chef/chef-user.pem
Response: Failed to authen
我是Chef world的新手,目前正试图编写一本食谱,其中包含在windows服务器上安装Nagios NRPE的单一配方。其中,我在配方中包含了一个bash脚本来执行一组命令
然而,当我运行kitchen converge时,我不断收到以下错误。我在“recipie”中尝试了很多变体,浏览了stack overflow和其他不起作用的在线论坛
请帮忙
如果需要任何其他详细信息,请告诉我
配方
execute 'setup.bash' do
cwd '\templates\Set
在我的Linux节点上,当我执行以下操作时:
echo $WORK_DIR
它输出如下内容:/home/exampleuser/work
我有一本厨师烹饪书,其中,我想创建一个属性,该属性设置为$WORK\u DIR是什么
例如:
default[example_cookbook][workdir] = path of whatever the $WORK_DIR system variable is?
我如何在Ruby/Chef中实现这一点?$WORK\u DIR的值可能因环境而异,因此我
我正在尝试使用厨师烹饪书在生产中设置hashicorp vault。这是我的recipes/default.rb中的内容
directory '/vault-docker' do
action :create
end
cookbook_file '/vault-docker/config.hcl' do
source 'config.hcl'
action :create
end
cookbook_file '/vault-docker/local.json' do
sour
我有一本厨师烹饪书,它安装nginx并安装一个自定义nginx.conf文件。它基本上与Opscode上的cookbook相同,并使用cookbook_文件安装该文件
如果我更改了conf文件,那么使用chef重新运行cookbook,因为配置文件没有更新。这似乎是一个bug——我做错了什么吗?在chef中,配方中的命令顺序就是执行顺序。如果为nginx.conf保留模板,并且该模板位于cookbook\u file命令之后,则生成的模板将覆盖您的文件
e、 g
模板将覆盖cookbook\u
如果我们在厨师烹饪手册中有如下代码:
if !File.exists?('/vagrant/project/target/project/WEB-INF") || node[:compile_project]
bash "build project" do
user "vagrant"
cwd "/vagrant/project"
code <<-EOH
mvn clean
mvn db-migration:migrate
我正在使用Chef's windows cookbook来配置一些windows服务器。以下是菜谱:
# Windows SDK for Windows 7 and .NET 4 - .NET Tools v4
windows_package "Windows SDK for Windows 7 and .NET 4 - .NET Tools v4" do
source "\\\\MyServer\\MyDrive\\chef\\WinSDKNetFx40Tools_amd64\\Win
我正在尝试创建cron,它将在每天早上3:15运行,使用以下方法:
if node.roles.include?('cloudera-manager')
cookbook_file '/usr/local/bin/cloudera-manager-db-backup.sh' do
owner 'root'
group 'root'
mode 0755
action :create
end
cron 'cloudera-manager-db-backup' do
acti
我在尝试运行社区食谱以安装GitLab服务器时遇到了一个奇怪的问题。食谱可以找到。我使用BerksShelf安装所有依赖项,并使用berks upload将它们上载到我的服务器
我必须更改默认模板目录中的gitconfig模板。(我让git使用https://而不是git://)每当我更改食谱中的文件时(即使是添加注释之类的小更改),我在尝试运行时都会出现以下错误:
[2014-07-28T19:30:50-04:00] ERROR: Exception handlers complete
[2
我有一组相关的操作,我想在动态资源中进行分组。大概是这样的:
# ... somewhere inside my_cookbook/recipes/foo.rb
resource "Initialize git repo inside /etc" do
not_if { File.exists?('/etc/.git') }
package "git"
execute "git init" do
cwd '/etc'
end
template "/etc/
试着自学Powershell和Chef,所以我肯定我错过了一些简单的东西
所以我实际上使用了一个名为Chef的服务器管理程序。但是脚本使用PS解释器运行。我确保ServerManager模块已导入,我正在使用Admin priv运行PS,并且我正在运行64位版本的PS
这是我启用IIS的脚本(如果还没有)
powershell_script 'Install IIS' do
code 'Add-WindowsFeature Web-Server'
guard_interpreter :p
我正在学习chef,需要一个非常简单的barebones cookbook/recipe示例,可以调用外部HTTP API(GET/POST)并将内容放入文件中。我浏览了社区食谱,但它们似乎都是过火的学习和试图了解发生了什么,自然大多数似乎集中在安装软件包。有人有我可以在这里使用的东西吗:)您可以根据需要使用remote\u file资源,例如:
remote_file "/tmp/testfile" do
source "http://www.example.com/tempfiles/t
我在一本发出HTTP请求的食谱中定义了以下2个资源。我基本上需要根据操作1的结果检查一个条件来执行操作2。如果action 1中的条件不匹配,我需要让食谱休眠一段时间,然后再次尝试action 1
最好的方法是什么
webhooks_request "Action 1" do
uri "example.net/data1"
post_data ({ 'value1' => '1', 'value2' => '2'})
expected_response_codes
我正试图修改并上传一本食谱到我的厨师服务器,但当我尝试这样做时,看起来厨师服务器中的食谱没有改变
我使用Win2K8机器作为我的工作站,编辑learn_chef_iis-0.2.0\recipes\default.rb。然后我会:
刀食谱删除学习厨师
然后:
刀烹饪书上传学习\u厨师\u iis
当我在操作码web应用程序中查看default.rb时,它仍然显示相同的default.rb(即,我的更改不在那里)
我看到了一些修改烹饪书版本的建议,我也尝试过通过编辑metadata.rb“vers
我试图使用一本烹饪书中定义的属性,比如foo,另一本烹饪书中定义的属性,比如bar。我得到错误“nil:NilClass的未定义方法”[]”
以上是我厨师的结构
solo.rb
cookbook_path File.expand_path("../chef/cookbooks", __FILE__)
json_attribs File.expand_path("../chef/roles/roles.json", __FILE__)
log_location STDOUT
log_level :
我尝试了这个链接来设置Chef服务器、工作站和节点。从工作站引导新节点以在该节点上安装客户端时,我遇到以下错误:
Chef Client failed. 0 resources updated in 14 seconds
[2016-04-18T08:46:31+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2016-04-18T08:46:31+00:00] FATAL: Please provi
我似乎无法通过ssh/search扩展一系列仅在数量上有所不同的主机名。例如,如果我有host1.example.com、host2.example.com、host3.example.com、…host50.example.com,我无法使用刀子的范围来正确处理这两个查询,例如
knife ssh 'name:[host1.example.com TO name:host50.example.com]'
或
在第一种情况下,我只返回开始主机和结束主机。在后一种情况下,我得到以下错误消息
ER
我想更新我的sources.list,以便使用离我更近的服务器,以便更快地更新apt_
通常,我使用ssh连接到服务器中,只需修改/etc/apt/sources.list,但由于我使用的是chef,所以我希望将其放在菜谱中
在my recipes/default.rb中:
#I am trying to modify the sources.list file in apt before I run apt-get update
cookbook_file '/etc/apt/sources.
尝试使用knife获取Chef组织中所有节点的状态时,出现“[FATAL]分配内存失败”错误
<UserName>@<Hostname> /C/chef/knife_WS
$ knife status > nodes-status.csv
[FATAL] failed to allocate memory
@/C/chef/know\WS
$knife status>nodes-status.csv
[致命]无法分配内存
如何修复此内存相关错误?这很可能意味着节
我们已经将elasticsearch从2.3.1升级到5.x版本,问题是多个elasticsearch实例之间没有同步,我可以在日志中看到2.3.1版本中没有出现的特殊异常
配置:
elk_nodes_ips = []
elk_nodes_results = search(:node, "roles:elasticsearch")
unless elk_nodes_results.empty?
elk_nodes_results.sort!{|node1, node2| node1.name
我是厨师长的新手,并且遵循一个教程,该教程提供了在食谱或特定食谱中运行默认食谱的信息。我的食谱的树输出如下:
pwd
/opt/dk-chef/python_code/Chef
[root@LUMOS Chef]# tree Cookbooks/BasicLinux/
Cookbooks/BasicLinux/
├── Berksfile
├── chefignore
├── LICENSE
├── metadata.rb
├── nodes
│ └── LUMOS.RMT.com.json
我用Windows8.1嵌入式操作系统创建了一个“流浪者”对话框,其中包括winrm访问。然而,当我尝试使用“Kitchen create”创建实例时,它正在拉箱子,但Kitchen尝试通过ssh而不是winrm连接到实例。(我在Kitchen.yml中配置了传输选项到winrm,仍然不起作用)
*我用Windows8.1嵌入式操作系统创建了一个框,并进行了配置的winrm设置。
---
司机:
姓名:流浪汉
供应人:
姓名:chef_zero
#您可能希望在CI或其他测试环境中禁用始终更新Co
我们有大约100个节点使用证书引导到on-prem-chef服务器。现在我们需要更改服务器上的证书。我已经计算出了这一部分,但是如果我这样做,所有这些节点将无法返回到服务器。如何更改证书,以便不丢失与节点的连接,并且不必在每个节点上单独更改证书。谢谢您可以将多个公钥连接到一个API客户端,这样可以安全地旋转密钥。然而,据我所知,我们没有这方面的工具,所以您必须自己编写
避免与社区食谱重叠的常见方法是什么
因为我在学习厨师,所以我并不总是使用所有的社区食谱。相反,我写我自己的版本
然而,现在我需要社区版本的很多功能
我原以为我可以在烹饪书的前面加上“foo-”的前缀,但这给我的定制lwrp带来了问题(和可怕的名字)
我应该坚持为我所有的定制烹饪书“foo_uu”使用一个通用前缀,还是有更好的替代方法来防止重叠?包装烹饪书的一般模式(您正在描述的)是-。例如,如果我为Acme工作并有一本定制的apache cookbook,我会将其命名为Acme-apache2包
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 54 页