本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
第 8 步:更新说明书以创建并复制文件
重要
这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过
通过添加可向实例添加两个文件的配方,更新您的说明书。配方中的第一个资源创建一个全部内容都是配方代码的文件。这与运行 Linux cat、echo 或 touch 命令或者 Windows echo 或 fsutil 命令相似。此方法适用于文件数量少、文件小或简单的情况。配方中第二个资源将说明书中的一个文件复制到实例上的另一个目录中。这与运行 Linux cp 命令或 Windows copy 命令相似。此方法适用于文件数量多、文件大或复杂的情况。
在开始执行此步骤之前,请完成第 7 步:更新说明书以创建目录,以确保文件的父目录已经存在。
更新实例上的说明书并运行新的配方
-
在您的本地工作站上的
opsworks_cookbook_demo
目录中,创建名为files
的目录。 -
在
files
子目录中,创建一个名为hello.txt
的文件,该文件包含以下文本:Hello, World!
-
在
opsworks_cookbook_demo
目录的recipes
子目录中,创建名为create_files.rb
的包含以下代码的文件。有关更多信息,请转至 file和 cookbook_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
的标准命名的子目录) 复制到实例的另一个目录中。 -
在终端处或在命令提示符下,使用 tar 命令创建
opsworks_cookbook_demo.tar.gz
文件的新版本,该文件包含opsworks_cookbook_demo
目录及其更新的内容。 -
将更新后的
opsworks_cookbook_demo.tar.gz
文件上传到 S3 存储桶。 -
按照第 5 步:更新实例上的说明书并运行配方中的步骤,更新实例上的说明书并运行配方。在“运行配方”步骤中,对于 Recipes to execute (要执行的配方),键入
opsworks_cookbook_demo::create_files
。
测试配方
-
如果您尚未登录实例,请登录。
-
在命令提示符下,运行以下命令 (一次运行一个命令),以确认已添加新文件:
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!
在下一步中,您将更新说明书以在实例上运行一个命令。