Articles of 厨师

更改Chef服务器IP地址

我的理解是厨师服务器是通过FQDN而不是由IP地址(以及我所做的所有configuration都build议这一点)向客户端标识的。 我发现自己必须将Chef服务器(作为完整的系统映像和更新的networking脚本)重新定位到另一个VLAN,并因此而丢失IP。 假设FQDNparsing为新的IP,我的工作站(刀等)是否能正常工作?

厨师在傀儡上的Azure?

微软似乎更喜欢厨师而不是木偶? 厨师和Azure周围似乎比木偶更“嗡嗡”。 https://docs.getchef.com/plugin_knife_azure.html https://www.getchef.com/solutions/azure/ 如果这个问题不清楚的话,那就是。 在Azure上运行Chef over Puppet有多less好处? 我并不是指“概念性”“大观”式的优势。 我希望听到那些有脏手的人,可以谈论“哦,如果我只是使用木偶,这会更容易”或“感谢上帝,我在厨师或这将已经难以在木偶“。 所以,例如我主要处理AWS,对于我来说,使用OpsWorks,我可以直接指向一个厨师食谱并运行它。 傀儡不可能实现木偶客户端安装。 作为一名顾问,有时候为不想要/不需要整个剪贴的客户工作,就派上用场了。

厨师:如何修改confg文件才能重新启动节点

环境:aws opsworks厨师11.10和Ubuntu 14.04。 我正在使用大厨食谱来更新aws opsworks ec2节点上的/etc/dhcp/dhclient.conf文件,以便将我的自定义dnssearch后缀添加到/etc/resolv.conf文件中的search行。 如果file.insert_line_if_no_match更新文件,我怎么才能让我的配方重新启动节点? 我显然不希望每次配方运行时重新启动节点。 在我的node['opsworks']['stack']['name']下面的代码片断node['opsworks']['stack']['name']值就像a.dev.mydomain.com 。 ruby_block "add custom dns domain search suffix" do block do file = Chef::Util::FileEdit.new("/etc/dhcp/dhclient.conf") file.insert_line_if_no_match("/append domain-search/", "append domain-search \"#{node['opsworks']['stack']['name']}\";") file.write_file end end 上面的代码片段将最后一行添加到/etc/dhcp/dhclient.conf : # Configuration file for /sbin/dhclient, which is included in Debian's # dhcp3-client package. # option rfc3442-classless-static-routes code 121 = array of unsigned […]

在部署Rails应用程序到OpsWorks时出错'您必须在声明configuration资源时提供一个名称'

当从引擎工厂移动轨道应用程序到OpsWorks时,出现以下错误: Error executing action `deploy` on resource 'deploy[{{ app path }}]' you must supply a name when declaring a config resouce 当部署一个轨道应用程序的作品。 错误继续说“ 我已经确认我的“自定义JSON”正确填充database.yml文件。 进一步的细节给出: Resource Declaration: deploy deploy[:deploy_to] do provider Chef::Provider::Deploy.const_get(deploy[:chef_provider]) .. 有趣的是,在下面的转储中,有一个包含的params列表 :name => nil 这似乎是问题。 我已经检查了OpsWorks中的所有表单,并且填充了每个名称字段。 除此之外,自定义的JSON看起来是正确的,因为它被填充到database.yml文件中。 我不知道还有什么要从那里检查。 有没有人见过这个问题,或者任何人都可以提供任何想法,我怎样才能确定哪里出了问题呢?

CHEF中的条件依赖关系

我有一个复杂的软件堆栈,我用2个配方pipe理。 recipe[stack::foo] recipe[stack::bar] foo安装在每台服务器上,而bar仅安装在一部分服务器上。 bar取决于文件和服务foo 。 配方[堆栈:: foo的] file 'fooFile' do source 'somewhere' notifies :restart, service[barService] #bar needs to be restart first, if it is present notifies :restart, service[fooService] end service 'fooService' do action :start end 配方[堆栈::巴] file 'barFile' do source 'somewhere' end service 'barService' do action :start end 是否可以创build条件依赖项,以便如果bar配方存在于节点上,则会重新启动它。 如果不是,它会跳过它。 我正在尝试这样的事情 file 'fooFile' do […]

如何testing单个节点上的修改的厨师食谱?

我有一个厨师服务器pipe理less数节点。 服务器有食谱和数据袋子与各种各样的秘密。 我想对其中一个配方进行更改并仅在单个节点上进行testing:我不希望其他节点更新并使用修改过的配方。 我已经探索的解决scheme: testing厨房等 testing是很好的,但有一些细节,我不能testing没有数据包和其他东西独特的厨师服务器。 rsync代码到/ var / chef / cache / cookbooks 并运行chef-client –skip-cookbook-sync 这失败了,因为我的食谱源代码缺乏一个metadata.json和各种其他的东西。 碰上食谱版本,上传,编辑节点的运行列表 这很难协调多个开发人员之间的并行工作(特别是如果testing持续数天或数周)。 还有一些我不能控制的环境,我不能假设他们都被locking到我想修改的特定版本的食谱上。 重命名食谱,上传到服务器,应用备用angular色到节点 这是我现在使用的解决scheme。 这是很乏味的,因为改变菜谱名称会改变它定义的任何资源的名称,所以我必须编辑相当多的菜谱。 维护替代angular色集使用改名食谱也是一个烦恼。

食谱yum找不到食谱epel

我有nginx食谱麻烦..它依赖于yum-epel。 出错: “厨师::例外:: RecipeNotFound 找不到菜谱食谱yum“ $ knife cookbook show nginx nginx 2.7.6 2.7.5 2.7.4 1.8.0 $ knife cookbook show yum-epel yum-epel 0.6.6 0.6.0 $ knife cookbook show yum yum 3.10.0 3.6.0 3.5.4 3.5.3 3.5.2 一直在环顾四周,看起来像: yum食谱(3.X)的主要上游版本将yum :: epel食谱移至新的yum-epel食谱。 但找不到应用的解决方法。 我正在使用berks来解决食谱的依赖。 任何帮助深表感谢。 提前致谢。

星号自动安装

我最近开始了一个项目,我需要在AWS基础架构中为我的客户自动安装Asterisk服务器。 客户已经拥有AWS基础架构。 我在想以下方法: a) AMI图像 : 安装Asterisk EC2实例并创build一个映像(帐户A)。 将此图像从帐户A移到客户帐户(帐户B),然后进行相应的configuration。 这可能是具有挑战性的,因为我不确定是否可以跨不同帐户传输AMI映像。 b) 安装脚本 : 根据以下内容创build一个shell脚本: http://wiki.freepbx.org/display/FOP/Installing+FreePBX+12+on+Ubuntu+Server+14.04+LTS c) 厨师 : 使用厨师服务器,并有EC2实例的启动脚本来安装Chef客户端,然后获取星号配方。 d) Docker安装 使用Docker容器并简化安装,这将需要安装docker,然后部署容器。 任何build议/反馈表示赞赏。

厨师服务器是否需要公开?

我有一个厨师服务器运行在我们的本地networking和testing与同一networking上的其他机器,一切正常。 我启动了一个ec2实例,并尝试引导,它会一直工作,直到它尝试连接到厨师服务器。 我的问题是,是否有任何方式公布厨师服务器? 还是有没有办法,我可以绕过节点要求从服务器?

testing厨房没有检测到winrm,并使用SSH客户端

我新来testing厨房的窗户 我正在使用Test Vagrant(virtualbox)testingWindows机器上的厨师食谱, 我有win-2012-r2盒子可以和Vagrant一​​起工作(winrm和rdp都可以) 但是,当使用与厨房相同,它试图连接SSH而不是winrm 这是我的.kitchen.yml文件 — driver: name: vagrant provisioner: name: chef_zero verifier: name: inspec transport: name: winrm elevated: true platforms: – name: win-2012-r2 driver: box: win-2012-r2 communicator: 'winrm' winrm_username: 'admin' winrm_password: 'adminadmin' suites: – name: default run_list: – recipe[ttest::default] 运行kitchen test ,输出是 —–> Starting Kitchen (v1.11.1) —–> Cleaning up any prior instances of […]