本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
第 16 步:更新说明书以使用社区说明书
重要
这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过
最后,更新说明书以使用 Chef 社区提供的外部说明书中的功能。您用于此演练的外部说明书,可以通过 Chef Supermarket
当一个说明书依赖另一个说明书时,您必须指定对另一个说明书的依赖项。要宣布和管理说明书依赖项,我们建议您使用一个名为 Berkshelf 的工具。有关如何在本地工作站上安装 Berkshelf 的更多信息,请参阅 Chef 网站上的关于 Berkshelf
当您安装 Berkshelf 后,按照以下步骤来宣布说明书依赖项,然后创建可在外部说明书中调用资源的配方:
宣布说明书依赖项
-
在您的本地工作站上的
opsworks_cookbook_demo
目录中,在metadata.rb
文件的结尾添加以下行:depends "application", "5.0.0"
这可宣布对一个名为
application
的说明书 (版本 5.0.0.) 的依赖项。 -
从
opsworks_cookbook_demo
目录的根目录运行以下命令。命令末尾的句点是有意设计的。berks init .
Berkshelf 创建的许多文件夹和文件都可以用于以后更高级的方案。对于此演练,我们需要的唯一文件是名为
Berksfile
的文件。 -
将以下行添加到
Berksfile
文件的末尾处:cookbook "application", "5.0.0"
这将告知 Berkshelf,您要使用 Berkshelf 从 Chef Supermarket 下载的应用程序说明书版本 5.0.0
。 -
在终端处或在命令提示符下,在
opsworks_cookbook_demo
目录的根目录下运行以下命令:berks install
Berkshelf 将创建一份您的说明书以及应用程序说明书的依赖项列表。Berkshelf 在下一个步骤中使用此依赖项列表。
更新实例上的说明书并运行新的配方
-
在
recipes
目录的opsworks_cookbook_demo
子目录中,创建名为dependencies_demo.rb
的包含以下代码的文件:application "Install NetHack" do package "nethack.x86_64" end
此方法依赖于应用程序食谱中的应用程序资源,以便在实例 NetHack 上安装流行的基于文本的冒险游戏。(当然,您可以替换想要替换的其他任何程序包名称,但前提是实例上程序包管理器要能够随时获得程序包。)
-
从
opsworks_cookbook_demo
目录的根目录运行以下命令:berks package
Berkshelf 使用上一个步骤中创建的依赖项列表创建一个名为
cookbooks-
的文件,该文件包含timestamp
.tar.gzopsworks_cookbook_demo
目录和其更新后的内容 (包括说明书所依赖的说明书)。将此文件重命名为opsworks_cookbook_demo.tar.gz
。 -
将更新后重命名为
opsworks_cookbook_demo.tar.gz
的文件上传到 S3 存储桶。 -
按照第 5 步:更新实例上的说明书并运行配方中的步骤,更新实例上的说明书并运行配方。在“运行配方”步骤中,对于 Recipes to execute (要执行的配方),键入
opsworks_cookbook_demo::dependencies_demo
。 -
运行配方后,您应当能够登录实例,然后在命令提示符下键入
nethack
以开始播放。(有关游戏的更多信息,请参阅NetHack和NetHack指南 。)
在下一步中,你可以清理 AWS 您在本演练中使用的资源。下一步是可选的。你可能想继续使用这些 AWS 在您继续了解更多信息时提供的资源 AWS OpsWorks 堆栈。但是,保留这些 AWS 周围的资源可能会导致您持续收取一些费用 AWS account。如果你想保留这些 AWS 资源可供以后使用,你现在已经完成了本演练,你可以直接跳到后续步骤。