我刚刚开始使用Chef并且已经完成了他们网站上的教程,但是一切似乎都假设您要为部署配置厨师服务器等
我目前正在AWS opsworks上设置网站,因此我想使用Chef进行配置和安装依赖项。因此我相信我只是为我的食谱提供了一条路径。在我开始使用Opsworks之前,我试图在ubuntu VM上创建我的食谱,并测试它是否正确安装了所有内容。
我知道对于单个脚本我可以使用chef-client file.rb
命令来运行它,但是如何以类似的方式在本地计算机上运行cookbook?我试过了
chef-client chef-repo
但是这个错误,即使使用基本的“motd”示例
我已经尝试过搜索示例,但正如我所说我是Chef的新手所以我不确定我正在搜索的术语是否正确。
这是否是使用Chef开发Opsworks的正确方法?
由于
答案 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命令行工具。