第 8 步:更新说明书以创建并复制文件 - AWS OpsWorks

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

第 8 步:更新说明书以创建并复制文件

重要

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

通过添加可向实例添加两个文件的配方,更新您的说明书。配方中的第一个资源创建一个全部内容都是配方代码的文件。这与运行 Linux catechotouch 命令或者 Windows echofsutil 命令相似。此方法适用于文件数量少、文件小或简单的情况。配方中第二个资源将说明书中的一个文件复制到实例上的另一个目录中。这与运行 Linux cp 命令或 Windows copy 命令相似。此方法适用于文件数量多、文件大或复杂的情况。

在开始执行此步骤之前,请完成第 7 步:更新说明书以创建目录,以确保文件的父目录已经存在。

更新实例上的说明书并运行新的配方
  1. 在您的本地工作站上的 opsworks_cookbook_demo 目录中,创建名为 files 的目录。

  2. files 子目录中,创建一个名为 hello.txt 的文件,该文件包含以下文本:Hello, World!

  3. opsworks_cookbook_demo 目录的 recipes 子目录中,创建名为 create_files.rb 的包含以下代码的文件。有关更多信息,请转至 filecookbook_file

    file "Create a file" do content "<html>This is a placeholder for the home page.</html>" group "root" mode "0755" owner "ec2-user" path "/tmp/create-directory-demo/index.html" end cookbook_file "Copy a file" do group "root" mode "0755" owner "ec2-user" path "/tmp/create-directory-demo/hello.txt" source "hello.txt" end

    file 资源可在指定路径中创建文件。cookbook_file 资源将您刚刚在说明书中创建的 files 目录中的文件 (Chef 预计会找到一个可以复制其中文件的、名为 files 的标准命名的子目录) 复制到实例的另一个目录中。

  4. 在终端处或在命令提示符下,使用 tar 命令创建 opsworks_cookbook_demo.tar.gz 文件的新版本,该文件包含 opsworks_cookbook_demo 目录及其更新的内容。

  5. 将更新后的 opsworks_cookbook_demo.tar.gz 文件上传到 S3 存储桶。

  6. 按照第 5 步:更新实例上的说明书并运行配方中的步骤,更新实例上的说明书并运行配方。在“运行配方”步骤中,对于 Recipes to execute (要执行的配方),键入 opsworks_cookbook_demo::create_files

测试配方
  1. 如果您尚未登录实例,请登录。

  2. 在命令提示符下,运行以下命令 (一次运行一个命令),以确认已添加新文件:

    sudo cat /tmp/create-directory-demo/index.html sudo cat /tmp/create-directory-demo/hello.txt

    随即将显示该文件的内容:

    <html>This is a placeholder for the home page.</html> Hello, World!

下一步中,您将更新说明书以在实例上运行一个命令。