

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

# Tutorial: Menerapkan aplikasi ke instans lokal dengan CodeDeploy (Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux)
<a name="tutorials-on-premises-instance"></a>

Tutorial ini membantu Anda mendapatkan pengalaman CodeDeploy dengan memandu Anda melalui penerapan contoh revisi aplikasi ke satu instans lokal — yaitu, perangkat fisik yang bukan instans Amazon EC2 — menjalankan Windows Server, Ubuntu Server, atau Red Hat Enterprise Linux (RHEL). Untuk informasi tentang instans lokal dan cara kerjanya CodeDeploy, lihat. [Bekerja dengan instans lokal untuk CodeDeploy](instances-on-premises.md)

Bukan apa yang Anda cari?
+ Untuk mempraktikkan penerapan ke instans Amazon EC2 yang menjalankan Amazon Linux atau RHEL, lihat. [Tutorial: Terapkan WordPress ke instans Amazon EC2 (Amazon Linux atau Red Hat Enterprise Linux dan Linux, macOS, atau Unix)](tutorials-wordpress.md)
+ Untuk mempraktikkan penerapan ke instans Amazon EC2 yang menjalankan Windows Server, lihat. [Tutorial: Menyebarkan “halo, dunia\$1” aplikasi dengan CodeDeploy (Windows Server)](tutorials-windows.md)

**Topics**
+ [Prasyarat](tutorials-on-premises-instance-prerequisites.md)
+ [Langkah 1: Konfigurasikan instans lokal](tutorials-on-premises-instance-1-configure-instance.md)
+ [Langkah 2: Buat contoh revisi aplikasi](tutorials-on-premises-instance-2-create-sample-revision.md)
+ [Langkah 3: Bundel dan unggah revisi aplikasi Anda ke Amazon S3](tutorials-on-premises-instance-3-bundle-sample-revision.md)
+ [Langkah 4: Terapkan revisi aplikasi Anda](tutorials-on-premises-instance-4-deploy-sample-revision.md)
+ [Langkah 5: Verifikasi penerapan Anda](tutorials-on-premises-instance-5-verify-deployment.md)
+ [Langkah 6: Bersihkan Sumber Daya](tutorials-on-premises-instance-6-clean-up-resources.md)

# Prasyarat
<a name="tutorials-on-premises-instance-prerequisites"></a>

Sebelum Anda memulai tutorial ini, Anda harus menyelesaikan prasyarat di[Memulai dengan CodeDeploy](getting-started-codedeploy.md), yang meliputi mengkonfigurasi pengguna, menginstal atau meningkatkan, dan membuat peran layanan AWS CLI. Anda tidak perlu membuat profil instans IAM seperti yang dijelaskan dalam prasyarat. Instans lokal tidak menggunakan profil instans IAM.

Perangkat fisik yang akan Anda konfigurasikan sebagai instans lokal harus menjalankan salah satu sistem operasi yang tercantum. [Sistem operasi yang didukung oleh CodeDeploy agen](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)

# Langkah 1: Konfigurasikan instans lokal
<a name="tutorials-on-premises-instance-1-configure-instance"></a>

Sebelum dapat menerapkan ke instans lokal, Anda harus mengonfigurasinya. Ikuti instruksi di[Bekerja dengan instans lokal untuk CodeDeploy](instances-on-premises.md), dan kemudian kembali ke halaman ini.

## Instal CodeDeploy agen
<a name="tutorials-on-premises-instance-1-configure-instance-agent"></a>

Setelah mengonfigurasi instans lokal, ikuti langkah-langkah untuk instans lokal di [Instal CodeDeploy agen dan kembali ke halaman ini](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html).

# Langkah 2: Buat contoh revisi aplikasi
<a name="tutorials-on-premises-instance-2-create-sample-revision"></a>

Pada langkah ini, Anda membuat contoh revisi aplikasi untuk diterapkan ke instans lokal Anda. 

Karena sulit untuk mengetahui perangkat lunak dan fitur mana yang sudah terinstal—atau diizinkan untuk diinstal oleh kebijakan organisasi Anda—pada instans lokal Anda, contoh revisi aplikasi yang kami tawarkan di sini hanya menggunakan skrip batch (untuk Windows Server) atau skrip shell (untuk Server Ubuntu dan RHEL) untuk menulis file teks ke lokasi di instans lokal Anda. Satu file ditulis untuk masing-masing dari beberapa peristiwa siklus hidup CodeDeploy penerapan, termasuk **Instal**,, **AfterInstall**, **ApplicationStart**dan. **ValidateService** Selama peristiwa siklus hidup **BeforeInstall**penerapan, skrip akan berjalan untuk menghapus file lama yang ditulis selama penerapan sampel ini sebelumnya dan membuat lokasi pada instance lokal untuk menulis file baru. 

**catatan**  
Contoh revisi aplikasi ini mungkin gagal diterapkan jika salah satu dari berikut ini benar:  
Pengguna yang memulai CodeDeploy agen pada instans lokal tidak memiliki izin untuk mengeksekusi skrip.
Pengguna tidak memiliki izin untuk membuat atau menghapus folder di lokasi yang tercantum dalam skrip.
Pengguna tidak memiliki izin untuk membuat file teks di lokasi yang tercantum dalam skrip.

**catatan**  
Jika Anda mengonfigurasi instance Windows Server dan ingin menyebarkan sampel yang berbeda, Anda mungkin ingin menggunakannya [Langkah 2: Konfigurasikan konten sumber Anda untuk menyebarkan ke instans Windows Server Amazon EC2](tutorials-windows-configure-content.md) di [Tutorial: Menyebarkan “halo, dunia\$1” aplikasi dengan CodeDeploy (Windows Server)](tutorials-windows.md) tutorial.  
Jika Anda mengonfigurasi instance RHEL dan ingin menerapkan sampel yang berbeda, Anda mungkin ingin menggunakan contoh yang ada [Langkah 2: Konfigurasikan konten sumber Anda untuk digunakan ke instans Amazon EC2 Amazon Linux atau Red Hat Enterprise Linux Amazon EC2](tutorials-wordpress-configure-content.md) di [Tutorial: Terapkan WordPress ke instans Amazon EC2 (Amazon Linux atau Red Hat Enterprise Linux dan Linux, macOS, atau Unix)](tutorials-wordpress.md) tutorial.  
Saat ini, tidak ada contoh alternatif untuk Ubuntu Server.

1. Pada mesin pengembangan Anda, buat subdirektori (subfolder) bernama `CodeDeployDemo-OnPrem` yang akan menyimpan file revisi aplikasi sampel, dan kemudian beralih ke subfolder. Untuk contoh ini, kami berasumsi Anda akan menggunakan `c:\temp` folder sebagai folder root untuk Windows Server atau `/tmp` folder sebagai folder root untuk Ubuntu Server dan RHEL. Jika Anda menggunakan folder yang berbeda, pastikan untuk menggantinya dengan folder kami di seluruh tutorial ini: 

   Untuk Windows:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem
   cd c:\temp\CodeDeployDemo-OnPrem
   ```

   Untuk Linux, macOS, atau Unix:

   ```
   mkdir /tmp/CodeDeployDemo-OnPrem
   cd /tmp/CodeDeployDemo-OnPrem
   ```

1. Di root `CodeDeployDemo-OnPrem` subfolder, gunakan editor teks untuk membuat dua file bernama `appspec.yml` dan`install.txt`:

   `appspec.yml`untuk 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`untuk Server Ubuntu dan 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
   ```

   Untuk informasi selengkapnya tentang AppSpec file, lihat [Tambahkan file spesifikasi aplikasi ke revisi untuk CodeDeploy](application-revisions-appspec-file.md) dan[CodeDeploy AppSpec referensi file](reference-appspec-file.md).

   `install.txt`:

   ```
   The Install deployment lifecycle event successfully completed.
   ```

1. Di bawah root `CodeDeployDemo-OnPrem` subfolder, buat `scripts` subfolder, lalu beralih ke sana:

   Untuk Windows:

   ```
   mkdir c:\temp\CodeDeployDemo-OnPrem\scripts
   cd c:\temp\CodeDeployDemo-OnPrem\scripts
   ```

   Untuk Linux, macOS, atau Unix:

   ```
   mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts
   cd /tmp/CodeDeployDemo-OnPrem/scripts
   ```

1. Di root `scripts` subfolder, gunakan editor teks untuk membuat empat file bernama`before-install.bat`,,, dan `validate-service.bat` untuk Windows Server `after-install.bat``application-start.bat`, atau,, `before-install.sh` `after-install.sh``application-start.sh`, dan `validate-service.sh` untuk Ubuntu Server dan RHEL:

   Untuk 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
   ```

   Untuk Server Ubuntu dan 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
   ```

1. Untuk Ubuntu Server dan RHEL saja, pastikan keempat skrip shell memiliki izin eksekusi:

   ```
   chmod +x ./scripts/*
   ```

# Langkah 3: Bundel dan unggah revisi aplikasi Anda ke Amazon S3
<a name="tutorials-on-premises-instance-3-bundle-sample-revision"></a>

Sebelum dapat menerapkan revisi aplikasi, Anda harus menggabungkan file, lalu mengunggah bundel file ke bucket Amazon S3. Ikuti instruksi di [Buat aplikasi dengan CodeDeploy](applications-create.md) dan[Dorong revisi CodeDeploy ke Amazon S3 (hanya penerapan EC2/On-premise)](application-revisions-push.md). (Meskipun Anda dapat memberikan nama aplikasi dan grup penyebaran apa pun, kami sarankan Anda menggunakan `CodeDeploy-OnPrem-App` nama aplikasi dan `CodeDeploy-OnPrem-DG` untuk nama grup penyebaran.) Setelah Anda menyelesaikan instruksi tersebut, kembali ke halaman ini. 

**catatan**  
Atau, Anda dapat mengunggah bundel file ke GitHub repositori dan menyebarkannya dari sana. Untuk informasi selengkapnya, lihat [Integrasi dengan CodeDeploy GitHub](integrations-partners-github.md).

# Langkah 4: Terapkan revisi aplikasi Anda
<a name="tutorials-on-premises-instance-4-deploy-sample-revision"></a>

Setelah mengunggah revisi aplikasi ke bucket Amazon S3, coba terapkan ke instans lokal. Ikuti instruksi di[Buat penerapan dengan CodeDeploy](deployments-create.md), dan kemudian kembali ke halaman ini.

# Langkah 5: Verifikasi penerapan Anda
<a name="tutorials-on-premises-instance-5-verify-deployment"></a>

Untuk memverifikasi penerapan berhasil, ikuti instruksi di[Lihat CodeDeploy detail penerapan](deployments-view-details.md), lalu kembali ke halaman ini.

Jika penyebaran berhasil, Anda akan menemukan empat file teks dalam `c:\temp\CodeDeployExample` folder (untuk Windows Server) atau `/tmp/CodeDeployExample` (untuk Ubuntu Server dan RHEL). 

Jika penerapan gagal, ikuti langkah-langkah pemecahan masalah di dan. [Lihat detail contoh dengan CodeDeploy](instances-view-details.md) [Memecahkan masalah contoh](troubleshooting-ec2-instances.md) Buat perbaikan yang diperlukan, rebundle dan unggah revisi aplikasi Anda, lalu coba penerapan lagi.

# Langkah 6: Bersihkan Sumber Daya
<a name="tutorials-on-premises-instance-6-clean-up-resources"></a>

Untuk menghindari biaya berkelanjutan untuk sumber daya yang Anda buat untuk tutorial ini, hapus bucket Amazon S3 jika Anda tidak lagi menggunakannya. Anda juga dapat membersihkan sumber daya terkait, seperti catatan grup aplikasi dan penyebaran di CodeDeploy dan instans lokal.

Anda dapat menggunakan AWS CLI atau kombinasi konsol Amazon S3 CodeDeploy dan AWS CLI untuk membersihkan sumber daya. 

## Membersihkan sumber daya (CLI)
<a name="tutorials-on-premises-instance-6-clean-up-resources-cli"></a>

**Untuk menghapus bucket Amazon S3**
+ Panggil perintah [rm](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html) bersama dengan `--recursive` sakelar terhadap ember (misalnya,`amzn-s3-demo-bucket`). Ember dan semua benda di ember akan dihapus. 

  ```
  aws s3 rm s3://your-bucket-name --recursive --region region
  ```

**Untuk menghapus catatan grup aplikasi dan penyebaran di CodeDeploy**
+ Panggil perintah [hapus-aplikasi](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) terhadap aplikasi (misalnya,`CodeDeploy-OnPrem-App`). Catatan untuk grup penyebaran dan penyebaran akan dihapus. 

  ```
  aws deploy delete-application --application-name your-application-name
  ```<a name="tutorials-on-premises-instance-6-clean-up-resources-deregister-cli"></a>

**Untuk membatalkan pendaftaran instans lokal dan menghapus pengguna IAM**
+ Panggil perintah [deregister](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html) terhadap instance dan wilayah lokal:

  ```
  aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region
  ```
**catatan**  
Jika Anda tidak ingin menghapus pengguna IAM yang terkait dengan instans lokal ini, gunakan `--no-delete-iam-user` opsi sebagai gantinya.

**Untuk menghapus instalan CodeDeploy agen dan menghapus file konfigurasi dari instans lokal**
+ Dari instance lokal, panggil perintah [uninstall](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html):

  ```
  aws deploy uninstall
  ```

Anda sekarang telah menyelesaikan semua langkah untuk membersihkan sumber daya yang digunakan untuk tutorial ini.

## Bersihkan sumber daya (konsol)
<a name="tutorials-on-premises-instance-6-clean-up-resources-console"></a>

**Untuk menghapus bucket Amazon S3**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Pilih ikon di sebelah ember yang ingin Anda hapus (misalnya,`amzn-s3-demo-bucket`), tetapi jangan memilih ember itu sendiri.

1. Pilih **Tindakan**, lalu pilih **Hapus**. 

1. Saat diminta untuk menghapus ember, pilih **OK**. 

**Untuk menghapus catatan grup aplikasi dan penyebaran di CodeDeploy**

1. Masuk ke Konsol Manajemen AWS dan buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**catatan**  
Masuk dengan pengguna yang sama dengan yang Anda atur[Memulai dengan CodeDeploy](getting-started-codedeploy.md).

1. Di panel navigasi pilih **Aplikasi**.

1. Pilih nama aplikasi yang ingin Anda hapus (misalnya,`CodeDeploy-OnPrem-App`) dan kemudian pilih **Hapus aplikasi**.

1. Saat diminta, masukkan nama aplikasi untuk mengonfirmasi bahwa Anda ingin menghapusnya, lalu pilih **Hapus**. 

Anda tidak dapat menggunakan AWS CodeDeploy konsol untuk membatalkan pendaftaran instans lokal atau menghapus instalan agen. CodeDeploy Ikuti petunjuk dalam [Untuk membatalkan pendaftaran instans lokal dan menghapus pengguna IAM](#tutorials-on-premises-instance-6-clean-up-resources-deregister-cli).