ステップ 2: サンプルアプリケーションリビジョンの作成 - AWS CodeDeploy

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

ステップ 2: サンプルアプリケーションリビジョンの作成

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

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

注記

以下のいずれも該当しない場合、このサンプルのアプリケーションリビジョンはデプロイに失敗することがあります。

  • オンプレミスインスタンスで CodeDeploy エージェントを起動するユーザーアカウントには、スクリプトを実行する権限がありません。

  • ユーザーアカウントに、スクリプトにリストされている場所でフォルダを作成または削除する権限がない。

  • ユーザーアカウントに、スクリプトにリストされている場所でテキストファイルを作成する権限がない。

  1. 開発マシンで、サンプルのアプリケーションリビジョンのファイルを保存する、CodeDeployDemo-OnPrem という名前のサブディレクトリ (サブフォルダ) を作成し、そのサブフォルダに切り替えます。この例では、使用すると仮定していますc:\tempフォルダーを Windows Server のルートフォルダーとして使用するか、/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
  2. CodeDeployDemo-OnPrem サブフォルダのルートで、テキストエディタを使用して appspec.yml および install.txt という 2 つのファイルを作成します。

    appspec.ymlWindows Server の場合:

    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

    appspec.ymlUbuntuサーバとRHEL用:

    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 のリビジョンにアプリケーション仕様ファイルを追加する」および「CodeDeploy AppSpec ファイルのリファレンス」を参照してください。

    install.txt:

    The Install deployment lifecycle event successfully completed.
  3. 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
  4. のルートでscriptsサブフォルダでは、テキストエディタを使用してbefore-install.bat,after-install.bat,application-start.bat, およびvalidate-service.batWindows Server の場合は、before-install.sh,after-install.sh,application-start.sh, およびvalidate-service.shUbuntuサーバとRHEL用:

    Windows Server の場合:

    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
  5. Ubuntu Server および RHEL の場合のみ、4 つのシェルスクリプトに実行権限があることを確認します。

    chmod +x ./scripts/*