本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
了解更多:探索本演练中用到的说明书
重要
这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过
本主题描述了这本食谱 AWS OpsWorks 用于演练的堆栈。
说明书 是一个 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 堆栈会创建它。 -
link
创建一个符号链接。 -
npm_install
安装 Node Package Manager,这是 Node.js 的默认软件包管理器。 -
npm_start
运行 Node.js。
-
虽然 AWS OpsWorks Stacks 创建了用于本演练的食谱,你可以创建自己的食谱。要了解如何操作,请参阅 入门:说明书。另外,您也可以转至了解 Chef