

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステップ 8: クックブックを更新してファイルを作成し、コピーする
<a name="gettingstarted-cookbooks-create-file"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

インスタンスに 2 つのファイルを追加するレシピを追加してクックブックを更新します。レシピの最初のリソースは、レシピコードを使用して完全にファイルを作成します。これは、Linux の **cat**、**echo**、または **touch** コマンド、または Windows の **echo** または **fsutil** コマンドに似ています。この手法は、少数のファイル、小さいファイル、またはシンプルなファイルに対して有効です。レシピの 2 番目のリソースはクックブックのファイルをインスタンスの別のディレクトリにコピーします。これは、Linux の **cp** コマンドまたは Windows の **copy** コマンドの実行と似ています。この手法は、多数のファイル、大きいファイル、または複雑なファイルに対して有効です。

このステップを開始する前に、「[ステップ 7: クックブックを更新してディレクトリを作成する](gettingstarted-cookbooks-create-directory.md)」を完了して、ファイルの親ディレクトリがすでに存在すること確認します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリで、`files` という名前のサブディレクトリを作成します 

1. `files` サブディレクトリで、`hello.txt`というテキストを含む **Hello, World\$1** という名前のファイルを作成します。

1. `opsworks_cookbook_demo` ディレクトリにある `recipes` サブディレクトリで、以下のコードを含む `create_files.rb` という名前のファイルを作成します。詳細については、[file](https://docs.chef.io/resource_file.html) と [cookbook\$1file](https://docs.chef.io/resource_cookbook_file.html) を参照してください。

   ```
   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` という名前のサブディレクトリがあることが想定されます)。

1. ターミナルまたはコマンドプロンプトで、**tar** コマンドを使用して `opsworks_cookbook_demo.tar.gz` というファイルの新しいバージョンを作成します。これには、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。

1. 更新済みの `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::create\$1files**」と入力します。

**レシピをテストするには**

1. すでに行っていない場合は、インスタンスにログインします。

1. コマンドプロンプトで、新しいファイルが追加されたことを確認するため、次のコマンドを 1 つずつ実行します。

   ```
   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!
   ```

[次のステップ](gettingstarted-cookbooks-run-command.md)では、クックブックを更新してインスタンスでコマンドを実行します。