Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial CLI: Menyebarkan Situs Web Tier dan Tie WordPress
Bagian ini menjelaskan cara menerapkan WordPress situs ketersediaan tinggi (HA) ke lingkungan AMS menggunakan AMS CLI. Kumpulan instruksi ini mencakup contoh pembuatan file paket WordPress CodeDeploy -kompatibel (misalnya zip) yang diperlukan.
catatan
Panduan penerapan ini dirancang untuk digunakan dengan lingkungan AMZN Linux.
Parameter variabel penting dinotasikan sebagaireplaceable; Namun, Anda mungkin ingin memodifikasi parameter lain agar sesuai dengan situasi Anda.
Ringkasan tugas dan diperlukan RFCs:
Buat infrastruktur:
Membuat penyeimbang beban
Buat grup penskalaan Otomatis dan ikat ke penyeimbang beban
Buat bucket S3 untuk aplikasi CodeDeploy
Buat bundel WordPress aplikasi (tidak memerlukan RFC)
Terapkan bundel WordPress aplikasi dengan CodeDeploy:
Buat CodeDeploy aplikasi
Buat CodeDeploy grup penyebaran
Unggah bundel WordPress aplikasi Anda ke bucket S3 (tidak memerlukan RFC)
Menyebarkan aplikasi CodeDeploy
Validasi penerapan
Meruntuhkan penyebaran
Ikuti semua langkah di baris perintah dari akun Anda yang diautentikasi.
Membuat RFC menggunakan CLI
Untuk informasi rinci tentang pembuatan RFCs, lihat Membuat RFCs; untuk penjelasan tentang parameter RFC umum, lihat Parameter umum RFC.
Buat WordPress Application Bundle untuk CodeDeploy
Bagian ini memberikan contoh pembuatan bundel penerapan aplikasi.
Unduh WordPress, ekstrak file dan buat file. /scripts direktori.
Perintah Linux:
wget https://github.com/WordPress/WordPress/archive/master.zipWindows: Tempel
https://github.com/WordPress/WordPress/archive/master.zipke jendela browser dan unduh file zip.Buat direktori sementara untuk merakit paket.
Linux:
mkdir /tmp/WordPressWindows: Buat direktori WordPress "", Anda akan menggunakan jalur direktori nanti.
Ekstrak WordPress sumber ke direktori WordPress "" dan buat file. /scripts direktori.
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: Buka direktori "WordPress" yang Anda buat dan buat direktori “skrip” di sana.
Jika Anda berada di lingkungan Windows, pastikan untuk mengatur jenis istirahat untuk file skrip ke Unix (LF). Di Notepad ++, ini adalah opsi di kanan bawah jendela.
Buat file CodeDeploy appspec.yl, di WordPress direktori (jika menyalin contoh, periksa lekukan, setiap spasi dihitung). PENTING: Pastikan jalur “sumber” benar untuk menyalin WordPress file (dalam hal ini, di WordPress direktori Anda) ke tujuan yang diharapkan (/var/www/html/WordPress). Dalam contoh, file appspec.ymlada di direktori dengan WordPress file, jadi hanya “/” yang diperlukan. Juga, bahkan jika Anda menggunakan RHEL AMI untuk grup Auto Scaling Anda, biarkan baris “os: linux” apa adanya. Contoh file 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-
Buat skrip file bash di file. WordPress /scripts direktori.
Pertama, buat
config_wordpress.shdengan konten berikut (jika Anda mau, Anda dapat mengedit file wp-config.php secara langsung).catatan
Ganti
DBNamedengan nilai yang diberikan dalam HA Stack RFC (misalnya,wordpress).Ganti
DB_MasterUsernamedenganMasterUsernamenilai yang diberikan dalam HA Stack RFC (misalnya,admin).Ganti
DB_MasterUserPassworddenganMasterUserPasswordnilai yang diberikan dalam HA Stack RFC (misalnya,p4ssw0rd).Ganti
DB_ENDPOINTdengan nama DNS endpoint dalam output eksekusi HA Stack RFC (misalnya,).srt1cz23n45sfg.clgvd67uvydk.us-east-1.rds.amazonaws.comAnda dapat menemukannya dengan GetRfcoperasi (CLI: get-rfc --rfc-id RFC_ID) atau di halaman detail RFC Konsol AMS untuk HA Stack RFC yang sebelumnya Anda kirimkan.#!/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 Di direktori yang sama buat
install_dependencies.shdengan konten berikut:#!/bin/bash yum install -y php yum install -y php-mysql yum install -y mysql service httpd restartcatatan
HTTPS diinstal sebagai bagian dari data pengguna saat peluncuran untuk memungkinkan pemeriksaan kesehatan berfungsi sejak awal.
Di direktori yang sama buat
start_server.shdengan konten berikut:Untuk instance Amazon Linux, gunakan ini:
#!/bin/bash service httpd startUntuk instance RHEL, gunakan ini (perintah tambahan adalah kebijakan yang memungkinkan SELINUX menerima): 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
Di direktori yang sama buat
stop_server.shdengan konten berikut:#!/bin/bash service httpd stopBuat bundel zip.
Linux:
$ cd /tmp/WordPress $ zip -r wordpress.zip .Windows: Buka direktori "WordPress" Anda dan pilih semua file dan buat file zip, pastikan untuk menamainya wordpress.zip.
Menyebarkan WordPress Application Bundle dengan CodeDeploy
CodeDeploy Ini adalah layanan penerapan AWS yang mengotomatiskan penerapan aplikasi ke instans Amazon. EC2 Bagian dari proses ini melibatkan pembuatan CodeDeploy aplikasi, membuat grup CodeDeploy penyebaran, dan kemudian menyebarkan aplikasi menggunakan. CodeDeploy
Buat CodeDeploy Aplikasi
CodeDeploy Aplikasi ini hanyalah nama atau wadah yang digunakan oleh AWS CodeDeploy untuk memastikan bahwa grup revisi, konfigurasi penerapan, dan penerapan yang benar direferensikan selama penerapan. Konfigurasi penerapan, dalam hal ini, adalah WordPress bundel yang sebelumnya Anda buat.
DATA YANG DIBUTUHKAN:
VpcId: VPC yang Anda gunakan, ini harus sama dengan VPC yang digunakan sebelumnya.CodeDeployApplicationName: Harus unik di akun. Lihat CodeDeploy Konsol untuk memeriksa nama aplikasi yang ada.ChangeTypeIddanChangeTypeVersion: ID tipe perubahan untuk panduan ini adalahct-0ah3gwb9seqk2, untuk mengetahui versi terbaru, jalankan perintah ini:aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=ct-0ah3gwb9seqk2
Output parameter eksekusi skema JSON untuk CodeDeploy aplikasi CT ke file di folder Anda saat ini; contoh nama itu Buat CDApp Params.json.
aws amscm get-change-type-version --change-type-id "ct-0ah3gwb9seqk2" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateCDAppParams.jsonUbah dan simpan file JSON sebagai berikut; Anda dapat menghapus dan mengganti isinya.
{ "Description": "Create WordPress CodeDeploy App", "VpcId": "VPC_ID", "StackTemplateId": "stm-sft6rv00000000000", "Name": "WordPressCDApp", "TimeoutInMinutes": 60, "Parameters": { "CodeDeployApplicationName": "WordPressCDApp" } }Output template JSON untuk CreateRfc ke file di folder Anda saat ini; contoh nama itu Buat CDApp RFC.json.
aws amscm create-rfc --generate-cli-skeleton > CreateCDAppRfc.jsonUbah dan simpan file JSON sebagai berikut; Anda dapat menghapus dan mengganti isinya. Perhatikan bahwa
RequestedStartTimedanRequestedEndTimesekarang opsional; mengecualikan mereka menyebabkan RFC dieksekusi segera setelah disetujui (yang biasanya terjadi secara otomatis). UntukKirim RFC “terjadwal”, tambahkan nilai-nilai tersebut.{ "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-0ah3gwb9seqk2", "Title": "CD-App-For-WP-Stack-RFC" }Buat RFC, tentukan file Create CDApp Rfc dan file parameter eksekusi:
aws amscm create-rfc --cli-input-json file://CreateCDAppRfc.json --execution-parameters file://CreateCDAppParams.jsonAnda menerima ID RFC dari RFC baru dalam tanggapan. Simpan ID untuk langkah selanjutnya.
Kirim RFC:
aws amscm submit-rfc --rfc-idRFC_IDJika RFC berhasil, Anda tidak menerima output.
Kirim RFC:
aws amscm get-rfc --rfc-idRFC_ID
Membuat Grup CodeDeploy Deployment
Buat grup CodeDeploy penyebaran.
Grup CodeDeploy penyebaran mendefinisikan satu set instance individual yang ditargetkan untuk penerapan.
DATA YANG DIBUTUHKAN:
VpcId: VPC yang Anda gunakan, ini harus sama dengan VPC yang digunakan sebelumnya.CodeDeployApplicationName: Gunakan nilai yang Anda buat sebelumnya.CodeDeployAutoScalingGroups: Gunakan nama grup Auto Scaling yang Anda buat sebelumnya.CodeDeployDeploymentGroupName: Nama untuk grup penyebaran. Nama ini harus unik untuk setiap aplikasi yang terkait dengan grup penyebaran.CodeDeployServiceRoleArn: Gunakan rumus yang diberikan dalam contoh.ChangeTypeIddanChangeTypeVersion: ID tipe perubahan untuk panduan ini adalahct-2gd0u847qd9d2, untuk mengetahui versi terbaru, jalankan perintah ini:aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=ct-2gd0u847qd9d2
Output parameter eksekusi skema JSON ke file di folder Anda saat ini; contoh nama itu Buat CDDep GroupParams .json.
aws amscm get-change-type-version --change-type-id "ct-2gd0u847qd9d2" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateCDDepGroupParams.jsonUbah dan simpan file JSON sebagai berikut; Anda dapat menghapus dan mengganti isinya.
{ "Description": "CreateWPCDDeploymentGroup", "VpcId": "VPC_ID", "StackTemplateId": "stm-sp9lrk00000000000", "Name": "WordPressCDAppGroup", "TimeoutInMinutes": 60, "Parameters": { "CodeDeployApplicationName": "WordPressCDApp", "CodeDeployAutoScalingGroups": ["ASG_NAME"], "CodeDeployDeploymentConfigName": "CodeDeployDefault.HalfAtATime", "CodeDeployDeploymentGroupName": "UNIQUE_CDDepGroupNAME", "CodeDeployServiceRoleArn": "arn:aws:iam::ACCOUNT_ID:role/aws-codedeploy-role" } }Output template JSON untuk CreateRfc ke file di folder Anda saat ini; contoh nama itu Create CDDep GroupRfc .json.
aws amscm create-rfc --generate-cli-skeleton > CreateCDDepGroupRfc.jsonUbah dan simpan file JSON sebagai berikut; Anda dapat menghapus dan mengganti isinya. Perhatikan bahwa
RequestedStartTimedanRequestedEndTimesekarang opsional; mengecualikan mereka menyebabkan RFC dieksekusi segera setelah disetujui (yang biasanya terjadi secara otomatis). Untuk mengirimkan RFC “terjadwal”, tambahkan nilai-nilai tersebut.{ "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-2gd0u847qd9d2", "Title": "CD-Dep-Group-For-WP-Stack-RFC" }Buat RFC, tentukan CDDep GroupRfc file Buat dan file parameter eksekusi:
aws amscm create-rfc --cli-input-json file://CreateCDDepGroupRfc.json --execution-parameters file://CreateCDDepGroupParams.jsonAnda menerima ID RFC dari RFC baru dalam tanggapan. Simpan ID untuk langkah selanjutnya.
Kirim RFC:
aws amscm submit-rfc --rfc-idRFC_IDJika RFC berhasil, Anda tidak menerima output.
Periksa status RFC:
aws amscm get-rfc --rfc-idRFC_ID
Unggah WordPress Aplikasi
Anda secara otomatis memiliki akses ke instans bucket S3 apa pun yang Anda buat. Anda dapat mengaksesnya melalui Bastions (lihat Mengakses Instans), atau melalui konsol S3, dan mengunggah bundel. CodeDeploy Bundel harus ada untuk terus menerapkan tumpukan. Contoh menggunakan nama bucket yang dibuat sebelumnya.
aws s3 cp wordpress/wordpress.zip s3://ACCOUNT_ID-codedeploy-bundles/
Menyebarkan WordPress Aplikasi dengan CodeDeploy
Menyebarkan CodeDeploy aplikasi.
Setelah Anda memiliki bundel CodeDeploy aplikasi dan grup penyebaran, gunakan RFC ini untuk menyebarkan aplikasi.
DATA YANG DIBUTUHKAN:
VPC-ID: VPC yang Anda gunakan, ini harus sama dengan VPC yang digunakan sebelumnya.CodeDeployApplicationName: Gunakan nama untuk CodeDeploy aplikasi yang Anda buat sebelumnya.CodeDeployDeploymentGroupName: Gunakan nama grup CodeDeploy penyebaran yang Anda buat sebelumnya.S3Location(tempat Anda mengunggah bundel aplikasi)S3Bucket:: BucketName Yang sebelumnya Anda buat,S3BundleTypedanS3Key: Jenis, dan nama, bundel yang Anda letakkan di toko S3 Anda.ChangeTypeIddanChangeTypeVersion: ID tipe perubahan untuk panduan ini adalahct-2edc3sd1sqmrb, untuk mengetahui versi terbaru, jalankan perintah ini:aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=ct-2edc3sd1sqmrb
Output parameter eksekusi skema JSON untuk CT penerapan CodeDeploy aplikasi ke file di folder Anda saat ini; contoh nama itu Deploy Params.json. CDApp
aws amscm get-change-type-version --change-type-id "ct-2edc3sd1sqmrb" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > DeployCDAppParams.jsonUbah file JSON sebagai berikut; Anda dapat menghapus dan mengganti isinya. Untuk
S3Bucket, gunakanBucketNameyang Anda buat sebelumnya.{ "Description": "Deploy WordPress CodeDeploy Application", "VpcId": "VPC_ID", "Name": "WP CodeDeploy Deployment Group", "TimeoutInMinutes": 60, "Parameters": { "CodeDeployApplicationName": "WordPressCDApp", "CodeDeployDeploymentGroupName": "WordPressCDDepGroup", "CodeDeployIgnoreApplicationStopFailures":false, "CodeDeployRevision": { "RevisionType": "S3", "S3Location": { "S3Bucket": "ACCOUNT_ID.BUCKET_NAME", "S3BundleType": "zip", "S3Key": "wordpress.zip" } } } }Output template JSON untuk CreateRfc ke file di folder Anda saat ini; contoh nama itu Deploy CDApp RFC.json:
aws amscm create-rfc --generate-cli-skeleton > DeployCDAppRfc.jsonUbah dan simpan file Deploy CDApp RFC.json; Anda dapat menghapus dan mengganti isinya.
{ "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-2edc3sd1sqmrb", "Title": "CD-Deploy-For-WP-Stack-RFC", "RequestedStartTime": "2017-04-28T22:45:00Z", "RequestedEndTime": "2017-04-28T22:45:00Z" }Buat RFC, tentukan file parameter eksekusi dan file Deploy CDApp Rfc:
aws amscm create-rfc --cli-input-json file://DeployCDAppRfc.json --execution-parameters file://DeployCDAppParams.jsonAnda menerima RFC baru sebagai tanggapan. RfcId Simpan ID untuk langkah selanjutnya.
Kirim RFC:
aws amscm submit-rfc --rfc-idRFC_IDJika RFC berhasil, Anda tidak menerima output.
Validasi Penerapan Aplikasi
Arahkan ke titik akhir (ELB CName) penyeimbang beban yang dibuat sebelumnya, dengan jalur yang WordPress diterapkan:/. WordPress Misalnya:
http://stack-ID-FOR-ELB.us-east-1.elb.amazonaws.com/WordPress
Meruntuhkan Penerapan Aplikasi
Untuk meruntuhkan penerapan, Anda mengirimkan Delete Stack CT ke tumpukan database RDS, penyeimbang beban aplikasi, grup Auto Scaling, bucket S3, dan aplikasi dan grup Code Deploy - enam secara keseluruhan. RFCs Selain itu, Anda dapat mengirimkan permintaan layanan untuk snapshot RDS yang akan dihapus (mereka dihapus secara otomatis setelah sepuluh hari, tetapi biayanya sedikit saat berada di sana). Kumpulkan tumpukan IDs untuk semua dan kemudian ikuti langkah-langkah ini.
Panduan ini memberikan contoh penggunaan konsol AMS untuk menghapus tumpukan S3; prosedur ini berlaku untuk menghapus tumpukan apa pun menggunakan konsol AMS.
catatan
Jika menghapus ember S3, itu harus dikosongkan dari objek terlebih dahulu.
DATA YANG DIBUTUHKAN:
StackId: Tumpukan untuk digunakan. Anda dapat menemukannya dengan melihat halaman AMS Console Stacks, tersedia melalui tautan di navigasi kiri. Menggunakan AMS SKMS API/CLI, jalankan referensi Untuk AMS SKMS API, lihat tab Laporan di AWS Artifact Console. operasi (di CLI).list-stack-summariesID tipe perubahan untuk panduan ini adalah
ct-0q0bic0ywqk6c, versinya adalah “1.0", untuk mengetahui versi terbaru, jalankan perintah ini:aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=ct-0q0bic0ywqk6c
BUAT SEBARIS:
Keluarkan perintah buat RFC dengan parameter eksekusi yang disediakan sebaris (tanda kutip saat memberikan parameter eksekusi sebaris). E
aws amscm create-rfc --change-type-id "ct-0q0bic0ywqk6c" --change-type-version "1.0" --title "Delete My Stack" --execution-parameters "{\"StackId\":\"STACK_ID\"}"Kirim RFC menggunakan ID RFC yang dikembalikan dalam operasi create RFC. Sampai diserahkan, RFC tetap di
Editingnegara bagian dan tidak ditindaklanjuti.aws amscm submit-rfc --rfc-idRFC_IDPantau status RFC dan lihat output eksekusi:
aws amscm get-rfc --rfc-idRFC_ID
TEMPLATE MEMBUAT:
Keluarkan template RFC ke file di folder Anda saat ini; contoh menamainya DeleteStackRfc .json:
aws amscm create-rfc --generate-cli-skeleton > DeleteStackRfc.jsonUbah dan simpan DeleteStackRfc file.json. Karena menghapus tumpukan hanya memiliki satu parameter eksekusi, parameter eksekusi dapat berada di DeleteStackRfc file.json itu sendiri (tidak perlu membuat file JSON terpisah dengan parameter eksekusi).
Tanda kutip internal dalam ekstensi ExecutionParameters JSON harus diloloskan dengan garis miring terbalik (\). Contoh tanpa waktu mulai dan berakhir:
{ "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-0q0bic0ywqk6c", "Title": "Delete-My-Stack-RFC" "ExecutionParameters": "{ \"StackId\":\"STACK_ID\"}" }Buat RFC:
aws amscm create-rfc --cli-input-json file://DeleteStackRfc.jsonAnda menerima RFC baru sebagai tanggapan. RfcId Misalnya:
{ "RfcId": "daaa1867-ffc5-1473-192a-842f6b326102" }Simpan ID untuk langkah selanjutnya.
Kirim RFC:
aws amscm submit-rfc --rfc-idRFC_IDJika RFC berhasil, Anda tidak menerima konfirmasi di baris perintah.
Untuk memantau status permintaan dan untuk melihat Output Eksekusi:
aws amscm get-rfc --rfc-idRFC_ID--query "Rfc.{Status:Status.Name,Exec:ExecutionOutput}" --output table