厨师 - 如何在本地运行食谱

时间:2016-02-14 10:54:54

标签: chef aws-opsworks

我刚刚开始使用Chef并且已经完成了他们网站上的教程,但是一切似乎都假设您要为部署配置厨师服务器等

我目前正在AWS opsworks上设置网站,因此我想使用Chef进行配置和安装依赖项。因此我相信我只是为我的食谱提供了一条路径。在我开始使用Opsworks之前,我试图在ubuntu VM上创建我的食谱,并测试它是否正确安装了所有内容。

我知道对于单个脚本我可以使用chef-client file.rb命令来运行它,但是如何以类似的方式在本地计算机上运行cookbook?我试过了

chef-client chef-repo 但是这个错误,即使使用基本的“motd”示例

我已经尝试过搜索示例,但正如我所说我是Chef的新手所以我不确定我正在搜索的术语是否正确。

这是否是使用Chef开发Opsworks的正确方法?

由于

2 个答案:

答案 0 :(得分:2)

OpsWorks是Amazon Web Services的托管产品,没有本地开发环境。您必须创建一个EC2实例并将其用于测试等。不幸的是,亚马逊拒绝了大多数Chef生态系统工具,所以虽然OpsWorks由Chef提供支持,但它也是一个非常不同的野兽。

对于OpsWorks之外的普通厨师,您可以使用Test Kitchen进行此类操作,它使用Vagrant或其他系统(docker,ec2等)处理创建测试VM,安装Chef,运行您的cookbook,以及然后运行一些测试。

答案 1 :(得分:0)

检查:How are people testing opsworks cookbooks?

亚马逊医生说:

  

本地打包食谱依赖项

     

您可以使用 Berkshelf 在本地打包菜谱依赖项,   将包上传到Amazon S3,并修改堆栈以使用   Amazon S3上的软件包作为食谱源。内容交付给亚马逊   S3存储桶可能包含客户内容。有关更多信息   删除敏感数据,请参阅如何清空S3存储桶?或如何   删除S3存储桶?。

     

以下演练介绍了如何预包装食谱   并将其依赖项转换为.zip文件,然后将.zip文件用作   您在AWS OpsWorks Stacks中用于Linux实例的菜谱源。的   第一个演练介绍如何打包一个食谱。第二   演练介绍了如何打包多本食谱。

     

在开始之前,请安装Chef开发套件(也称为Chef   DK),这是由厨师社区构建的各种工具。您   需要使用Chef命令行工具。

https://docs.aws.amazon.com/opsworks/latest/userguide/best-practices-packaging-cookbooks-locally.html