View a markdown version of this page

Tutorial: Konfigurasikan pelari CodeBuild-hosted Buildkite - AWS CodeBuild

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

Tutorial: Konfigurasikan pelari CodeBuild-hosted Buildkite

Tutorial ini menunjukkan cara mengkonfigurasi CodeBuild proyek Anda untuk menjalankan pekerjaan Buildkite. Untuk informasi lebih lanjut tentang menggunakan Buildkite dengan lihat. CodeBuild Self-managed Buildkite runner di AWS CodeBuild

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:

  • Memiliki akses ke organisasi Buildkite. Untuk informasi lebih lanjut tentang menyiapkan akun dan organisasi Buildkite, Anda dapat mengikuti Tutorial Mem ulai ini.

  • Buat pipeline, cluster, dan antrian Buildkite yang dikonfigurasi untuk menggunakan pelari yang di-host sendiri. Untuk informasi selengkapnya tentang menyiapkan sumber daya ini, Anda dapat merujuk Tutorial Pengaturan Pipeline Buildkite.

    Bangun proyek di Buildkite

Langkah 1: Hasilkan token agen Buildkite

Pada langkah ini, Anda akan menghasilkan token agen dalam Buildkite yang akan digunakan untuk mengotentikasi pelari yang di-host sendiri. CodeBuild Untuk informasi selengkapnya tentang sumber daya ini, lihat Token A gen Buildkite.

Untuk menghasilkan token agen Buildkite
  1. Di cluster Buildkite Anda, pilih Token Agen, lalu pilih Token Baru.

  2. Tambahkan deskripsi ke token dan klik Buat Token.

  3. Simpan nilai token agen, karena akan digunakan nanti selama pengaturan CodeBuild proyek.

    Token agen di Buildkite

Langkah 2: Buat CodeBuild proyek dengan webhook

Untuk membuat CodeBuild proyek dengan webhook
  1. Buka AWS CodeBuild konsol di https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Buat proyek build yang di-host sendiri. Untuk informasi selengkapnya, lihat Membuat proyek build (konsol) dan Jalankan build (konsol).

    • Di konfigurasi proyek, pilih proyek Runner. Dalam Pelari:

      • Untuk penyedia Runner, pilih Buildkite.

      • Untuk token agen Buildkite, pilih Buat token agen baru dengan menggunakan halaman buat rahasia. Anda akan diminta untuk membuat rahasia baru dengan nilai rahasia sama AWS Secrets Manager dengan token agen Buildkite yang Anda buat di atas.

      • (Opsional) Jika Anda ingin menggunakan kredenSIAL ter CodeBuild kelola untuk pekerjaan Anda, pilih penyedia repositori sumber pekerjaan Anda di bawah opsi kredensi sumber Buildkite dan verifikasi bahwa kredenSIAL telah dikonfigurasi untuk akun Anda. Selain itu, verifikasi bahwa pipeline Buildkite Anda menggunakan Checkout menggunakan HTTPS.

      catatan

      Buildkite memerlukan kredentif sumber dalam lingkungan build untuk menarik sumber untuk pekerjaan Anda. Lihat Mengautentikasi Buildkite ke Repositori Pribadi opsi kredensi sumber yang tersedia.

    • (Opsional) Di Lingkungan:

      • Pilih gambar Lingkungan yang didukung dan Compute.

        Perhatikan bahwa Anda memiliki opsi untuk mengganti pengaturan gambar dan instance dengan menggunakan label dalam langkah-langkah YAML Buildkite Anda. Untuk informasi selengkapnya, lihat Langkah 4: Perbarui langkah-langkah pipeline Buildkite Anda.

    • (Opsional) Dalam Buildspec:

      • Buildspec Anda akan diabaikan secara default kecuali buildspec-override: "true" ditambahkan sebagai label. Sebagai gantinya, CodeBuild akan mengesampingkannya untuk menggunakan perintah yang akan mengatur pelari yang di-host sendiri.

        catatan

        CodeBuild tidak mendukung file buildspec untuk build pelari yang di-host sendiri Buildkite. Untuk buildspecs sebaris, Anda harus mengaktifkan git-credential-helper di buildspec Anda jika Anda telah mengonfigurasi kredentif sumber terkelola CodeBuild

  3. Lanjutkan dengan nilai default dan kemudian pilih Buat proyek build.

  4. Simpan URL Payload dan nilai Rahasia dari popup Buat Webhook. Ikuti instruksi di popup untuk membuat webhook organisasi Buildkite baru atau lanjutkan ke bagian berikutnya.

Langkah 3: Buat CodeBuild webhook dalam Buildkite

Pada langkah ini, Anda akan menggunakan URL Payload dan nilai Rahasia dari CodeBuild webhook untuk membuat webhook baru di Buildkite. Webhook ini akan digunakan untuk memicu build di dalam CodeBuild ketika pekerjaan Buildkite yang valid dimulai.

Untuk membuat webhook baru di Buildkite
  1. Buka halaman Pengaturan organisasi Buildkite Anda.

  2. Di bawah Integrasi, pilih Layanan Pem beritahuan.

  3. Pilih Tambahkan di sebelah kotak Webhook. Di halaman Add Webhook Notification, gunakan konfigurasi berikut:

    1. Di bawah Webhook URL, tambahkan nilai URL Payload yang disimpan.

    2. Di bawah Token, verifikasi bahwa Kirim token X-Buildkite-Token sebagaimana dipilih. Tambahkan nilai Rahasia webhook Anda ke bidang Token.

    3. Di bawah, verifikasi bahwa Kirim token X-Buildkite-Token sebagaimana dipilih. Tambahkan nilai Rahasia webhook Anda ke bidang Token.

    4. Di bawah A cara, pilih acara job.scheduled webhook.

    5. (Opsional) Di bawah Pipelines, Anda dapat secara opsional memilih untuk hanya memicu build untuk pipeline tertentu.

  4. Pilih Tambahkan Pemberitahuan Webhook.

Langkah 4: Perbarui langkah-langkah pipeline Buildkite Anda

Pada langkah ini, perbarui langkah-langkah pipeline Buildkite Anda untuk menambahkan label yang diperlukan dan penggantian opsional. Untuk daftar lengkap penggantian label yang didukung, lihatPenggantian label didukung dengan pelari CodeBuild-hosted Buildkite.

Perbarui langkah-langkah pipeline Anda
  1. Buka halaman langkah pipeline Buildkite dengan memilih pipeline Buildkite Anda, memilih Peng aturan, dan kemudian memilih Langkah.

    Jika Anda belum melakukannya, pilih langkah Konversi ke YAML.

    Langkah-langkah untuk memperbarui YAML.
  2. Minimal, Anda harus menentukan tag agen Buildkite yang mereferensikan nama pipeline Anda. CodeBuild Nama proyek diperlukan untuk menautkan pengaturan AWS terkait pekerjaan Buildkite Anda ke proyek tertentu. CodeBuild Dengan menyertakan nama proyek di YAML, CodeBuild diizinkan untuk memanggil pekerjaan dengan pengaturan proyek yang benar.

    agents: project: "codebuild-<project name>"

    Berikut ini adalah contoh langkah-langkah pipeline Buildkite hanya dengan tag label proyek:

    agents: project: "codebuild-myProject" steps: - command: "echo \"Hello World\""

    Anda juga dapat mengganti gambar dan tipe komputasi Anda di label. Lihat Hitung gambar yang didukung dengan CodeBuild-hosted Buildkite runner untuk daftar gambar yang tersedia. Jenis komputasi dan gambar dalam label akan menggantikan pengaturan lingkungan pada proyek Anda. Untuk mengganti setelan lingkungan Anda untuk build komputasi CodeBuild EC2 atau Lambda, gunakan sintaks berikut:

    agents: project: "codebuild-<project name>" image: "<environment-type>-<image-identifier>" instance-size: "<instance-size>"

    Berikut ini adalah contoh langkah-langkah pipeline Buildkite dengan penggantian ukuran gambar dan instance:

    agents: project: "codebuild-myProject" image: "arm-3.0" instance-size: "small" steps: - command: "echo \"Hello World\""

    Anda dapat mengganti armada yang digunakan untuk build Anda di label. Ini akan mengganti pengaturan armada yang dikonfigurasi pada proyek Anda untuk menggunakan armada yang ditentukan. Untuk informasi selengkapnya, lihat Menjalankan build pada armada kapasitas cadangan.

    Untuk mengganti setelan armada Anda untuk build komputasi Amazon EC2, gunakan sintaks berikut:

    agents: project: "codebuild-<project name>" fleet: "<fleet-name>"

    Untuk mengganti armada dan gambar yang digunakan untuk build, gunakan sintaks berikut:

    agents: project: "codebuild-<project name>" fleet: "<fleet-name>" image: "<environment-type>-<image-identifier>"

    Berikut ini adalah contoh langkah-langkah pipeline Buildkite dengan armada dan penggantian gambar:

    agents: project: "codebuild-myProject" fleet: "myFleet" image: "arm-3.0" steps: - command: "echo \"Hello World\""
  3. Anda dapat memilih untuk menjalankan perintah buildspec sebaris selama build Buildkite runner yang di-host sendiri (lihat untuk detail selengkapnya). Jalankan perintah buildspec untuk fase INSTALL, PRE_BUILD, dan POST_BUILD Untuk menentukan bahwa CodeBuild build harus menjalankan perintah buildspec selama build runner yang di-host sendiri Buildkite, gunakan sintaks berikut:

    agents: project: "codebuild-<project name>" buildspec-override: "true"

    Berikut ini adalah contoh pipeline Buildkite dengan penggantian buildspec:

    agents: project: "codebuild-myProject" buildspec-override: "true" steps: - command: "echo \"Hello World\""
  4. Secara opsional, Anda dapat memberikan label di luar label yang CodeBuild mendukung. Label ini akan diabaikan untuk tujuan mengganti atribut build, tetapi tidak akan gagal dalam permintaan webhook. Misalnya, menambahkan myLabel: "testLabel" sebagai label tidak akan mencegah build berjalan.

Langkah 5: Tinjau hasil Anda

Setiap kali pekerjaan Buildkite dimulai di pipeline Anda, CodeBuild akan menerima acara webhook melalui job.scheduled webhook Buildkite. Untuk setiap pekerjaan di build Buildkite Anda, CodeBuild akan memulai build untuk menjalankan pelari Buildkite sementara. Pelari bertanggung jawab untuk menjalankan satu pekerjaan Buildkite. Setelah pekerjaan selesai, runner dan proses build terkait akan segera dihentikan.

Untuk melihat log pekerjaan alur kerja Anda, navigasikan ke pipeline Buildkite Anda dan pilih build terbaru (Anda dapat memicu build baru dengan memilih New Build). Setelah CodeBuild build terkait untuk setiap pekerjaan Anda dimulai dan mengambil pekerjaan, Anda akan melihat log untuk pekerjaan tersebut di dalam konsol Buildkite

Tinjau hasil.

Mengautentikasi Buildkite ke Repositori Pribadi

Jika Anda memiliki repositori pribadi yang dikonfigurasi dalam pipeline Buildkite Anda, Buildkite memerlukan izin tambahan dalam lingkungan build untuk menarik repositori, karena Buildkite tidak menjual kredenSIAL kepada pelari yang di-host sendiri untuk ditarik dari repositori pribadi. Untuk mengotentikasi agen pelari yang di-host sendiri Buildkite ke repositori sumber pribadi eksternal Anda, Anda dapat menggunakan salah satu opsi berikut.

Untuk mengotentikasi dengan CodeBuild

CodeBuild menawarkan penanganan kredensional terkelola untuk jenis sumber yang didukung. Untuk menggunakan kreden CodeBuild tif sumber untuk menarik repositori sumber pekerjaan Anda, Anda dapat menggunakan langkah-langkah berikut:

  1. Di CodeBuild konsol, navigasikan ke Edit proyek atau buat CodeBuild proyek baru menggunakan langkah-langkah diLangkah 2: Buat CodeBuild proyek dengan webhook.

  2. Di bawah opsi kredensi sumber Buildkite, pilih penyedia repositori sumber pekerjaan Anda.

    1. Jika Anda ingin menggunakan CodeBuild kredenSIAL tingkat akun, verifikasi bahwa kredenSIAL tersebut dikonfigurasi dengan benar. Selain itu, jika proyek Anda memiliki buildspec inline yang dikonfigurasi, verifikasi bahwa git -credential-helper diaktifkan.

    2. Jika Anda ingin menggunakan CodeBuild kredenSIAL tingkat proyek, pilih Gunakan kredenSIAL override hanya untuk proyek ini dan atur kredenSIAL untuk proyek Anda.

  3. Dalam pengaturan pipeline Buildkite Anda, navigasikan ke Pengaturan Repositori. Mengatur setelan checkout repositori sumber Anda ke Checkout menggunakan HTTPS

    Tinjau hasil.
Untuk mengotentikasi dengan rahasia Buildkite

Buildkite memelihara plugin ssh-checkout yang dapat digunakan untuk mengotentikasi pelari yang di-host sendiri ke repositori sumber eksternal menggunakan kunci ssh. Nilai kunci disimpan sebagai rahasia Buildkite dan diambil secara otomatis oleh agen pelari yang di-host sendiri Buildkite saat mencoba menarik repositori pribadi. Untuk mengkonfigurasi plugin ssh-checkout untuk pipeline Buildkite Anda, Anda dapat menggunakan langkah-langkah berikut:

  1. Buat kunci ssh pribadi dan publik menggunakan alamat email Anda mis. ssh-keygen -t rsa -b 4096 -C "myEmail@address.com"

  2. Tambahkan kunci publik ke repositori sumber pribadi Anda. Misalnya, Anda dapat mengikuti panduan ini untuk menambahkan kunci ke GitHub akun.

  3. Tambahkan rahasia kunci SSH baru ke cluster Buildkite Anda. Di dalam cluster Buildkite Anda, pilih Rahasia Rahasia Baru. Tambahkan nama untuk rahasia Anda di bidang K unci dan tambahkan kunci SSH pribadi Anda ke bidang Nilai:

    Tinjau hasil.
  4. Dalam pipeline Buildkite Anda, navigasikan ke pengaturan repositori Anda dan atur checkout untuk menggunakan SSH.

    Tinjau hasil.
  5. Perbarui langkah-langkah YAML pipeline Anda untuk menggunakan git-ssh-checkout plugin. Misalnya, file YAML pipeline berikut menggunakan tindakan checkout dengan kunci rahasia Buildkite di atas:

    agents: project: "codebuild-myProject" steps: - command: "npm run build" plugins: - git-ssh-checkout#v0.4.1: ssh-secret-key-name: 'SOURCE_SSH_KEY'
  6. Saat menjalankan pekerjaan pelari yang di-host sendiri Buildkite di dalamnya CodeBuild, Buildkite sekarang akan secara otomatis menggunakan nilai rahasia yang Anda konfigurasi saat menarik repositori pribadi Anda

Opsi konfigurasi pelari

Anda dapat menentukan variabel lingkungan berikut dalam konfigurasi proyek Anda untuk mengubah konfigurasi penyiapan pelari yang dihosting sendiri:

  • CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN: CodeBuild akan mengambil nilai rahasia yang dikonfigurasi sebagai nilai variabel lingkungan ini untuk mendaftarkan agen pel AWS Secrets Manager ari yang di-host sendiri Buildkite. Variabel lingkungan ini harus tipeSECRETS_MANAGER, dan nilainya harus berupa nama rahasia Anda di Secrets Manager. Variabel lingkungan token agen Buildkite diperlukan untuk semua proyek pelari Buildkite.

  • CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE: Secara default, CodeBuild akan memuat kredenSIAL sumber tingkat akun atau proyek ke lingkungan build, karena kredenSIAL ini digunakan oleh agen Buildkite untuk menarik repositori sumber pekerjaan. Untuk menonaktifkan perilaku ini, Anda dapat menambahkan variabel lingkungan ini ke proyek Anda dengan nilai yang ditetapkan ketrue, yang akan mencegah kredentif sumber dimuat ke lingkungan build.