问题标签 [cookbook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 您如何模块化 Chef 食谱?
这是一个工作配方的示例,它遍历网站名称数组并使用函数 createIisWebsite() 在 IIS 中创建它们。
在我们的实际解决方案中,这些数据存储在其他地方并通过 Web API 访问。现在我希望能够从本食谱中的多个食谱中调用函数 createIisWebsite()。
我试过把它扔到一个辅助模块(库)中。在那里我无法获得对 iis_site 的引用。
我尝试将函数移动到default.rb
然后执行 include_recipe "::default"。这似乎也不起作用。
我收到“在 Windows 版本 6.2.9200 上找不到 createIisWebsite 的资源”
我采用这种方法的原因是因为我想要一个包含每个 Web 服务器集群的网站列表的配方。我觉得我没有采取最佳实践路线。
有任何想法吗?
ruby-on-rails - 在 Vagrantfile 中添加“食谱”时出错
我已经尝试了多次,但没有任何运气可以让这个代码在我的 . 中运行Vagrantfile
,每次我收到以下错误消息:
这是我所指的代码部分:
我已经从该站点下载了最新版本(版本 1.2.2),并将该.pgk
文件安装在我的 Mac 上,没有出现错误。
我还确保我已成功安装chef-11.4.4
,并在运行和未运行 Vagrant 框的情况下运行它......仍然得到相同的错误。
我是这项技术的新手,因此非常感谢任何帮助和/或建议。谢谢!
mysql - 厨师:mysql 食谱在我使用 mysqladmin 更改后不知道 root 的密码
我是 Chef(配置管理)的新手。我使用具有所有默认属性的 mysql 食谱。运行它会为 root 帐户生成一个随机密码。我可以将密码与 node['mysql']['server_root_password'] 一起使用。然后,我使用 mysqladmin 更改 mysql 密码。变量 node['mysql']['server_root_password'] 没有更新为我的新密码。请问如何告诉 mysql 食谱更新 node['mysql']['server_root_password'] 内的值?
apache - Chef Apache2 食谱的默认属性为 nil
我正在尝试使用 Chef-solo (11.4.4) 配置 Ubuntu 13.04 框,但是 apache2 食谱给出了错误:
我的猜测是食谱的默认属性没有加载,即 node['apache'] 为 nil,但我不知道如何解决这个问题......
我知道 Chef v11 对属性进行了一些更改,以前使用 Chef v10 它可以正常工作,但我没有足够的 Chef 知识来知道要更改什么。
任何帮助表示赞赏!
design-patterns - 如何以 Berkshelf 方式管理环境属性?
我们想开始采用 Berkshelf(和 Berskshelf 方式)来支持使用更好的开发模式。我们已经使用了“Application Coobook”和“Wrapper Cookbook”模式,但是大量使用了 Databags 而不是 Attributes。如果我们想使用属性,我们必须如何使用 Berkshelf 在环境级别上配置我们的应用程序?环境没有被打包到说明书中,它们处于 chef-repo 级别,并且受到与 Roles 和 DataBags 相同的限制,或者不是?
我是否必须在我的属性目录中创建多个属性文件(每个环境 1 个:QA、PROD)到食谱中?
还是我必须在同一个属性文件中创建多个部分(每个环境 1 个:QA、PROD)?
或者我是否必须在“Enviroments”chef-repo 目录下创建多个环境文件(每个环境 1 个:QA.json、PROD.json),在其中定义所有将被覆盖的属性?
但是在最后一种情况下,如果我有 100 个应用程序(即 100 个应用程序说明书,这是我们的用例),我最终不会有 2 个巨大的、不可维护的 env 文件吗?
ruby - 无法为澳大利亚地区创建 ec2 服务器
为澳大利亚的客户设置此服务。运行以下命令适用于美国默认区域,当我尝试澳大利亚 (ap-southeast-2) 区域时,出现无法调试的错误。
只是为了好玩,我将一起删除安全组并重新运行:
它确实存在:
这确实表明现有服务器已启动并正在运行。
除了我自己的理智,我在 us-east-1a 区域上运行了命令,并且:
有用。所以跟新区有关系吗?
chef-infra - 推荐食谱和推荐食谱之间的区别
无法明确区分厨师中建议和推荐的食谱设置。以及何时使用哪种设置。
service - Vagrant:定义自定义 Chef 服务或启动脚本的简单方法
我有一个 Vagrant 项目,它定义了几个虚拟机。在其中一个上,我需要运行一些命令来调整内核参数、从远程位置下载文件并启动守护程序。目前我在一个定义cookbooks/*/recipes/default.rb
:
当我第一次时,这一切都很好vagrant up
。但是当然,如果机器重新启动,这些命令都不会再次运行,因为它们不是任何 init 脚本的一部分。
我想我总是可以运行vagrant reload
以重新启动 VM,但我希望它能够直接重新启动。换句话说,有一个持久的“服务”。
现在,如果我想花时间查找这些文件的正确语法(在我已经完成验证即时命令的工作之后),上面给出的一些命令(内核调整)可以被修改/etc
做我想做的)。对于其他人(启动守护程序),我可能能够使用预定义的服务,即定义我可以配置/etc
并开始使用service
资源的服务的 Ubuntu 包。
但是还有一些特殊的命令,例如上面提到的下载(必须在守护程序启动之前完成)。大概我可以使用该template
资源在其中定义一个脚本,/etc/init.d/
然后service
在配置时使用它来启动它(尽管Chef,如何在创建服务之前运行创建 init.d 脚本的模板意味着这比听起来还要工作)。
但是,是否没有标准的方法来简单地要求在配置期间以及随后的重新启动时运行一个简短的内联脚本?execute
介于and之间的东西service
,例如
(我假设脚本是幂等的,即vagrant provision
在同一个 VM 会话中再次运行修改后的版本是可以的;如果我需要killall some-daemon
先,这很容易。)
python - Python Cookbook 中的食谱
我正在尝试实现 O'Reilly 的 Python Cookbook(第 2 版)中的一个食谱,但该食谱的一小部分无法正常工作。我希望有人能帮我找出原因。
配方是“5.14:使用评分功能增强字典类型”。我的大部分代码都可以正常工作,但是在尝试更改键的“排名”时出现错误。我在所有评论中都保留了作者的身份,因此任何试图提供帮助的人都会对“unders”和“dunders”的用途有一个很好的了解。尤其是“_rating”方面,我认为这会以某种方式导致错误。
错误:
代码:
chef-infra - 使用修改后的 opsworks 部署说明书不可变对象错误
我正在尝试将一些自定义代码添加到 opsworks 部署说明书中,与 before_migrate 步骤相关:
我遇到的问题是,当我在我的 site-cookbook 包中包含部署说明书时,我收到了一个厨师错误:
我已经验证我的食谱没有不正确的节点设置,所以我不知道问题可能是什么。我发现这个错误很难调试,即使我在没有任何修改的情况下包含这本食谱,我也会收到这个错误。如果您能指出正确的方向,请告诉我。