Chef - 如何 运行 本地食谱

Chef - How to run a cookbook locally

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

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

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

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

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

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

谢谢

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

对于 OpsWorks 之外的普通 Chef,您可以使用 Test Kitchen 来处理此类事情,它会处理使用 Vagrant 或其他系统(docker、ec2 等)创建测试 VM、安装 Chef、运行 你的食谱,然后 运行 一些测试。

检查:How are people testing opsworks cookbooks?

亚马逊医生说:

Packaging Cookbook Dependencies Locally

You can use Berkshelf to package your cookbook dependencies locally, upload the package to Amazon S3, and modify your stack to use the package on Amazon S3 as a cookbook source. Content delivered to Amazon S3 buckets might contain customer content. For more information about removing sensitive data, see How Do I Empty an S3 Bucket? or How Do I Delete an S3 Bucket?.

The following walkthroughs describe how to pre-package your cookbooks and their dependencies into a .zip file, and then use the .zip file as your cookbook source for Linux instances in AWS OpsWorks Stacks. The first walkthrough describes how to package one cookbook. The second walkthrough describes how to package multiple cookbooks.

Before you begin, install the Chef Development Kit (also known as Chef DK), which is an assortment of tools built by the Chef community. You will need this to use the chef command-line tool.

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