了解更多:探索本演练中用到的说明书 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

了解更多:探索本演练中用到的说明书

重要

该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

本主题介绍了 AWS OpsWorks Stacks 在演练中使用的食谱。

说明书 是一个 Chef 概念。说明书是一些存档文件,其中包含配置信息,如配方、属性值、文件、模板、库、定义和自定义资源。配方 也是一个 Chef 概念。配方是一些说明,用 Ruby 语言语法编写,指定要使用的资源和应用这些资源的顺序。有关更多信息,请转至了解 Chef 网站上的关于说明书关于配方

要查看本演练中使用的食谱内容,请opsworks-linux-demo-cookbooks将-nodejs.tar.gz 文件的内容解压缩到本地工作站上的空目录中。(您也可以登录到部署了说明书的实例并浏览 /var/chef/cookbooks 目录的内容。)

cookbooks/nodejs_demo/recipes 目录中的 default.rb 文件是说明书运行其代码的位置:

app = search(:aws_opsworks_app).first app_path = "/srv/#{app['shortname']}" package "git" do options "--force-yes" if node["platform"] == "ubuntu" && node["platform_version"] == "18.04" end application app_path do javascript "4" environment.update("PORT" => "80") git app_path do repository app["app_source"]["url"] revision app["app_source"]["revision"] end link "#{app_path}/server.js" do to "#{app_path}/index.js" end npm_install npm_start end

下面是该文件执行的操作:

  • search(:aws_opsworks_app).first 使用 Chef 搜索来查找最终将被部署到实例的应用程序的信息。这些信息包括如应用程序的短名及其源存储库详细信息等设置。由于本演练中只部署了一个应用程序,所以 Chef 搜索从实例上 aws_opsworks_app 搜索索引内的第一个信息项获得这些设置。每当启动实例时, AWS OpsWorks Stacks 都会将这些信息和其他相关信息作为一组数据袋存储在实例本身上,然后您可以通过 Chef 搜索获得数据包中的内容。尽管您可以将这些设置硬编码到此配方中,但使用数据包和 Chef 仍不失为一种更可靠的方式。有关数据包的更多信息,请参阅 AWS OpsWorks 堆栈数据包参考。另请参阅了解 Chef 网站上的关于数据包。有关 Chef 搜索的更多信息,请转至了解 Chef 网站上的关于搜索

  • package 资源将 Git 安装在实例上。

  • application 资源描述和部署 Web 应用程序:

    • javascript是要安装的 JavaScript 运行时版本。

    • environment 设置环境变量。

    • git 从指定存储库和分支获取源代码。

    • app_path 是要将存储库克隆到的目标路径。如果实例上不存在该路径,则 AWS OpsWorks Stacks 会创建该路径。

    • link 创建一个符号链接。

    • npm_install 安装 Node Package Manager,这是 Node.js 的默认软件包管理器。

    • npm_start 运行 Node.js。

尽管 AWS OpsWorks Stacks 创建了用于本演练的食谱,但你可以创建自己的食谱。要了解如何操作,请参阅 入门:说明书。另外,您也可以转至了解 Chef 网站上的关于说明书关于配方了解 Ubuntu 上的 Chef 基础,以及 Chef 入门网站上使用 Chef 的第一步中“我们的第一个 Chef 说明书”一节。