步骤 2. 创建应用程序修订版本
在这一步中,您将创建要部署到本地实例的示例应用程序修订。
因为很难知道已安装哪些软件和功能—或者允许您的组织策略安装—在您的本地实例中,我们在这里提供的示例应用程序修订版只是使用批次脚本(对于 Windows Server)或shell脚本 Ubuntu Server 和 RHEL)将文本文件写入本地实例上的位置。每个文件都写入一个文件 CodeDeploy 部署生命周期事件,包括 安装, 后安装, 应用程序启动,和 验证器副本. 在 前进安装 DeploymentLifecycleEvent(部署生命周期事件),将运行一个脚本,以删除在此样本之前部署过程中写入的旧文件,并在您的本地实例上创建用于写入新文件的位置。
如果出现以下任何情况,此示例应用程序修订可能无法部署:
-
在本地实例上启动 CodeDeploy 代理的用户账户无权执行脚本。
-
用户账户无权在脚本中列出的位置创建或删除文件夹。
-
用户账户无权在脚本中列出的位置创建文本文件。
如果您配置 Windows Server 实例,并希望部署不同的样本,您可能希望使用 步骤 2. 配置源内容以部署到 Windows Server Amazon EC2 实例 在 教程 部署“Hello,World!” 应用程序 CodeDeploy (Windows Server) 教程。
如果您配置 RHEL 实例,并希望部署不同的样本,您可能希望使用 步骤 2. 配置将要部署的源内容配置到 Amazon Linux 或 Red Hat Enterprise Linux Amazon EC2 实例 在 教程 将Wordpress部署到 Amazon EC2 实例(Amazon Linux 或 Red Hat Enterprise Linux 和 Linux, OS X, or Unix) 教程。
目前, 没有替代示例。Ubuntu Server.
-
在您的开发计算机上,创建名为
CodeDeployDemo-OnPrem
的子目录 (子文件夹) 来存储示例应用程序修订的文件,然后切换到该子文件夹。在此示例中,我们假设您将使用c:\temp
文件夹作为用于 Windows Server 或/tmp
文件夹作为用于 Ubuntu Server 和 RHEL. 如果您使用其他文件夹,请务必在整个教程中使用该文件夹取代我们提供的文件夹:对于 Windows:
mkdir c:\temp\CodeDeployDemo-OnPrem cd c:\temp\CodeDeployDemo-OnPrem
对于 Linux, OS X, or Unix:
mkdir /tmp/CodeDeployDemo-OnPrem cd /tmp/CodeDeployDemo-OnPrem
-
在
CodeDeployDemo-OnPrem
子文件夹,使用文本编辑器创建名为appspec.yml
和install.txt
:appspec.yml
对于 Windows 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.yml
(对于 Ubuntu 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: 900
有关 AppSpec 文件的更多信息,请参阅将应用程序规范文件添加到 CodeDeploy 的修订和。CodeDeploy AppSpec File 参考.
install.txt
:The Install deployment lifecycle event successfully completed.
-
根据
CodeDeployDemo-OnPrem
子文件夹,创建scripts
子文件夹,然后切换到:对于 Windows:
mkdir c:\temp\CodeDeployDemo-OnPrem\scripts cd c:\temp\CodeDeployDemo-OnPrem\scripts
对于 Linux, OS X, or Unix:
mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts cd /tmp/CodeDeployDemo-OnPrem/scripts
-
在
scripts
子文件夹,使用文本编辑器创建名为before-install.bat
,after-install.bat
,application-start.bat
,和validate-service.bat
对于 Windows Server,或before-install.sh
,after-install.sh
,application-start.sh
,和validate-service.sh
对于 Ubuntu Server 和 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
-
对于 Ubuntu Server 和 RHEL 只有,确保四个shell脚本具有执行权限:
chmod +x ./scripts/*