Langkah 2: Konfigurasikan konten sumber Anda untuk disebarkan ke instans Amazon Linux atau Red Hat Enterprise Linux Amazon EC2 - AWS CodeDeploy

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Langkah 2: Konfigurasikan konten sumber Anda untuk disebarkan ke instans Amazon Linux atau Red Hat Enterprise Linux Amazon EC2

Sekarang saatnya untuk mengonfigurasi konten sumber aplikasi Anda sehingga Anda memiliki sesuatu untuk diterapkan ke instance.

Dapatkan kode sumbernya

Untuk tutorial ini, Anda menerapkan platform penerbitan WordPress konten dari mesin pengembangan Anda ke EC2 instans Amazon target. Untuk mendapatkan kode WordPress sumber, Anda dapat menggunakan panggilan baris perintah bawaan. Atau, jika Anda telah menginstal Git di mesin pengembangan Anda, Anda dapat menggunakannya sebagai gantinya.

Untuk langkah-langkah ini, kami berasumsi Anda mengunduh salinan kode WordPress sumber ke /tmp direktori di mesin pengembangan Anda. (Anda dapat memilih direktori apa pun yang Anda suka, tetapi ingat untuk mengganti lokasi Anda /tmp di mana pun itu ditentukan dalam langkah-langkah ini.)

Pilih salah satu dari dua opsi berikut untuk menyalin file WordPress sumber ke mesin pengembangan Anda. Opsi pertama menggunakan panggilan baris perintah bawaan. Opsi kedua menggunakan Git.

Untuk mendapatkan salinan kode WordPress sumber (panggilan baris perintah bawaan)

  1. Panggil wget perintah untuk mengunduh salinan kode WordPress sumber, sebagai file.zip, ke direktori saat ini:

    wget https://github.com/WordPress/WordPress/archive/master.zip
  2. Panggilunzip,mkdir,cp, dan rm perintah untuk:

    • Buka paket master file.zip ke dalam /tmp/WordPress_Temp direktori (folder).

    • Salin isinya yang tidak di-zip ke folder /tmp/WordPress tujuan.

    • Hapus /tmp/WordPress_Temp folder dan master file sementara.

    Jalankan perintah satu per satu:

    unzip master -d /tmp/WordPress_Temp
    mkdir -p /tmp/WordPress
    cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
    rm -rf /tmp/WordPress_Temp
    rm -f master

    Ini meninggalkan Anda dengan satu set file kode WordPress sumber yang bersih di /tmp/WordPress folder.

Untuk mendapatkan salinan kode WordPress sumber (Git)

  1. Unduh dan instal Git di mesin pengembangan Anda.

  2. Di /tmp/WordPress folder, panggil git init perintah.

  3. Panggil git clone perintah untuk mengkloning WordPress repositori publik, buat salinannya sendiri di folder tujuan: /tmp/WordPress

    git clone https://github.com/WordPress/WordPress.git /tmp/WordPress

    Ini meninggalkan Anda dengan satu set file kode WordPress sumber yang bersih di /tmp/WordPress folder.

Buat skrip untuk menjalankan aplikasi Anda

Selanjutnya, buat folder dan skrip di direktori. CodeDeploy menggunakan skrip ini untuk menyiapkan dan menerapkan revisi aplikasi Anda pada instans Amazon target. EC2 Anda dapat menggunakan editor teks apa pun untuk membuat skrip.

  1. Buat direktori skrip dalam salinan kode WordPress sumber Anda:

    mkdir -p /tmp/WordPress/scripts
  2. Buat install_dependencies.sh file di/tmp/WordPress/scripts. Tambahkan baris berikut ke file. install_dependencies.shScript ini menginstal Apache, MySQL, dan. PHP Ini juga menambah SQL dukungan sayaPHP.

    #!/bin/bash sudo amazon-linux-extras install php7.4 sudo yum install -y httpd mariadb-server php
  3. Buat start_server.sh file di/tmp/WordPress/scripts. Tambahkan baris berikut ke file. start_server.shSkrip ini dimulai Apache dan MySQL.

    #!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service
  4. Buat stop_server.sh file di/tmp/WordPress/scripts. Tambahkan baris berikut ke file. stop_server.shSkrip ini menghentikan Apache dan MySQL.

    #!/bin/bash isExistApp="pgrep httpd" if [[ -n $isExistApp ]]; then systemctl stop httpd.service fi isExistApp=pgrep mysqld if [[ -n $isExistApp ]]; then systemctl stop mariadb.service fi isExistApp=pgrep php-fpm if [[ -n $isExistApp ]]; then systemctl stop php-fpm.service fi
  5. Buat create_test_db.sh file di/tmp/WordPress/scripts. Tambahkan baris berikut ke file. create_test_db.shSkrip ini menggunakan My SQL untuk membuat test database WordPress untuk digunakan.

    #!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB
  6. Akhirnya, buat change_permissions.sh skrip di/tmp/WordPress/scripts. Ini digunakan untuk mengubah izin folder di Apache.

    penting

    Skrip ini memperbarui izin pada /tmp/WordPress folder sehingga siapa pun dapat menulis ke sana. Ini diperlukan agar WordPress dapat menulis ke database-nya selamaLangkah 5: Perbarui dan terapkan ulang aplikasi Anda WordPress . Setelah WordPress aplikasi diatur, jalankan perintah berikut untuk memperbarui izin ke pengaturan yang lebih aman:

    chmod -R 755 /var/www/html/WordPress
    #!/bin/bash chmod -R 777 /var/www/html/WordPress
  7. Berikan semua skrip izin yang dapat dieksekusi. Pada baris perintah, ketik:

    chmod +x /tmp/WordPress/scripts/*

Tambahkan file spesifikasi aplikasi

Selanjutnya, tambahkan file spesifikasi aplikasi (AppSpec file), file YAML-format yang digunakan oleh CodeDeploy untuk:

  • Petakan file sumber dalam revisi aplikasi Anda ke tujuan mereka pada EC2 instans Amazon target.

  • Tentukan izin khusus untuk file yang digunakan.

  • Tentukan skrip yang akan dijalankan pada EC2 instans Amazon target selama penerapan.

AppSpec File harus diberi namaappspec.yml. Itu harus ditempatkan di direktori root kode sumber aplikasi. Dalam tutorial ini, direktori root adalah /tmp/WordPress

Dengan editor teks Anda, buat file bernamaappspec.yml. Tambahkan baris berikut ke file:

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/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

CodeDeploy menggunakan AppSpec file ini untuk menyalin semua file dalam /tmp/WordPress folder pada mesin pengembangan ke /var/www/html/WordPress folder pada EC2 instance Amazon target. Selama penerapan, CodeDeploy jalankan skrip yang ditentukan seperti pada /var/www/html/WordPress/scripts folder root pada EC2 instans Amazon target pada peristiwa tertentu selama siklus hidup penerapan, seperti dan. BeforeInstall AfterInstall Jika salah satu skrip ini membutuhkan waktu lebih dari 300 detik (5 menit) untuk dijalankan, CodeDeploy hentikan penerapan dan tandai penerapan sebagai gagal.

Untuk informasi selengkapnya tentang pengaturan ini, lihatCodeDeploy AppSpec referensi berkas.

penting

Lokasi dan jumlah spasi antara masing-masing item dalam file ini penting. Jika spasi salah, CodeDeploy memunculkan kesalahan yang mungkin sulit untuk di-debug. Untuk informasi selengkapnya, lihat AppSpec Spasi file.