ステップ 2: サンプルのアプリケーションリビジョンを作成する
このステップでは、オンプレミスインスタンスにデプロイするサンプルのアプリケーションリビジョンを作成します。
オンプレミスインスタンス上に既にインストールされている、または組織のポリシーによってインストールが許可されているソフトウェアと機能を知るのは難しいため、オンプレミスインスタンスの場所にテキストファイルを書き込むために、ここで提供するサンプルアプリケーションリビジョンでは、バッチスクリプト (Windows Server の場合) またはシェルスクリプト (Ubuntu Server および RHEL の場合) を使用します。Install、 AfterInstall、 ApplicationStart および ValidateService を含む、複数の CodeDeploy デプロイライフサイクルイベントごとに 1 つのファイルが書き込まれます。BeforeInstall デプロイライフサイクルイベント中にスクリプトが実行され、このサンプルの前のデプロイ中に書き込まれた古いファイルを削除し、新しいファイルを書き込むオンプレミスインスタンス上に場所を作成します。
注記
以下のいずれも該当しない場合、このサンプルのアプリケーションリビジョンはデプロイに失敗することがあります。
-
オンプレミスインスタンスで CodeDeploy エージェントを起動するユーザーには、スクリプトを実行する権限がありません。
-
ユーザーに、スクリプトにリストされている場所でフォルダを作成または削除する権限がない。
-
ユーザーに、スクリプトにリストされている場所でテキストファイルを作成する権限がない。
注記
Windows Server インスタンスを設定し、別のサンプルをデプロイする場合は、ステップ 2: Windows Server の Amazon EC2 instance インスタンスにデプロイするソースコンテンツを設定する チュートリアルの「チュートリアル: 「Hello, World!」 CodeDeploy を使用したアプリケーション (Windows Server)」のサンプルを使用することをお勧めします。
RHEL インスタンスを設定し、別のサンプルをデプロイする場合は、ステップ 2: Amazon Linux または Red Hat エンタープライズ Linux Amazon EC2 インスタンスにデプロイされるようにソースコンテンツを設定する のチュートリアルの チュートリアル: Amazon EC2 インスタンスに WordPress をデプロイする (Amazon Linux または Red Hat エンタープライズ Linux および Linux、macOS、または Unix) のサンプルを使用することをお勧めします。
現在、Ubuntu サーバー用の代替サンプルはありません。
-
開発マシンで、サンプルのアプリケーションリビジョンのファイルを保存する、
CodeDeployDemo-OnPremという名前のサブディレクトリ (サブフォルダ) を作成し、そのサブフォルダに切り替えます。この例では、c:\tempのフォルダを Windows サーバーのルートフォルダとして使用するか、/tmpのフォルダを Ubuntu サーバーおよび RHEL のルートフォルダとして使用することを前提としています。別のフォルダを使用する場合は、このチュートリアル全体でそのフォルダに置き換えてください。Windows の場合:
mkdir c:\temp\CodeDeployDemo-OnPrem cd c:\temp\CodeDeployDemo-OnPremLinux、macOS、Unix の場合:
mkdir /tmp/CodeDeployDemo-OnPrem cd /tmp/CodeDeployDemo-OnPrem -
CodeDeployDemo-OnPremサブフォルダのルートで、テキストエディタを使用してappspec.ymlおよびinstall.txtという 2 つのファイルを作成します。appspec.ymlWindows サーバーのための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: 900appspec.ymlUbuntu Serverと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: 900AppSpec ファイルの詳細については、「CodeDeploy 用のアプリケーション仕様ファイルをリビジョンに追加」および「CodeDeploy AppSpec ファイルのリファレンス」を参照してください。
install.txt:The Install deployment lifecycle event successfully completed. -
CodeDeployDemo-OnPremサブフォルダのルートの下に、scriptsサブフォルダを作成し、そのサブフォルダに切り替えます。Windows の場合:
mkdir c:\temp\CodeDeployDemo-OnPrem\scripts cd c:\temp\CodeDeployDemo-OnPrem\scriptsLinux、macOS、Unix の場合:
mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts cd /tmp/CodeDeployDemo-OnPrem/scripts -
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.txtapplication-start.bat:cd %HOMEDRIVE%\temp\CodeDeployExample echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txtvalidate-service.bat:cd %HOMEDRIVE%\temp\CodeDeployExample echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txtUbuntu Server と RHEL の場合:
before-install.sh:#!/bin/bash export FOLDER=/tmp/CodeDeployExample if [ -d $FOLDER ] then rm -rf $FOLDER fi mkdir -p $FOLDERafter-install.sh:#!/bin/bash cd /tmp/CodeDeployExample echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txtapplication-start.sh:#!/bin/bash cd /tmp/CodeDeployExample echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txtvalidate-service.sh:#!/bin/bash cd /tmp/CodeDeployExample echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt unset FOLDER -
Ubuntu サーバーおよび RHEL の場合のみ、4 つのシェルスクリプトに実行権限があることを確認します。
chmod +x ./scripts/*