Buat pipeline dan AMI menggunakan CodePipeline dan HashiCorp Packer - AWS Prescriptive Guidance

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

Buat pipeline dan AMI menggunakan CodePipeline dan HashiCorp Packer

Akash Kumar, Amazon Web Services

Ringkasan

Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya

Pola ini menyediakan contoh kode dan langkah-langkah untuk membuat pipeline di Amazon Web Services (AWS) Cloud dengan menggunakan AWS CodePipeline dan Amazon Machine Image (AMI) dengan menggunakan HashiCorp Packer. Pola ini didasarkan pada praktik integrasi berkelanjutan, yang mengotomatiskan pembuatan dan pengujian kode dengan sistem kontrol versi berbasis Git. Dalam pola ini, Anda membuat dan mengkloning repositori kode dengan menggunakan AWS. CodeCommit Kemudian, buat proyek dan konfigurasikan kode sumber Anda dengan menggunakan AWS CodeBuild. Terakhir, buat AMI yang akan berkomitmen ke repositori Anda.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • AMI Amazon Linux untuk meluncurkan instans Amazon Elastic Compute Cloud (Amazon EC2)

  • HashiCorp Packer 0.12.3 atau yang lebih baru

  • CloudWatch Acara Amazon (opsional)

  • Amazon CloudWatch Log (opsional)

Arsitektur

Diagram berikut menunjukkan contoh kode aplikasi yang mengotomatiskan pembuatan AMI dengan menggunakan arsitektur pola ini.

Otomatiskan pembuatan AMI.

Diagram menunjukkan alur kerja berikut:

  1. Pengembang melakukan perubahan kode ke CodeCommit repositori Git pribadi. Kemudian, CodePipeline gunakan CodeBuild untuk memulai build dan menambahkan artefak baru yang siap digunakan ke bucket Amazon Simple Storage Service (Amazon S3).

  2. CodeBuild menggunakan Packer untuk menggabungkan dan mengemas AMI berdasarkan template JSON. Jika diaktifkan, CloudWatch Peristiwa dapat secara otomatis memulai pipeline ketika terjadi perubahan pada kode sumber.

Tumpukan teknologi

  • CodeBuild

  • CodeCommit

  • CodePipeline

  • CloudWatch Acara (opsional)

Alat

  • AWS CodeBuild — AWS CodeBuild adalah layanan build yang dikelola sepenuhnya di cloud. CodeBuild mengkompilasi kode sumber Anda, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.

  • AWS CodeCommit — AWS CodeCommit adalah layanan kontrol versi yang memungkinkan Anda menyimpan dan mengelola repositori Git secara pribadi di AWS Cloud. CodeCommit menghilangkan kebutuhan bagi Anda untuk mengelola sistem kontrol sumber Anda sendiri atau khawatir tentang skala infrastrukturnya.

  • AWS CodePipeline — AWS CodePipeline adalah layanan pengiriman berkelanjutan yang dapat Anda gunakan untuk memodelkan, memvisualisasikan, dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perangkat lunak Anda.

  • HashiCorp Packer — HashiCorp Packer adalah alat open-source untuk mengotomatisasi pembuatan gambar mesin identik dari konfigurasi sumber tunggal. Packer ringan, berjalan pada setiap sistem operasi utama, dan menciptakan gambar mesin untuk beberapa platform secara paralel.

Kode

Pola ini mencakup lampiran berikut:

  • buildspec.yml— File ini digunakan CodeBuild untuk membangun dan membuat artefak untuk penyebaran.

  • amazon-linux_packer-template.json— File ini menggunakan Packer untuk membuat AMI Amazon Linux.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat repositori.

Buat CodeCommit repositori.

Administrator sistem AWS

Kloning repositori.

Connect ke CodeCommit repositori dengan mengkloning repositori.

Pengembang aplikasi

Dorong kode sumber ke repositori jarak jauh.

  1. Buat komit untuk menambahkan amazon-linux_packer-template.json file buildspec.yml dan ke repositori lokal Anda.

  2. Dorong komit dari repositori lokal Anda ke repositori jarak jauh CodeCommit .

Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Buat proyek build.

  1. Masuk ke konsol AWS Management, buka CodeBuild konsol AWS, lalu pilih Buat proyek build.

  2. Untuk nama Proyek, masukkan nama proyek Anda.

  3. Untuk penyedia Sumber, pilih AWS CodeCommit.

  4. Untuk Repositori, pilih repositori tempat Anda ingin membangun pipeline kode.

  5. Untuk gambar Lingkungan, pilih Gambar terkelola atau Gambar khusus.

  6. Untuk Sistem operasi, pilih Ubuntu.

  7. Untuk RunTime(s), pilih Standar.

  8. Untuk Gambar, pilih:4.0aws/codebuild/standard.

  9. Untuk versi Gambar, pilih Selalu gunakan gambar terbaru untuk versi runtime ini.

  10. Untuk Lingkungan, pilih Linux.

  11. Pilih kotak centang Privileged.

  12. Untuk peran Layanan, pilih Peran layanan baru atau Peran layanan yang ada.

  13. Untuk spesifikasi Build, pilih Use a buildspec file atau Insert build command.

  14. (Opsional) Untuk Jenis di bagian Artefak, pilih Tidak ada artefak.

  15. (Disarankan) Untuk mengunggah log keluaran build ke CloudWatch Log, pilih CloudWatch log.

  16. (Opsional) Untuk mengunggah log keluaran build ke Amazon S3, pilih kotak centang log S3.

  17. Pilih Buat proyek build.

Pengembang aplikasi, administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Nama pipa

  1. Masuk ke konsol AWS Management, buka CodePipeline konsol AWS, lalu pilih Buat pipeline.

  2. Untuk nama Pipeline, masukkan nama untuk pipeline.

  3. Untuk peran Layanan, pilih Peran layanan baru atau Peran layanan yang ada.

  4. Untuk Nama peran, masukkan nama peran Anda.

  5. Di bagian Pengaturan lanjutan, untuk penyimpanan Artifact, pilih Lokasi default jika Anda ingin Amazon S3 membuat bucket dan menyimpan artefak di bucket. Untuk menggunakan bucket S3 yang ada, pilih Lokasi kustom. Pilih Berikutnya.

  6. Untuk penyedia Sumber, pilih AWS CodeCommit.

  7. Untuk nama Repositori, pilih repositori yang Anda kloning sebelumnya. Untuk nama Branch, pilih cabang kode sumber Anda.

  8. Untuk opsi deteksi Ubah, pilih CloudWatch Acara Amazon (disarankan) untuk memulai pipeline atau AWS CodePipeline untuk memeriksa perubahan secara berkala. Pilih Berikutnya.

  9. Untuk penyedia Build, pilih AWS CodeBuild.

  10. Untuk Nama Proyek, pilih proyek build yang Anda buat di epik Buat CodeBuild proyek untuk aplikasi.

  11. Pilih opsi build, lalu pilih Next.

  12. Pilih Lewati tahap penerapan.

  13. Pilih Buat pipeline.

Pengembang aplikasi, administrator sistem AWS

Sumber daya terkait

Lampiran

Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip