Articles of 厨师独奏

AWS CloudFormation模板和bash初始化脚本

直到现在,我已经手动启动EC2实例,通过bash脚本进行复制,该脚本下载我的厨师和厨师工件,并调用厨师独奏来调配实例。 公司的前AWS工程师曾经创build过CF模板, 我几乎不知道如何使用。 有没有办法将我的bash脚本整合到CF模板中,以便在CF EC2实例启动时,我的bash脚本被调用并且实例是auto-provisioned ?

一个厨师食谱安装ruby1.9.3系统没有rvm或rbenv

我正在寻找一个Opscode Chef食谱 ,它在run_list执行时安装最新的补丁级别的系统级Ruby 1.9.3。 已经做了一些研究,并且至less有一个适用于Ubuntu的Brightbox PPA 。 我不知道是否有一个写得很好的跨平台的厨师食谱,取代旧的1.8.7 Ruby的1.9.3或更好的,而不依赖于RVM或rbenv。

合并Chef属性数组

假设我有两本食谱,Foo和Bar。 在cookbook Foo中,attributes / default.rb包含以下内容: default[:test] = [{:baz => 'A', :qux => 'B'}] 在食谱B中,我想用另一个对象(即合并两个数组)来扩展该数组: {:baz => 'C', :qux => 'D'} ,理想情况下来自一个配方。 我试图把下面的酒吧的食谱,或属性文件: default[:test] = [{:baz => 'C', :qux => 'D'}] 期待两者合并,并导致: node[:test] == [{:baz => 'A', :qux => 'B'}, {:baz => 'C', :qux => 'D'}] 但是那不是发生了什么。 相反,在Chef-Solo运行期间,只有两个对象中的一个包含在数组中。 我也尝试与default.override和default.set具有相同的结果。 我怎样才能合并这两个数组? 谢谢。

openssl passwd的目的是什么?

我正在阅读“ 可靠部署Rails应用程序 ” 对于由大厨设置的用户来说,它说: “接下来我们需要定义用户,在data_bags / users里面将deploy.json.example文件复制到deploy.json。 使用以下命令为您的部署用户生成密码: openssl passwd -1 "plaintextpassword" 并相应地更新deploy.json。“ 我的问题是, openssl passwd的目的是什么? 只是为了生成一个强大的密码? 如果我input随机字符,会不会同样好? 然后,我的“实际”密码是什么? 纯文本版本还是encryption版本? 我是否需要将两者的副本保存到我的密码pipe理器中? 更新: 是的,我已阅读手册。 是的,我知道它会生成密码的MD5encryption版本。 我的问题是关于为什么要使用它,而不是使用一个非常安全的随机string,你自己组成(或使用密码生成器生成)。 我能想到的一个好处是,你可以input一个可记忆的密码,并且每次需要input时都可以通过openssl passwd -1 "plaintextpassword"来运行它。 所以,就一个容易记住的密码和一个安全随机的密码而言,你会有两全其美的。 并且每次需要时通过“openssl passwd -1”运行可记忆/纯文本的版本,这将节省您不得不存储encryption版本的密码,并在每次需要input密码时input/粘贴该密码。 这是唯一的好处吗? 如果不是,其他的呢?

食谱没有findstream浪者,berkshelf和厨师独奏

我试图让一个stream浪汉跑起来,但是当我做vagrant up –provision ,这个错误是失败的: ERROR: Cookbook postgres not found. 我使用vagrant-berkshelf ,似乎是复制食谱对面。 那就是:当我把vagrant ssh到VM时,我可以看到一本食谱/tmp/vagrant-chef-3/chef-solo-1/cookbooks/postgres 。 那为什么厨师(在stream浪者的箱子里面)find食谱呢? 我以为vagrant-berkshelf插件应该处理这个?

厨师“通知”无法重新启动或重新加载服务

我正在使用chef-solo v10.12.0来configuration一个Ubuntu 12.04虚拟机,并且在configuration文件发生更改时,我仍然遇到服务无法重新启动或重新加载的问题。 日志中没有任何错误,尽pipe它明显在配方中做其他事情。 作为一种解决方法,我已经手动重新启动服务,或者每次执行配方时强制重新加载/重新启动,但是我更愿意弄清楚发生了什么问题,并按预期工作。 一个例子配方,一贯无法按预期工作: package "pgbouncer" cookbook_file "/etc/default/pgbouncer" do source "pgbouncer/pgbouncer" owner "root" group "root" mode 0644 end service "pgbouncer" do supports :start => true, :stop => true, :restart => true, :reload => true, :status => true action [:enable, :start] end cookbook_file "/etc/pgbouncer/userlist.txt" do source "pgbouncer/userlist.txt" owner "postgres" group "postgres" mode 0640 notifies […]

从Vagrant开发到生产中的厨师独奏,并得到一个“致命的:NoMethodError:未定义的方法`删除#”厨师::angular色“错误

所以我有一套食谱/angular色,configuration为与stream浪汉一起工作。 我现在正在部署一个应用程序,我想用我的服务器上的厨师独奏来运行这些相同的食谱。 所以我只是简单的安装了chef-solo(与vagrant使用的版本相同),并试图调用下面的命令: sudo chef-solo -c solo.rb -j roles/clusterflunk_dev.json 不幸的是,产生了以下错误: [Fri, 27 Jul 2012 08:20:28 +0100] INFO: *** Chef 0.10.8 *** [Fri, 27 Jul 2012 08:20:29 +0100] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out [Fri, 27 Jul 2012 08:20:29 +0100] FATAL: NoMethodError: undefined method `delete' for # <Chef::Role:0x7f6848a05638> 我不确定相同版本的厨师会产生不同的结果,我显然在某个地方犯了一个错误。 我正在使用Ubuntu Server 10.10。

stream浪/厨师 – nginx食谱延伸

我对厨师的使用相当陌生,特别是对于stream浪汉来说,这对于那些更有经验的用户来说很可能是一个愚蠢的问题。 我正在使用这本食谱: https : //github.com/opscode-cookbooks/application_nginx 我只是想添加我自己的网站configuration(虚拟主机)。 它必须是以下之一: 将我自己的收件人和模板直接添加到食谱中 创build我自己的食谱,以某种方式扩展nginx食谱,只添加我需要的特定行为。 选项1对我来说看起来不太合适,我不知道如何完成选项2,而不必完全分开食谱。 任何人都可以build议如何实现?

与Chef Solo一起运行`apt-get upgrade`

我正在使用Chef Solo为Ubuntu 12.04提供一个基于Opscode的“Bento”盒子的Vagrant虚拟机。 当它完成configuration和我第一次SSH时,MOTD告诉我有包和安全更新。 然后,我手动运行sudo apt-get upgrade ,这会删除后续login中的消息。 厨师有没有办法让这个步骤自动化? “易”食谱似乎并没有处理这一点。 我所有的Googlesearch都只能findapt-get update东西,而不是apt-get upgrade 。 我只能在Chef配方中执行apt-get命令,但在升级过程中,在粉红色屏幕上有一个伪GUI,我必须select驱动器进行安装(我认为这叫做GRUB,我是新的到Ubuntu),我不知道这部分如何自动与厨师。

使用Chef SoloconfigurationWindows EC2实例并引导它

我试图自动化一些.NET应用程序的CI过程,在一个完美的世界中,我想为每个应用程序启动一个Windows EC2实例,引导实例来安装Chef Solo,然后执行Chef recipe安装一些依赖项和打包的软件本身。 但是 – 我是新手,即使这是可行的,也不知道从哪里开始:) 我对AWS的命令行工具非常熟悉,所以可以启动一个AMI,但超出这一点,我很困难。 我想避免与预先安装的厨师build立一个定制AMI,因为这需要很多优势。 我认为这实际上是我需要做的 – 但是(不出意外)把重点放在Linux上: http://www.opinionatedprogrammer.com/2011/06/chef-solo-tutorial-managing-a-single-server-with-chef/ 有没有人有链接到谁做过这样或类似的人之前? 或者更好地实现我想要做的事情? 任何帮助赞赏。