本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立、上傳和部署應用程式
首先,建立 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」目錄,並在該處建立「scripts」目錄。
如果您在 Windows 環境中,請務必將指令碼檔案的中斷類型設定為 Unix (LF)。在記事本 ++ 中,這是視窗右下角的選項。
在 WordPress 目錄中建立 CodeDeploy apppec.yml 檔案 (如果複製範例,請檢查縮排,每個空格都會計算)。重要:確保「來源」路徑正確,可將 WordPress 檔案 (在本例中為 WordPress 目錄中) 複製到預期的目的地 (/var/www/html/WordPress)。在此範例中,appapppec.yml 檔案位於具有 WordPress 檔案的 目錄中,因此只需要 "/"。此外,即使您為 Auto Scaling 群組使用 RHEL AMI,也請保持原狀。Apppec.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-
在 WordPress ./scripts 目錄中建立 bash 檔案指令碼。
首先,
config_wordpress.sh使用下列內容建立 (如果您願意,可以直接編輯 wp-config.php 檔案)。注意
將
DBName取代為 HA 堆疊 RFC 中指定的值 (例如wordpress)。將
DB_MasterUsername取代為 HA 堆疊 RFC 中指定的MasterUsername值 (例如admin)。將
DB_MasterUserPassword取代為 HA 堆疊 RFC 中指定的MasterUserPassword值 (例如p4ssw0rd)。在 HA Stack 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,使用下列內容建立 :對於 Amazon 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 儲存貯體執行個體。您可以透過堡壘或透過 S3 主控台存取,並使用drag-and-drop或瀏覽上傳 WordPress 套件至 ,然後選取 zip 檔案。
您也可以在 shell 視窗中使用下列命令;請確定您擁有 zip 檔案的正確路徑:
aws s3 cp wordpress.zip s3://BUCKET_NAME/部署 WordPress 應用程式套件。
在開始之前收集下列資料,可讓部署更快進行。
必要資料:
VPC-ID:此值會決定 S3 儲存貯體的位置。使用您先前使用的相同 VPC ID。CodeDeployApplicationName和CodeDeployApplicationName:您在 HA 2-Tier堆疊 RFC 中使用的ApplicationName值會設定 CodeDeployApplicationName 和 CodeDeployDeploymentGroupName。此範例使用「WordPress」,但您可能已使用不同的值。S3Location:對於S3Bucket,請使用您先前建立BucketName的 。S3BundleType和S3Key來自您放在 S3 存放區上的套件。
輸出 CodeDeploy 應用程式的執行參數 JSON 結構描述,將 CT 部署到名為 DeployCDAppParams.json.
aws amscm get-change-type-version --change-type-id "ct-2edc3sd1sqmrb" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > DeployCDAppParams.json如下所示修改結構描述並將其儲存為 ,您可以刪除並取代內容。
{ "Description": "DeployWPCDApp", "VpcId": "VPC_ID", "Name": "WordPressCDAppDeploy", "TimeoutInMinutes": 60, "Parameters": { "CodeDeployApplicationName": "WordPress", "CodeDeployDeploymentGroupName": "WordPress", "CodeDeployIgnoreApplicationStopFailures": false, "CodeDeployRevision": { "RevisionType": "S3", "S3Location": { "S3Bucket": "BUCKET_NAME", "S3BundleType": "zip", "S3Key": "wordpress.zip" } } } }將 CreateRfc 的 JSON 範本輸出至目前資料夾中名為 DeployCDAppRfc.json:
aws amscm create-rfc --generate-cli-skeleton > DeployCDAppRfc.json修改並儲存 DeployCDAppRfc.json 檔案,您可以刪除和取代內容。請注意,
RequestedStartTime和 現在RequestedEndTime是選用的;排除它們會建立 ASAP RFC,在核准後立即執行 (通常會自動執行)。若要提交排定的 RFC,請新增這些值。{ "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-2edc3sd1sqmrb", "Title": "CD-Deploy-For-WP-RFC" }建立 RFC,指定 DeployCDAppRfc 檔案和 DeployCDAppParams 執行參數檔案:
aws amscm create-rfc --cli-input-json file://DeployCDAppRfc.json --execution-parameters file://DeployCDAppParams.json您會在回應中收到新 RFC 的 RfcId。儲存後續步驟的 ID。
提交 RFC:
aws amscm submit-rfc --rfc-idRFC_ID如果 RFC 成功,您不會收到任何輸出。
若要檢查 RFC 狀態,請執行
aws amscm get-rfc --rfc-idRFC_ID