Chef infra 厨师长LWRPs-如何使用

我试着用chef和Vagrant创建开发环境当我运行vagrant provision时,我一直在rbenv中安装rubies版本。我使用gem图书管理员下载烹饪书,这是我当前的文件: 这是我的repo,它存储Cheffile和vagrant文件:Createsite cookbook/rbenv/recipes/install.rb include_recipe "rbenv::default" include_recipe "rbenv::ruby_build" rbenv_ruby "

Chef infra 未从cookbook_文件通知提供商

我正在使用Vagrant(1.0.5)和chef solo(10.12.0)开发ssl提供商 我在一本名为gtm_cq的烹饪书中有一个名为ssl的提供者,我在烹饪书的默认配方中定义它: gtm_cq_ssl "author" do # attributes will come later end 然后,我的cookbook_文件如下所示,当ssl提供商将证书推送到服务器时,该文件应通知其导入操作: cookbook_file "#{node[:cq][:ssl][:author_c

Chef infra 获取部署的cookbook版本

在哪里可以找到已部署的cookbook版本? 自动属性似乎不侦听版本 有没有办法访问食谱或模板中某个地方的烹饪书版本?您必须访问厨师长知道的烹饪书集合 run_context.cookbook_collection[cookbook_name].metadata.version 跟踪厨师跑步的上下文的 cookbook_collection方法返回Chef在本地缓存中拥有的所有cookbook的名称 cookbook_name方法返回“this”cookbook的名称,因此它在集合中查找coo

Chef infra 错误:Mixlib::ShellOut::ShellCommandFailed:windows\u批处理

我有一个配方,需要很长时间才能执行(2小时),我得到了这个错误 错误:Mixlib::ShellOut::ShellCommandFailed:windows\u批处理 如您所见,它位于windows计算机上 是否需要在某个地方增加超时计时器?如果您签出,您可以看到(查找“WAIT\u TIMEOUT”),当shell命令接收超时时,chef抛出显式CommandTimeout异常。因此,您肯定收到了其他一些错误

Chef infra 自助厨师工作站

有没有一种简单的方法可以像引导节点一样引导Chef工作站 比使用正确的名称和权限将ssh密钥复制到正确的目录、运行刀子配置等要方便得多。chef工作站也是chef节点,在引导上没有区别 唯一的区别是: chef workstation客户端具有管理员权限,您可以通过刀子或chef服务器UI授予它 ~/.chef/knife.rb你可以写一份食谱来做这件事 仅在理论上。Chef normal bootstrap没有复制webui.pem,没有将Chef节点正确配置为工作站,至少在上次我修补它时,

Chef infra 厨师独奏的包装

是否有一个工具可用于打包来自完整chef repo的已解析资源集?类似于Berkshellf的包命令,但可以确定依赖项(例如数据包、环境、角色)并包含它们 背景 我有一个厨师回购,其中包括数据包、环境和角色。repo被上传到chef服务器,然后由chef客户端在不同的环境中使用。然而,在某些情况下,主厨索洛更适合做主人。在本例中,我想将repo的组件组织成可分发的功能包,这些功能包可以交付给主机并用于本地chef solo运行。当使用运行列表中的角色运行chef客户端时,cookbooks会在本

Chef infra 使用chef将zip文件从远程计算机复制到远程计算机

我正在尝试复制一个zip文件,我想在remote_file或cookbook_file资源的source属性中给出它的路径。但当我给出路径时,它给出了一个错误 IPADDR:PORT/xyz/abc/a.txt不是远程_文件的有效源参数。源必须是绝对URI或URI数组。 我想知道有没有一种方法可以提供用户名和密码以及源代码??? 我通过将文件保存在apache的根文件夹/var/www/中,然后使用https协议实现了这一点 但我希望在任何位置都有文件时实现这一点。要使用chef resourc

Chef infra 如何添加要由chef处理的非托管chef节点?

我有现有的服务器(不是由chef引导的),我想删除所有这些服务器上的一些文件。我不想使用shell脚本,而是使用chef。我应该在每台服务器上安装chef客户端吗 这与资源调配无关。更像是您加入一家公司,查看现有服务器,并希望在chef中注册这些服务器,以便您可以执行日常维护,如启动和停止服务、清理空间。是的,您可以使用刀引导安装chef客户端,并将其连接到chef服务器(如果您已经有一台),如果您不想使用厨师服务,也可以使用knife solo。Chef只做它的食谱告诉它的事,你能用多少就用多

Chef infra 在OpsWorks厨师配方中安装依赖项

我在OpsWorks上有一个简单的静态站点层,它的依赖项列在bower.json文件中。然而,当我在部署配方中运行bower安装--allow root时,我得到了enoint No bower.json present。如何在chef脚本中找到项目的正确路径,以便安装bower模块?OpsWorks为您提供了包含应用程序目录的部署JSON。有关此有效负载的更多信息,请查看 假设您的bower.json位于项目的根目录中,您可以在Chef recipe中添加以下命令: node[:deploy]

Chef infra 以非root用户身份运行chef客户端

我想在我的linux机器上以测试用户的身份运行chef客户端。为此,我在client.rb文件中添加了缓存路径,该文件来自/etc/chef/client.rb cache_path "~/.chef/cache" 然后我从测试用户(非root用户)运行chef-client命令 Chef encountered an error attempting to create the client 如何设置缓存路径?是否需要在测试用户下移动client.rb、chef-validator.pe

Chef infra chef工作站中日志文件夹的位置

我想知道chef工作站的日志确切位置。我试图引导一个节点,它只给出以下消息 /usr/bin/knife bootstrap y.y.y.y-x root-p*****-N i-77378d_79-c/opt/cloudone/1/CHEF/1/knife.rb y.y.y.y上的自助厨师 没有提到或指出任何错误和堆栈跟踪 请帮忙 谢谢,刀不会写入日志文件。为详细输出添加-l debug。此外,“bootstrap”命令通过ssh在远程计算机上执行。

Chef infra 使用Chef自动化框架Ubuntu或Mac的最佳环境?

我是一名开发运营工程师,有厨师工作经验。 我的工作环境是Ubuntu,我知道在Ubuntu中设置Chef服务器、工作站和客户端的步骤。 我还为ubuntu和centos服务器开发了很多食谱 现在我想移动Mac环境,我知道这个Mac操作系统可以使用这些命令。 但我得到了一些建议Ubuntu在最好的环境下和Chef一起玩,而不是在Mac上 是这样吗?有没有人能给我们建议一下,对于像Ubuntu或Mac这样的厨师流程,哪一个是最好的 提前感谢 Ganesan.AMacOS作为工作站完全没有问题。Che

Chef infra 厨师客户端在同步Cookbook时使用docker容器ID

我是码头工人和厨师的新手。我在docker容器中有一个chef服务器,并设法从那里引导AWS机器。当我在AWS节点上调用chef client时,它尝试连接到容器ID(3442f619df6f),而不是承载docker映像的AWS计算机,但失败: Error Syncing Cookbooks: ================================================================================ Networking Error: -

Chef infra 元数据的有效平台值是什么。rb';s支持密钥?

在中,有一个supports键,可以让您告诉chef cookbook与哪些操作系统/版本兼容 操作系统/平台的有效值是什么?我倾向于把我在网上找到的各种例子中的信息拼凑在一起。例如,我发现了一个非常详尽的列表,但我想知道这些值是如何推导出来的: supports 'amazon' supports 'centos' supports 'debian' supports 'fedora' supports 'freebsd' supports 'mac_os_x' supports 'oracl

Chef infra 是否可以从模板文件调用库函数?

是否可以从chef模板中调用库函数? 我知道我们可以将其作为变量传递,但我的要求是迭代模板文件中的列表,以便为每个列表元素调用函数 /库/default.rb module Common module Helper def test_fun(receiver) if receiver['bla_bla'] return <something meaningful> end <% Chef::Resou

Chef infra Inspec:检查用户和组

这两者有什么区别 it { should be_owned_by 'cool_user' } vs its('owner') { should eq 'cool_user' } it { should be_grouped_into 'cool_group' } vs its('group') { should eq 'cool_group' } 没有区别,只有两种书写方式。另一个也一样。没有区别,只有两种书写方法。另一个类似。Inspec同时支持这两种功能 尽管这种风格看起来更像是一种写作

Chef infra 一个厨师客户端多个厨师服务器

我有一个chef客户端(在windows中),它已经指向一个chef服务器。现在我们有了一个新的chef服务器。在不干扰当前设置的情况下,如何使chef客户端同时指向两个chef服务器 让一个chef客户端监听多个服务器是否是一种好的做法 你不能简单地这么做。如果你在厨师服务台之间切换,你很可能会陷入一片混乱 要迁移到新的Chef服务器,只需在Chef客户端配置中包含一些更改URL的cookbook。确保导入所有客户端,以便它们能够进行身份验证。您不能简单地执行此操作。如果你在厨师服务台之间切换

Chef infra 什么是厨师服务提供商?我如何知道厨师将使用哪个提供商?

我甚至找不到提供商的任何官方文档。 chef如何决定将哪个提供者用于特定操作(例如,启用服务的操作)? 默认值是多少? 如何检查或更改它?该提供程序不是为特定操作选择的,而是为整个资源选择的 当您编写自己的定制资源时,有一些特定的规则,我认为它也适用于chef提供的资源,而不仅仅是定制资源。此外,如果需要,还可以覆盖提供程序 此外,在大多数情况下,您可以调用特定的提供者而不是通用提供者,例如,apt_-package而不是package。同样的事情也适用于服务或任何其他资源。尽管如此,Chef非

Chef infra 厨师属性设置为另一个属性

在我的属性文件中 default['appid']['user'] = 'sysUserA' 现在,我还想为包装烹饪书设置另一个相同的属性。 所以我添加了另一行,以参考第一行 default['appid']['user'] = 'sysUserA' default['service']['user'] = node['appid']['user'] 其思想是不在多个位置更新同一属性。考虑到肯定需要定义default['appid']['user']和default['service']['

Chef infra 如何将更改从Chef服务器带入本地存储库?

因此,我们首次在Opscode平台上设置Chef,以管理重要的集群部署。我们已经设置了客户端,开发环境中有一个完整的chef repo,并将其签入Git,等等。刀子非常适合将东西从repo上传到服务器 厨师管理控制台有点不错。它可以让你在线编辑几乎任何东西。但问题就出在这里:我们已经在网上做了更改,却不知道如何将它们下载回本地存储库,以便将它们签入源代码管理 我们少了一把刀吗?或者,除了编写脚本列出每个角色和环境并将它们导入文件之外,还有其他可重复执行的方法吗 不确定您是否仍在寻找此文件,但此r

Chef infra 厨师长:如果不工作就不工作

如果用户在服务器上没有密钥,我想运行ssh copy id,因此在execute块中有一个not_if指令。我已经验证了not_if命令返回0,但执行块仍然运行 execute "add ssh key to #{shortname}" do not_if cmd # proceed only if server doesn't have this key command "echo 'If prompted for password it is already in your clip

Chef infra 包含的LWRP配方中定义的通知服务

是否有方法通知包含LWRP定义的服务重新启动 我写了一个名为“sidekiq”的LWRP,它建立了一个类似这样的服务,并且看起来自己工作得很好 service "#{new_resource.name}_sidekiq" do provider Chef::Provider::Service::Upstart action [ :enable ] subscribes :restart, "template[/etc/init/#{new_resource.name}_sidekiq

Chef infra Chef服务器时区配置

Chef服务器管理控制台以UTC时区显示节点签入时间或正常运行时间信息。有没有办法根据用户偏好将时区修改为其他时区?没有,据我所知,时区选择目前不是一项功能。ManageWeb界面是一个封闭源代码项目,因此我不能完全肯定地说,但是如果您在Chef邮件列表中询问,我知道其开发团队的一些成员会看到您的问题/建议。最后一次签入时间在内部存储为一个历元时间戳(自1970年1月1日起的秒数),因此您可以根据需要在自己的代码中将其转换为任何其他时区。UTC是ops工具的一个相当常见的标准,因此我认为即使添加

Chef infra 如何为chef本地模式(chef客户端-z)指定chef_环境

我已将chef文件从我的chef服务器复制到本地客户端节点~/.chef下,我的所有环境都在~/.chef/environments下,例如development.rb、production.rb等 当我从~/.chef/下运行chef client-z-E development-r'recipe[cookbook\u foo::recipe\u bar]'时,我得到以下错误: ==========================================================

Chef infra 刀子窗口肯定已安装,但引导仍然失败

我肯定安装了刀窗。厨师宝石列表显示刀窗口,但当我运行引导时,我被告知它没有安装 sudo -u user -H sh -c "cd /home/user/chef-repo/; chef gem list" sudo -u user -H sh -c "cd /home/user/chef-repo/; knife bootstrap windows winrm $VMIP -r 'role[build_server]' -x 'domain\user' -V -P 'password'"

Chef infra 在自定义食谱中找不到LWRP

我正在构建一个cookbook,它安装我的节点js文件,然后为它们设置initd脚本。不幸的是,我不能调用烹饪书中的非默认LWRP blah@blah:~/chef-repo/cookbooks/blah-deploy$ ls resources/ default.rb blahNodeAsService.rb blah@blah:~/chef-repo/cookbooks/blah-deploy$ cat resources/blahNodeAsService.rb actions :i

Chef infra 非核心资源的chefspec测试

谁能告诉我如何为下面的配方代码编写chefspec测试 {'tomcat_exec_t' => '/apps/.*/bin(/.*)?', 'tomcat_unit_file_t' => '/usr/lib/systemd/system/tomcat@.*.service', 'tomcat_cache_t' => '/apps/.*/temp(/.*)?', 'tomcat_cache_t' => '/apps/.*/work(/.*)?', 'et

Chef infra 未找到厨师刀命令404

我正在尝试使用chef,我按照他们提供的所有步骤“使用您的硬件安装和配置chef服务器” 我已经从工作站运行了以下命令 knife SSL check 输出 连接到主机my_服务器:443 已成功验证来自“my_服务器”的证书 但是,当我使用以下命令时 knife client list 输出: 错误:找不到您正在查找的对象 发生了什么事?为了更具体,你没有共享你的knife.rb文件(在knife.rb中,你必须指明你的客户密钥,验证客户名称,验证密钥等),一般来说,你没有任何注册的厨师

Chef infra 厨师长不喜欢';t为用户创建主目录

我有一个厨师食谱来创建部署用户。运行时正在创建用户。尝试为用户创建.ssh文件夹时失败,因为用户的主目录不存在父目录/home/deploy不存在,无法创建/home/deploy/.ssh 食谱/main/recipes/user.rb .厨房 您将deploy传递给用户资源名称,而不是节点['deploy\u user']: user节点['deploy\u user']do 行动:创建 注释“应用程序部署用户” home“/home/#{node['deploy_user']}” shel

Chef infra Serverspec包检查始终返回true

我正在尝试编写serverspec测试,通过使用chef、kitchen和vagrant以及debian jessie box来检查食谱是否正在设置mariadb服务器 配方很简单: # cookbooks/mariadb/recipes/server.rb package 'mariadb-server' do action :install end 我为它编写的规范是: # cookbooks/mariadb/test/integration/default/serverspec/se

Chef infra 不使用刀与chef服务器/chef节点通信

我想使用chef自动化服务器管理 在小刀的帮助下,我能够 从厨师超市下载食谱 将cookbook上载到chef服务器 引导节点 有没有可能不用刀子来做这些事情。我们可以使用chef server api来做所有这些事情。技术上是的,而且现在很少使用刀子来做#1和#2。Berkshell和PolicyFile已经完成了这些任务,但它们都是命令行工具,而不是API。不过,它们通常适合在脚本中使用。至于#3,没有任何具体的内容。Fog gem有一些通用的基于SSH的引导API,除此之外,您还需要自己编

Chef infra 如何在测试厨房中获得日志输出?

我的食谱里有: log mylog1 do 级别:信息 “为什么我看不到这个?” 终止 日志mylog2 do 级别:信息 “为什么我看不到这个?” 终止 这就是我在执行kitchen converge-l debug时看到的: ... Converging 3 resources Recipe: mybook::myrecipe * log[mylog1] action write * log[mylog1] action write ... 这个问题分为两个部分: 首先,通过“-

Chef infra 节点搜索未在测试厨房中提供任何内容

测试厨房中的搜索没有输出 请检查食谱并向我建议一些细节 节点JSON文件 { "id": "cldb", "chef_type": "node", "json_class": "Chef::Node", "run_list": [], "automatic": { "hostname": "cldb.net", "fqdn":"127.0.0.1", "name": "cldb.net", "

Chef infra 为什么只有当Chef::Config[';solo';]也在服务器上运行时,才运行#u?

我曾尝试使用Chef::Config['solo']仅在本地运行时执行操作,例如运行厨房测试。但是,在另一台主机上运行时,它仍然会安装epel发布包,我不想这样做。这是一只虫子,还是我遗漏了什么 # added to pass kitchen test package 'epel-release' do action :upgrade only_if Chef::Config['solo'] end 因为你的意思是只有当{Chef::Config['solo']}时才是。如果没有{},

Chef infra 使用CHEF将文件下载到特定路径

如何下载文件并使用CHEF指定路径? 我查阅了文档,找到了远程文件资源,但无法将文件下载到特定路径 我的尝试是这样的,但不知怎的,我弄不清确切的语法 remote_file 'E:\\' do source 'https://bintray.com/jfrog/jfrog-cli-go/jfrog-cli-windows-amd64/1.19.0' show_progress true action :create_if_missing end 您需要文件的直接URL,并且应

Chef infra 如何强迫厨师';s yum_要使用的存储库资源";makecache fast“是什么;?

我正在使用yum_repository在Centos中创建.repo文件 我的一些存储库是如此巨大,以至于缓存repo会持续很长时间 我发现Chef中的资源yum_repository正在运行“yum-q-y makecache”,而且我还发现在我的例子中运行“makecache fast”非常快而且足够了 如何使用edit_资源覆盖已执行的命令,或者如何以其他方式执行“makecache fast” 我不会编写自己的资源来交换yum_存储库,因为将所有现有的烹饪书调整为新的资源可能太难、太贵

Chef infra Chef中的yum_程序包资源在CentOS 8上不工作

之前,我们在一些服务器上使用了RHEL7.2。我们正在切换到CentOS 8。以下资源在RHEL上工作,但在CentOS上失败 %w[ed rsync nmap telnet vim bash-completion].each do |package| yum_package package do action :install end end 错误是: ======================================================

Chef infra 如何将软件包安装为';根';厨师长苏多?

使用chef,是否可以向正在安装软件包的配方中添加一些内容,以使软件包命令作为超级用户运行,而不是作为超级用户运行chef命令,例如: package "mysql" do user: sudo action :install end 因此,这将执行sudo apt get install mysql,而不是apt get install mysql。在文档中找不到任何内容。通常,如果需要root访问权限来配置系统,您可以在sudo下运行整个chef客户端进程,而不是作为普通用户 然而

Chef infra 在Chef中动态创建资源

我正在尝试创建一个chef菜谱,它将根据使用我的应用程序源代码从git存储库下载的yaml文件的内容动态创建资源。到目前为止,我有: git "/home/a_user/#{ node[:my_node][:application] }" do repository node[:my_node][:git_repository] revision node[:my_node][:git_branch] action :sync user "a_user" group "a_u

Chef infra 测试厨房突然停止工作

我想使用TestKitchen将ubuntu与java和hadoop cookbook一起部署。我已经安装了一套测试厨房 我在厨房配置文件中放入了另一个套件,现在厨房坏了 我把更改放在我的厨房配置文件中,但厨房还是坏了 当我做一个 kitchen list 我得到以下错误 /home/anupam/.rvm/gems/ruby-2.0.0-p451@chef/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:209:in `last_actio

Chef infra 与Chef的集成测试

我在其他地方没有看到一个很好的解决方案,我认为集成测试是必要的,因为: Chef solo不支持像加密数据包这样的所有功能,这是Chef相对于其他配置管理的一个关键优势 ChefSpec适用于单元测试,但不适用于集成测试 使用production Chef服务器进行测试可能会导致生产机器运行Chef client并获得错误配置 在opscode.com上设置一个免费的chef测试服务器(下载初学者工具包) 根据一个简单的环境变量,即CHEF\u TEST=true,更改knife.rb连接到不同

Chef infra 报告和刀运行命令的开源厨师

厨师长报告医生说这是给企业厨师的。 对于OpenSourceChef,我能够获得JSON报告,该报告存储在所有节点的同一目录中。有没有更好的方法来报告fof opensource chef?在chef客户端运行结束时,我们将使用a将统计数据报告到我们的Zabbix监控中:。您可以根据自己的需要采用此示例。如果您有不同的想法,请详细说明。你的问题相当广泛。表示它将报告存储在chef服务器中。我在报告处理程序中添加了它,版本检查使它转到else块。我正在寻找一种将报告存储在chef server中的

Chef infra 如何从chef处获取rundeck的节点资源清册

工作流自动化工具源于结构化文本文件,以创建其节点清单。但是,如果您使用chef作为服务器/节点清单的真实来源,那么创建这些平面文件只是供rundeck参考是不可取的。rundeck如何从chef服务器动态获取此信息 chef rundeck是一个sinatra应用程序(ruby),它与chef服务器交互,并通过XML格式的REST API公开节点资源清册数据 我在下运行它,以便轻松管理流程、管理日志文件等。您还可以尝试通过ohai更新chef中节点的属性 然后,从rundeck,您可以简单地使

Chef infra 从chef recipe获取节点信息

是否可以从配方中轻松访问有关节点的信息(类似于刀节点显示),而无需通过“执行”资源运行刀?为了方便起见,我想这样做是为了添加有关当前运行列表的信息,也许还有一些关于节点的详细信息。特别是对于运行列表,如果您不关心顺序,最直接的方法可能是从Ohai属性中获取 node['recipes'] node['roles'] 见: 如果您确实关心顺序,那么您可能必须在node对象之外进行操作 runlist = node.run_list 这在文档中可能并不明显 您可以以类似的方式访问其余的节点信息。

Chef infra 厨师长:属性根据';取决于';秩序

我有下一个部署方案: 应一起部署在同一台计算机上的两台服务器 它们的公共属性-主机名、端口、默认用户名和密码 特定属性-例如上下文路径 因此,我创建了base cookbook,并在其中指定了所有常用选项。之后,我创建了两个具有特定食谱的相关食谱,以运行这两个服务器并设置特定属性值。在我决定再买一本包装食谱之前,这件事一直在起作用 其目的是启动两台服务器并做一些额外的事情 我用下一种方式配置了最顶级的食谱: metadata.rb: depends "app1" depend

Chef infra 如何使用chef client运行具有特定版本的烹饪书?

我在chef服务器上有两本烹饪书,名为mycookbook,版本分别为0.1.0和0.1.1。现在我只想使用chef客户端运行cookbook mycookbook版本0.1.1。如何做到这一点?通过一些尝试找到了答案 执行以下命令 chef-client -o "recipe[mycookbook@0.1.1]" 这将调用MyOkBook版本0.1.1 注意:使用-o参数运行chef client将永久覆盖该节点的运行列表。该命令将用新的运行列表替换您的运行列表,并仅使用

Chef infra 厨师中有木偶吗?

我想知道是否有类似的厨师。 我遇到的最接近的是,这是我所知道的最多的。我们有CIS基准和类似标准的InSpec合规性概要。有几本CIS烹饪书,但没有我见过的非常积极的维护

Chef infra 为什么Chefspec找不到我的资源?

我有一个规范配方,其中包括测试两个命令中的一个是否运行。如果安装了第一个命令,将运行该命令。如果没有,则应运行第二个 然而,由于某种原因,该规范配方没有看到第一个执行资源,尽管它将确切命名的资源列为其他执行资源。但它确实看到并传递了第二个命令 RSpec输出如下所示: gets admin key using getkey (FAILED - 1) gets admin key using keyremoteclient [passed] it 'gets admin key using yk

上一页 1 2  3   4   5   6    7   8   9  ... 下一页 最后一页 共 54 页