使用配方运行脚本 - AWS OpsWorks

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

使用配方运行脚本

重要

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

如果您已经有一个用于执行所需的自定义任务的脚本,则扩展层的最简单方法通常是实施一个运行该脚本的简单配方。您随后可以将该配方分配到相应的生命周期事件 (通常是设置或部署),或者使用 execute_recipes 堆栈命令手动运行该配方。

以下示例在 Linux 实例上运行 shell 脚本,但您可以对其他类型的脚本(包括 Windows PowerShell 脚本)使用相同的方法。

cookbook_file "/tmp/lib-installer.sh" do source "lib-installer.sh" mode 0755 end execute "install my lib" do command "sh /tmp/lib-installer.sh" end

cookbook_file 资源表示一个存储在说明书的 files 目录的子目录中的文件,然后将该文件传输到实例上的指定位置。本示例会将 shell 脚本 lib-installer.sh 传输到实例的 /tmp 目录并将该文件的模式设置为 0755。有关更多信息,请参阅 cookbook_file

execute 资源表示一个命令,如 shell 命令。此示例运行 lib-installer.sh。有关更多信息,请参阅 execute

您还可以通过将脚本集成到配方中来运行脚本。以下示例将运行 bash 脚本,但 Chef 还支持 Csh、Perl、Python 和 Ruby。

script "install_something" do interpreter "bash" user "root" cwd "/tmp" code <<-EOH #insert bash script EOH end

script 资源表示一个脚本。该示例指定了 bash 解释器,将用户设置为 "root",并将工作目录设置为 /tmp。然后,它在 code 块中运行了 bash 脚本,该块可根据需要包含任意数量的行。有关更多信息,请参阅脚本

有关如何使用配方运行脚本的更多信息,请参阅示例 7:运行命令和脚本。有关如何在 Windows 实例上运行 PowerShell 脚本的示例,请参阅运行 Windows PowerShell 脚本