Chef infra 从chef solo节点获取自动属性

我正在研究厨师服务员和厨师独奏之间的一些区别。如果配置了chef solo节点,是否可以将Ohai收集的属性存储在我自己的远程数据库中?我试着模仿一下Chef服务器的功能,但是用我自己的技术等等 我不认为默认情况下这个功能是在chef solo中构建的,有什么好的方法添加它呢?我目前正在考虑一个额外的处理程序,将属性发送到数据库?处理程序是实现这种功能的合理方式。如果只想在成功运行结束时更新服务器(模仿chef客户端的行为),请将其注册为报表处理程序。如果要在每次运行时更新服务器,请将其注册为报

Chef infra Chef Solo轻松安装鸡蛋文件?

有人能让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

Chef infra 跑刀在地址部分给了我两个@

我不知道我的设置有什么问题: 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

Chef infra 如何为节点设置环境

我正试图根据环境,使用特定的run\u列表来配置某些节点。因此,我创建了环境,然后创建了角色并指定了env\u run\u list,然后创建了节点my\u node\u ip.json: { "chef_environment": "test", "run_list":["role[base]"] } 但是当我启动时,默认的环境被设置。在我做了-E测试标记之后,它就正常工作了。当我在节点的配置中指定chef_environment变量时,这不是我期望的正确行为 是否有更好的方法避免使

Chef infra 如何使用chef中的模板管理配置文件?

我有一个应用程序,其中配置文件本身从一个版本更改为另一个版本。 基于发布版本维护多个模板变得越来越困难 除了对配置文件执行内联/就地文件编辑操作外,是否还有其他方法可以处理此类用例。可能是最好的选择,比直接使用FileEdit要好。不过,这是一个大量的air引号,它通常是一个脆弱的样式,如果你的正则表达式不是很好,那么你很容易就会得到两份修改过的行。如果软件支持某种类型的文件包含,则可以选择该选项。否则,我仍然建议通过Chef管理整个模板。检查此项或此项

Chef infra 如何判断berkshelf是否正在连接到我的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

Chef infra Chef-没有名为windows\u http\u acl的资源或方法

我试图在我的一本烹饪书中使用windows\u http\u acllwrp 当我尝试使用它时,我得到了这个错误 ================================================================================ Recipe Compile Error in c:/chef/cache/cookbooks/foo/recipes/bar.rb =========================================

Chef infra Can';t重新启动后访问并管理web界面-CentOS 6

我对厨师很陌生。我在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

Chef infra 如何将cookbook_文件资源放入for循环?

我可以从厨师烹饪手册中添加一个文件: cookbook_file'/tmp/File1'do 源“默认/文件1” 所有者“詹金斯” “詹金斯”组 模式“0755” 终止 如何使用for循环添加File1、File2、File3? 我浏览了chef docs,它既无助又令人困惑。这就是您可以使用Ruby代码的地方(这可能就是chef docs没有涵盖这么多内容的原因): ['File1'、'File2'、'File3'],每个文件| 食谱文件“/tmp/{file}”do 来源“默认/#{fil

Chef infra 无法使用';用户';厨师资源

仅仅是学习使用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

Chef infra Chef HTTP请求获取/发布

我在学厨师。我需要一些调用http请求GET/POST的示例。如果请求是GET,我们从哪里获取内容?我已经阅读了厨师的文档,但在这方面还不够。提前感谢:)如果你正在学习厨师,你可能已经阅读了所有关于烹饪书籍、食谱和资源的书籍。Chef基于所需的状态配置,其中您以资源的形式声明所需的状态,这些资源被分组到菜谱和烹饪书中。chef客户机将节点带入此声明的所需状态。资源是所需状态声明的基本单元。因此,您将找不到具有编程意义上的“输出”的资源。例如,您可以找到下载到文件的资源(即远程文件)。通常情况下,

Chef infra 厨师长搜索api互联网接口

我目前正在使用以下代码: elastic_ip = search(:node, 'roles:elastic', filter_result: { 'ip' => ['ipaddress'] }) 问题是我有不止一个网络接口,它给了我一个错误的接口 如何请求不同的网络接口?Ohai收集节点['network']['interfaces']

Chef infra apache2在Ubuntu 18.04上通过chef solo安装失败

我试图通过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

Chef infra Chef没有创建日志文件

我是新厨师,我正在编写安装和配置Kibana的食谱。我希望生成日志文件。 我创建了kibana.service模板,该模板还应该生成日志文件。Recipe创建kibana.service文件并成功启动服务,但它不生成日志文件。我希望日志位于data_hdd目录中。Recipe对此目录具有读/写权限。所以我认为“权限”不是问题。 如果有人能引导我度过难关,那将是一个很大的帮助 事先非常感谢 这是我创建kibana.service文件和模板文件的代码 template "/etc/systemd/s

Chef infra 在文件中提供Apache2和Chef Solo

在过去,我曾尝试过使用Vagrant部署“本地”开发实例,但一直没有花时间来完成学习过程。我正在再次尝试,虽然我可以加载Opscode cookbook(apache2),但它无法开箱即用,因为DocumentRoot没有指向/vagrant 我明白这一点,这并不出乎意料,但我不知道如何把这一切放在一起,可以理解的是,流浪汉的文档没有太多细节。另一方面,Opscode提供了如此多的细节,以至于我内心的noob无法将我的头缠绕在它周围 下面是我现在看到的uber简单片段: config.vm.pr

Chef infra 如何在厨师编译阶段中止当前配方?

在某些情况下,是否要在Chef编译阶段中止当前配方?完成此操作的推荐方法是什么?在Chef编译阶段中止当前配方的正确方法是返回 注意,这不会中止Chef运行。有关如何中止厨师运行,请参阅 to的回复提供了有关此主题的大量背景信息,强烈推荐。在Chef编译阶段中止当前配方的正确方法是返回 注意,这不会中止Chef运行。有关如何中止厨师运行,请参阅 to的回复提供了有关此主题的难以置信的背景信息,受到高度推荐

Chef infra chef运行其资源的顺序是什么?

我和厨师有一次意想不到的经历。这是: 我宣布了安装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 infra 刀引导的厨师节点配置问题-can';无法通过服务器进行身份验证

我正在尝试使用刀引导设置chef客户端节点: knife bootstrap nodename -x user -P passwd --sudo 正在获取以下错误消息:: Chef在尝试创建客户端“nodename.url.com”时遇到错误 身份验证错误-无法对chef服务器进行身份验证(http 401)。 服务器响应:用户或客户端“chef validator”的签名无效* 我的配置设置看起来不错,我已尝试重新启动所有chef服务器服务,并尝试将chef客户端从节点配置为 在新VM中正

Chef infra 私有方法`开放';为Chef::Provider::File:类调用

我正在尝试创建一个将所有属性写入文件的资源 提供者 资源 我得到以下错误: 对资源“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

Chef infra 禁用ohai插件

使用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指向特

Chef infra etcd/zookeeper/Concur与其他配置管理工具(如chef/puppet/)之间的关系。。?

就我的高级理解而言,两个组(例如etcd和puppet)都进行分布式配置管理,我是对还是错?还是puppet在内部使用etcd?如果是这样,举个例子可能会有所帮助 问候,, Seenu.尽管Chef/Puppet和etcd/zookeeper/Consour都可用于构建基础设施和服务发现,但它们提供的服务和解决方案却截然不同。它们不是直接面对的解决方案,实际上可以同时使用,因为它们提供的服务不同 IT自动化工具(即:Chef/Pupper/Ansible…)提供了一个完整的堆栈来部署、调配和管

Chef infra 覆盖厨师烹饪书模板

我想覆盖cookbook包装中的模板,但模板资源是在提供者中定义的,而不是在配方中定义的。我一直在覆盖包装器中的模板,如本例所示 这总是如预期的那样有效 我正在尝试更改配置的cookbook是git_用户cookbook 我想改变的是一个提供者 尝试使用与我相同的食谱格式似乎不起作用 include_recipe "git_user::data_bag" def load_current_resou

Chef infra 已安装chef客户端,但chef客户端--版本显示错误无法在其中找到chef(>;=0)

我正在尝试更新chef客户端版本,并通过运行chef客户端--version来验证它。更新似乎有效,但chef client--版本显示错误无法在…中找到chef(>=0)我找到了此解决方案 $rvm使用系统 然后 $chef客户端--版本 正常工作我找到了这个解决方案 $rvm使用系统 然后 $chef客户端--版本 正常工作不要使用gems安装chef客户端。请改为安装Chefdk软件包: 简单得多 注意:如果同时使用rvm和chefdk,请确保将前者配置为使用系统ruby,否则chef将

Chef infra chef可以通过哪些方式安装/部署新版本?

假设我在位置“/usr/bin”安装了一个二进制程序“customcommand” 现在,当应用程序团队发布新的二进制文件时,我想更新位于“/usr/bin”位置的二进制文件 如何在chef中实现上述场景?除了构建适合您的操作系统(apt、yum等)的软件包的常用方法外,最适合您的情况是IMHO资源 例如: remote_文件”/usr/bin/example“do 来源“https://example.com/current/example" 模式“0755” 结束 如果您的服务器(位于ex

Chef infra 使用Chef-Ubuntu12.04升级到php5.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 infra 从Chef web gui编辑角色不起作用

从Chef server gui编辑my role.json文件显然不起作用。。。但使用: knife role edit activemq 工作。。。有人能解释一下原因吗?你能更具体地说明什么不起作用吗?如果我进入策略,然后单击角色,然后单击角色并选择属性>>编辑。。。我编辑属性并保存它们,但当我运行配方时,它找不到更改。。。但是,使用刀子编辑确实有效。保存后,请尝试使用knife role show检查对象的外观。此外,通过Web UI编辑对象是一个非常糟糕的主意,因为下次从git上载时,

Chef infra 运行主机名cookbook时出错-Chef::Exceptions::CookbookNotFound

不知道为什么,但当我尝试引用主机名cook book时,我得到一个错误: Chef::Exceptions::CookbookNotFound 我的包装食谱中只有include_recipe“hostanmes”,并且该食谱位于cookbooks目录的磁盘上。我的其他烹饪书都没有这个问题,所以我觉得这里发生了一些奇怪的事情 我用的是这个食谱: 你知道我为什么会犯这个错误吗?我正在测试厨房中运行此配方。将“主机名”添加到你的包装器食谱的metadata.rb中。我希望这会很容易,但这不起作用。

Chef infra 当端口打开时,InSpec应为侦听测试失败

环境 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 infra Chef:在节点上刀锋boostrap期间升级Chef客户端版本

假设您通过Chef工作站通过“刀子引导”引导Ubuntu节点,使用参数“--bootstrap version”作为“12.9.41”指定要在节点上安装的Chef客户端版本 在引导操作结束时,检查节点上的chef客户端版本,您将获得在刀子上指定的版本命令: [root@myhostname greg]# chef-client -v Chef: 12.9.41 假设现在要升级节点上的chef客户端版本。例如,因为运行列表上的新食谱需要更新版本才能工作 如果再次运行bootstrap命令,并在末

Chef infra Puppet-to-Chef语法转换

我得把很多木偶转换成厨师代码。 我做了一些厨师教程,我也会读关于木偶的书 有人知道我在哪里可以找到更多的比较Puppet和Chef代码的例子吗? (就像这个傀儡代码在厨师代码中一样) 完美将是一个完整的指南,帮助我转换代码 我发现的只有大约3个例子 祝福 丹尼斯将向你展示许多选择。总的来说,由于工作风格的不同,这不是一对一。谢谢!我又找到了一个示例代码,这很好。甚至一个用puppet和chef编写的项目(比如Github)也会有帮助。。。

Chef infra 如何跟踪客户端上的运行时更改?

我正在检查一本即将配置我的客户机的大型烹饪书,我想详细了解它配置了哪些文件\删除了哪些文件\添加了哪些文件,等等 我运行: find / -mount -mmin 它确实给了我一些提示,但我也得到了一些不相关的结果 有没有更好的方法通过运行烹饪书来了解我的clinet上到底发生了什么变化?有一个why run系统,它试图事先进行分析,以确定会发生什么变化,但由于厨师食谱是任意可执行代码的性质,它并不完美。您也可以在事后通过Reporting插件或事件处理程序(允许您将数据写入任何系统/格式)

Chef infra 厨师客户端执行会覆盖对配方的本地编辑

我是一名开发人员,负责对devops团队拥有的食谱进行一些修改。我们无法访问刀子或厨师服务器 我试着对一个食谱做一些局部修改来尝试一下。但是,当我跑步时: $ sudo chef-client --log_level debug 对配方的本地更改将被服务器上的内容覆盖 有没有一种方法可以在不从chef服务器获取菜谱的情况下快速测试菜谱的微小更改 谢谢。只需将--skip cookbook sync参数添加到您的命令中: $sudo chef客户端--日志级调试--跳过cookbook同步 有用

Chef infra 厨师有没有办法知道归档文件';跑步过程中的内容是什么?

我有一个厨师食谱,它克隆了git存储库的一个特定分支,其中包含两个.tgz文件和一个.sql文件。repo中的文件名遵循约定,但带有时间戳,这意味着无法确定每次运行时它们的确切名称。克隆存储库之后,我希望chef提取这两个.tgz文件 在chef需要提取.tgz文件之前,我已经准备好了所有的工作。客户端运行时总是出错,tgz文件名为nil。我认为问题在于,由于chef的工作方式,chef可能无法“发现”在运行阶段添加到目录中的文件名 在测试过程中,我发现如果在chef运行之前克隆git存储库,使

Chef infra 如何在环境中重写Chef cookbook版本约束?

在我的prod环境中,我为某本食谱设置了一个版本约束 SampleCookbook = 1.1.4 现在我想摆脱这个限制。我如何以增量方式执行此操作?我不想做的只是删除约束,因为这将同时影响此环境中的所有计算机 我宁愿在中禁用单个节点上的约束,以检查更改是否安全,然后再在环境中禁用它。 有办法做到这一点吗?使用登台环境。在暂存中的一个单独节点上测试更新,或将一个节点临时移动到“暂存”环境-删除约束的生产副本-测试更新,在生产中删除约束,然后将节点移回 似乎没有一种简单的方法可以覆盖单个节点的约

Chef infra ChefSpec和测试厨房

我正在调查ChefSpec报告是否(有覆盖范围)和测试厨房报告 可以作为junit格式生成,这样Jenkins就可以对它们进行解析,从而发布结果。 或者,如果有其他友好的方式,这些结果可以由詹金斯发表 谢谢 编辑1: 抱歉,如果我解释不正确,但我知道chefspec用于单元测试,testkitchen用于集成测试。 我在这个问题中的意思是,如何以Jenkins可以解析的格式(比如junit格式)获取测试结果报告(对于chefspec和另一个手动测试厨房来说)。虽然似乎有这样一种功能,至少可以将其

Chef infra 厨师长客户端取消通知延迟

我想知道是否有办法取消重新启动设置为延迟的服务的通知。例如,下面是一个配置更改代码块: template "/etc/myapp/myconfig.conf" do source "myconfig.conf.erb" mode 0600 notifies :restart, "service[myapp]", :delayed end 但在我的食谱的最后,我有一些逻辑,如果满足某些条件,我会禁用这个应用程序。这可以很好地工作,但是在禁用之后(在chef运行结束时),延

Chef infra 厨师库刷新所有

我想刷新我所有的保险库,有没有一个解决方案可以用一个命令来完成 例如 目前看来,在chef vault中似乎没有办法做到这一点。必须同时提供vault和要刷新的项目命令。或者,您可以为该任务创建一些自动化任务(rake任务),这样就不需要每次手动运行多个命令 您可以在GitHub上创建功能请求。您可以使用“刀子数据包”命令实现自动化 以下是如何在shell中执行此操作: for i in $(knife data bag list); do for j in $(knife data

Chef infra 在运行chef客户端之前可用于搜索的节点

只是想知道,是否可以在节点完成chef客户端运行之前搜索该节点 由厨师长主持: 当资源中的资源标识的所有操作 收集已完成,当chef客户端运行完成时 成功地,chef客户端更新chef上的节点对象 具有在此chef客户端期间生成的节点对象的服务器 跑(此节点对象将由chef客户端在 下一个chef客户端运行。)这将使节点对象(和 节点对象)可用于搜索 chef客户端始终检查资源集合是否存在 异常和报告处理程序的类型。如果有,每一个都是 处理得当 例如,我有一个搜索角色为“webserver”的

Chef infra 从VM模板创建VM并与Chef服务器链接

我已经安装了Chef服务器(运行版本12.0.1) 我现在有一个windows机器设置,可以与Chef服务器对话 我的问题是,在我将其转换为模板之后,如何让使用该模板创建的任何新服务器运行“chef client”以与chef服务器同步?使用for Vagrant 否则我就不明白你的问题。这个虚拟机模板存储在vSphereDesN中,在这种情况下没关系,不是吗?那台windows机器是怎么回事,它扮演了什么角色?你的问题我不清楚。

Chef infra 撤消引导

是否可以撤消引导 我必须将我的节点连接到另一个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

Chef infra 如何使用HWRP中的Chef::Resource::CookbookFile?

当我使用菜谱中的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 infra chef server 12.6禁用webui

我正在使用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

Chef infra 如何从chef recipe运行bash脚本文件

我想实现厨师食谱中的逻辑,如下所示。我怎样才能做到这一点 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

Chef infra 使用不同用户名和密码的厨师食谱

如果我有两个相同的服务器,服务器A和服务器B,它们都是测试环境。如何使用相同的厨师配方,但在每台服务器上使用不同的用户详细信息 例如: Server A Recipe WebSite to setup IIS, but uses: UsernameA PasswordA ... for the application pool 及 在我的环境中,我实际上有10个测试环境,我需要使用相同的配方配置所有测试环境,所有测试环境都具有唯一的用户名和密码。将数据导入Chef运行的两种主要方法是节点属性

Chef infra STDERR:命令行错误:没有这样的选项:--force yes

我正试图通过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 infra 使用chef启动ec2实例

我最近开始做厨师。我想使用chef在aws帐户中启动ec2实例。 我有厨师工作站(windows)、厨师节点(windows 2012 R2)和厨师服务器。 我需要这方面的信息,有人能推荐我吗?很难说清楚你在说什么。如果您只是想了解如何将服务器设置为客户端实例,请使用knife bootstrap。如果您想创建一个新的EC2实例,然后引导它,请使用刀EC2服务器创建 有两种方法: (一) 这一个使用gem“aws sdk”,这是在aws云中进行资源调配最正确的方法。在这种情况下,您的ChefDK

Chef infra 防止chef客户端两次记录消息

每当我运行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

Chef infra 使用artifactory作为json解析错误安装Berks

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 页