本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建、上传和部署应用程序
首先,创建 WordPress 应用程序包,然后 CodeDeploy CTs 使用创建和部署应用程序。
下载 WordPress、解压缩文件并创建. /scripts 目录。
Linux 命令:
wget https://github.com/WordPress/WordPress/archive/master.zipWindows:粘贴
https://github.com/WordPress/WordPress/archive/master.zip到浏览器窗口并下载 zip 文件。创建用于组装软件包的临时目录。
Linux:
mkdir /tmp/WordPressWindows:创建一个 “WordPress” 目录,稍后将使用该目录路径。
将 WordPress 源代码解压缩到 “WordPress” 目录并创建一个。 /scripts 目录。
Linux:
unzip master.zip -d /tmp/WordPress_Temp cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress rm -rf /tmp/WordPress_Temp rm -f master cd /tmp/WordPress mkdir scriptsWindows:转到你创建的 “WordPress” 目录并在那里创建一个 “脚本” 目录。
如果您在 Windows 环境中,请务必将脚本文件的中断类型设置为 Unix (LF)。在 Notepad ++ 中,这是窗口右下角的一个选项。
在 WordPress 目录中创建 CodeDeploy appsec.yml 文件(如果复制示例,请检查缩进,每个空格都很重要)。重要:确保将 WordPress 文件(在本例中为 WordPress 目录中)复制到预期目标 (/var/www/html/WordPress) 的 “源” 路径是正确的。在示例中,appsec.yml 文件位于文件所在的目录中,因此只需要使用 “/”。 WordPress 另外,即使你在 Auto Scaling 组中使用了 RHEL AMI,也要保留 “操作系统:linux” 一行不变。appspec.yml 文件示例:
version: 0.0 os: linux files: - source: / destination: /var/www/html/WordPress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/config_wordpress.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root-
在中创建 bash 文件脚本。 WordPress /scripts 目录。
首先,
config_wordpress.sh使用以下内容创建(如果您愿意,可以直接编辑 wp-config.php 文件)。注意
DBName替换为 HA 堆栈 RFC 中给出的值(例如,wordpress)。DB_MasterUsername替换为 HA 堆栈 RFC 中给出的MasterUsername值(例如,admin)。DB_MasterUserPassword替换为 HA 堆栈 RFC 中给出的MasterUserPassword值(例如,p4ssw0rd)。在 HA 堆栈 RFC 的执行输出中替换
DB_ENDPOINT为终端节点 DNS 名称(例如srt1cz23n45sfg.clgvd67uvydk.us-east-1.rds.amazonaws.com)。你可以通过GetRfc操作(CLI:get-rfc--rfc-id RFC_ID)或者在之前提交的 HA Stack RFC 的 AMS 控制台 RFC 详情页面中找到它。#!/bin/bash chmod -R 755 /var/www/html/WordPress cp /var/www/html/WordPress/wp-config-sample.php /var/www/html/WordPress/wp-config.php cd /var/www/html/WordPress sed -i "s/database_name_here/DBName/g" wp-config.php sed -i "s/username_here/DB_MasterUsername/g" wp-config.php sed -i "s/password_here/DB_MasterUserPassword/g" wp-config.php sed -i "s/localhost/DB_ENDPOINT/g" wp-config.php 在同一个目录中创建
install_dependencies.sh包含以下内容的内容:#!/bin/bash yum install -y php yum install -y php-mysql yum install -y mysql service httpd restart注意
HTTPS 是在启动时作为用户数据的一部分安装的,以便运行状况检查从一开始就起作用。
在同一个目录中创建
start_server.sh包含以下内容的内容:对于亚马逊 Linux 实例,请使用以下命令:
#!/bin/bash service httpd start对于 RHEL 实例,请使用以下命令(额外的命令是允许 SELINUX 接受的策略): WordPress
#!/bin/bash setsebool -P httpd_can_network_connect_db 1 setsebool -P httpd_can_network_connect 1 chcon -t httpd_sys_rw_content_t /var/www/html/WordPress/wp-content -R restorecon -Rv /var/www/html service httpd start
在同一个目录中创建
stop_server.sh包含以下内容的内容:#!/bin/bash service httpd stop创建 zip 捆绑包。
Linux:
$ cd /tmp/WordPress $ zip -r wordpress.zip .Windows:前往 “WordPress” 目录选择所有文件并创建一个 zip 文件,一定要将其命名为 wordpress.zip。
将应用程序包上传到 S3 存储桶
要继续部署堆栈,软件包需要准备就绪。
您可以自动访问自己创建的任何 S3 存储桶实例。您可以通过 Bastions(请参阅访问实例)或 S3 控制台对其进行访问,然后使用 drag-and-drop文件或浏览并选择文件来上传 CodeDeploy 软件包。
您也可以在 shell 窗口中使用以下命令;请确保您的 zip 文件路径正确:
aws s3 cp wordpress/wordpress.zip s3://BUCKET_NAME/部署 WordPress CodeDeploy 应用程序包
必需的数据代码部署应用程序部署:
CodeDeployApplicationName: 你给 CodeDeploy 应用程序起的名字。
CodeDeployGroupName:由于 CodeDeploy 应用程序和组都是根据您在 HA 堆栈 RFC 中为 CodeDeploy 应用程序指定的名称创建的,因此该名称与。CodeDeployApplicationName
S3Bucket:你给 S3 存储桶起的名字。
S3 BundleType 和 S3Key:它们是您部署的 WordPress 应用程序包的一部分。
VpcId:相关的 VPC。
在 “创建 RFC” 页面上,从 RFC CT 选择列表中选择 “部署”、“CodeDeploy 应用程序” 子类别、“应用程序” 和 “操作” 部署类别。
保留默认的 “基本” 选项,并如图所示设置值。
注意
引用之前创建的 CodeDeploy 应用程序、 CodeDeploy 部署组、S3 存储桶和捆绑包。
Subject: WP-CD-Deploy-RFC Description: DeployWordPress S3Bucket:BUCKET_NAMES3Key: wordpress.zip S3BundleType: zip CodeDeployApplicationName: WordPress CodeDeployDeploymentGroupName: WordPress CodeDeployIgnoreApplicationStopFailures: false RevisionType: S3 VpcId:VPC_IDName: WP-CD-Deploy-Op TimeoutInMinutes: 60完成后单击 “提交”。