

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

# ステップ 2: サンプルのアプリケーションリビジョンを作成する
<a name="tutorials-on-premises-instance-2-create-sample-revision"></a>

このステップでは、オンプレミスインスタンスにデプロイするサンプルのアプリケーションリビジョンを作成します。

オンプレミスインスタンス上に既にインストールされている、または組織のポリシーによってインストールが許可されているソフトウェアと機能を知るのは難しいため、オンプレミスインスタンスの場所にテキストファイルを書き込むために、ここで提供するサンプルアプリケーションリビジョンでは、バッチスクリプト (Windows Server の場合) またはシェルスクリプト (Ubuntu Server および RHEL の場合) を使用します。**Install**、 **AfterInstall**、 **ApplicationStart** および **ValidateService** を含む、複数の CodeDeploy デプロイライフサイクルイベントごとに 1 つのファイルが書き込まれます。**BeforeInstall** デプロイライフサイクルイベント中にスクリプトが実行され、このサンプルの前のデプロイ中に書き込まれた古いファイルを削除し、新しいファイルを書き込むオンプレミスインスタンス上に場所を作成します。

**注記**  
以下のいずれも該当しない場合、このサンプルのアプリケーションリビジョンはデプロイに失敗することがあります。  
オンプレミスインスタンスで CodeDeploy エージェントを起動するユーザーには、スクリプトを実行する権限がありません。
ユーザーに、スクリプトにリストされている場所でフォルダを作成または削除する権限がない。
ユーザーに、スクリプトにリストされている場所でテキストファイルを作成する権限がない。

**注記**  
Windows Server インスタンスを設定し、別のサンプルをデプロイする場合は、[ステップ 2: Windows Server の Amazon EC2 instance インスタンスにデプロイするソースコンテンツを設定する](tutorials-windows-configure-content.md) チュートリアルの「[チュートリアル: 「Hello, World\$1」 CodeDeploy を使用したアプリケーション (Windows Server)](tutorials-windows.md)」のサンプルを使用することをお勧めします。  
RHEL インスタンスを設定し、別のサンプルをデプロイする場合は、[ステップ 2: Amazon Linux または Red Hat エンタープライズ Linux Amazon EC2 インスタンスにデプロイされるようにソースコンテンツを設定する](tutorials-wordpress-configure-content.md) のチュートリアルの [チュートリアル: Amazon EC2 インスタンスに WordPress をデプロイする (Amazon Linux または Red Hat エンタープライズ Linux および Linux、macOS、または Unix)](tutorials-wordpress.md) のサンプルを使用することをお勧めします。  
現在、Ubuntu サーバー用の代替サンプルはありません。

1. 開発マシンで、サンプルのアプリケーションリビジョンのファイルを保存する、`CodeDeployDemo-OnPrem` という名前のサブディレクトリ (サブフォルダ) を作成し、そのサブフォルダに切り替えます。この例では、`c:\temp` のフォルダを Windows サーバーのルートフォルダとして使用するか、`/tmp` のフォルダを Ubuntu サーバーおよび RHEL のルートフォルダとして使用することを前提としています。別のフォルダを使用する場合は、このチュートリアル全体でそのフォルダに置き換えてください。

   Windows の場合:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem
   cd c:\temp\CodeDeployDemo-OnPrem
   ```

   Linux、macOS、Unix の場合:

   ```
   mkdir /tmp/CodeDeployDemo-OnPrem
   cd /tmp/CodeDeployDemo-OnPrem
   ```

1. `CodeDeployDemo-OnPrem` サブフォルダのルートで、テキストエディタを使用して `appspec.yml` および `install.txt` という 2 つのファイルを作成します。

   Windows サーバーのための `appspec.yml`

   ```
   version: 0.0
   os: windows
   files:
     - source: .\install.txt
       destination: c:\temp\CodeDeployExample
   hooks:
     BeforeInstall:
       - location: .\scripts\before-install.bat
         timeout: 900
     AfterInstall:
       - location: .\scripts\after-install.bat     
         timeout: 900
     ApplicationStart:
       - location: .\scripts\application-start.bat  
         timeout: 900
     ValidateService:
       - location: .\scripts\validate-service.bat    
         timeout: 900
   ```

   Ubuntu ServerとRHELのための `appspec.yml`：

   ```
   version: 0.0
   os: linux
   files:
     - source: ./install.txt
       destination: /tmp/CodeDeployExample
   hooks:
     BeforeInstall:
       - location: ./scripts/before-install.sh
         timeout: 900
     AfterInstall:
       - location: ./scripts/after-install.sh
         timeout: 900
     ApplicationStart:
       - location: ./scripts/application-start.sh
         timeout: 900
     ValidateService:
       - location: ./scripts/validate-service.sh
         timeout: 900
   ```

   AppSpec ファイルの詳細については、「[CodeDeploy 用のアプリケーション仕様ファイルをリビジョンに追加](application-revisions-appspec-file.md)」および「[CodeDeploy AppSpec ファイルのリファレンス](reference-appspec-file.md)」を参照してください。

   `install.txt`:

   ```
   The Install deployment lifecycle event successfully completed.
   ```

1. `CodeDeployDemo-OnPrem` サブフォルダのルートの下に、`scripts` サブフォルダを作成し、そのサブフォルダに切り替えます。

   Windows の場合:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem\scripts
   cd c:\temp\CodeDeployDemo-OnPrem\scripts
   ```

   Linux、macOS、Unix の場合:

   ```
   mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts
   cd /tmp/CodeDeployDemo-OnPrem/scripts
   ```

1. `scripts` のサブフォルダのルートで、テキストエディタを使用して、 Windows サーバーの場合は `before-install.bat`、`after-install.bat`、`application-start.bat`、 `validate-service.bat`、あるいは Ubuntu サーバーおよび RHEL の場合は、`before-install.sh`、`after-install.sh`、`application-start.sh`、`validate-service.sh` という名前の 4 つのファイルを作成します。

   Windows サーバーの場合

   `before-install.bat`:

   ```
   set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample
   
   if exist %FOLDER% (
     rd /s /q "%FOLDER%"
   )
   
   mkdir %FOLDER%
   ```

   `after-install.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt
   ```

   `application-start.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt
   ```

   `validate-service.bat`:

   ```
   cd %HOMEDRIVE%\temp\CodeDeployExample
   
   echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt
   ```

   Ubuntu Server と RHEL の場合:

   `before-install.sh`:

   ```
   #!/bin/bash
   export FOLDER=/tmp/CodeDeployExample
   
   if [ -d $FOLDER ]
   then
    rm -rf $FOLDER
   fi
   
   mkdir -p $FOLDER
   ```

   `after-install.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt
   ```

   `application-start.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt
   ```

   `validate-service.sh`:

   ```
   #!/bin/bash
   cd /tmp/CodeDeployExample
   
   echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt
   
   unset FOLDER
   ```

1. Ubuntu サーバーおよび RHEL の場合のみ、4 つのシェルスクリプトに実行権限があることを確認します。

   ```
   chmod +x ./scripts/*
   ```