Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Buat pipeline empat tahap
Sekarang setelah Anda membuat pipeline pertama di Tutorial: Buat pipeline sederhana (ember S3) atauTutorial: Buat pipeline sederhana (CodeCommitrepositori), Anda dapat mulai membuat pipeline yang lebih kompleks. Tutorial ini akan memandu Anda melalui pembuatan pipeline empat tahap yang menggunakan GitHub repositori untuk sumber Anda, server build Jenkins untuk membangun proyek, dan CodeDeploy aplikasi untuk menyebarkan kode yang dibangun ke server pementasan. Diagram berikut menunjukkan pipa tiga tahap awal.

Setelah pipeline dibuat, Anda akan mengeditnya untuk menambahkan tahap dengan tindakan pengujian untuk menguji kode, juga menggunakan Jenkins.
Sebelum Anda dapat membuat pipeline ini, Anda harus mengkonfigurasi sumber daya yang diperlukan. Misalnya, jika Anda ingin menggunakan GitHub repositori untuk kode sumber Anda, Anda harus membuat repositori sebelum Anda dapat menambahkannya ke pipeline. Sebagai bagian dari pengaturan, tutorial ini memandu Anda melalui pengaturan Jenkins pada sebuah EC2 instance untuk tujuan demonstrasi.
penting
Banyak tindakan yang Anda tambahkan ke pipeline dalam prosedur ini melibatkan AWS sumber daya yang perlu Anda buat sebelum membuat pipeline. AWS sumber daya untuk tindakan sumber Anda harus selalu dibuat di AWS Wilayah yang sama tempat Anda membuat pipeline. Misalnya, jika Anda membuat pipeline di Wilayah AS Timur (Ohio), CodeCommit repositori Anda harus berada di Wilayah AS Timur (Ohio).
Anda dapat menambahkan tindakan lintas wilayah saat membuat pipeline. AWS sumber daya untuk tindakan lintas wilayah harus berada di AWS Wilayah yang sama di mana Anda berencana untuk menjalankan tindakan. Untuk informasi selengkapnya, lihat Menambahkan tindakan Lintas wilayah di CodePipeline.
penting
Sebagai bagian dari pembuatan pipa, ember artefak S3 yang disediakan oleh pelanggan akan digunakan CodePipeline untuk artefak. (Ini berbeda dari bucket yang digunakan untuk aksi sumber S3.) Jika bucket artefak S3 berada di akun yang berbeda dari akun untuk pipeline Anda, pastikan bucket artefak S3 dimiliki oleh Akun AWS yang aman dan dapat diandalkan.
Sebelum Anda memulai tutorial ini, Anda seharusnya sudah menyelesaikan prasyarat umum di. Memulai dengan CodePipeline
Topik
Langkah 1: Prasyarat lengkap
Untuk mengintegrasikan dengan Jenkins, AWS CodePipeline mengharuskan Anda untuk menginstal CodePipeline Plugin untuk Jenkins pada setiap instance Jenkins yang ingin Anda gunakan. CodePipeline Anda juga harus mengonfigurasi pengguna atau peran IAM khusus yang akan digunakan untuk izin antara proyek Jenkins Anda dan. CodePipeline Cara termudah untuk mengintegrasikan Jenkins dan CodePipeline menginstal Jenkins pada EC2 instance yang menggunakan peran instans IAM yang Anda buat untuk integrasi Jenkins. Agar tautan dalam pipeline agar tindakan Jenkins berhasil terhubung, Anda harus mengonfigurasi pengaturan proxy dan firewall di server atau EC2 instance untuk memungkinkan koneksi masuk ke port yang digunakan oleh proyek Jenkins Anda. Pastikan Anda telah mengonfigurasi Jenkins untuk mengautentikasi pengguna dan menerapkan kontrol akses sebelum Anda mengizinkan koneksi pada port tersebut (misalnya, 443 dan 8443 jika Anda telah mengamankan Jenkins untuk hanya menggunakan koneksi HTTPS, atau 80 dan 8080 jika Anda mengizinkan koneksi HTTP). Untuk informasi lebih lanjut, lihat Mengamankan Jenkins
catatan
Tutorial ini menggunakan contoh kode dan mengkonfigurasi langkah-langkah build yang mengonversi sampel dari Haml ke HTML. Anda dapat mengunduh kode sampel sumber terbuka dari GitHub repositori dengan mengikuti langkah-langkahnya. Salin atau kloning sampel ke dalam repositori GitHub Anda akan membutuhkan seluruh sampel di GitHub repositori Anda, bukan hanya file.zip.
Tutorial ini juga mengasumsikan bahwa:
-
Anda akrab dengan menginstal dan mengelola Jenkins dan membuat proyek Jenkins.
-
Anda telah menginstal Rake dan permata Haml untuk Ruby di komputer atau instance yang sama yang menghosting proyek Jenkins Anda.
-
Anda telah mengatur variabel lingkungan sistem yang diperlukan sehingga perintah Rake dapat dijalankan dari terminal atau baris perintah (misalnya, pada sistem Windows, memodifikasi variabel PATH untuk menyertakan direktori tempat Anda menginstal Rake).
Topik
Salin atau kloning sampel ke dalam repositori GitHub
Untuk mengkloning sampel dan mendorong ke repositori GitHub
-
Unduh kode sampel dari GitHub repositori, atau kloning repositori ke komputer lokal Anda. Ada dua paket sampel:
-
Jika Anda akan menerapkan sampel Anda ke instance Windows Server, pilih CodePipeline-Jenkins- .zip
. AWSCodeDeploy_Windows
-
Dari repositori, pilih Fork untuk mengkloning repo sampel menjadi repo di akun Github Anda. Untuk informasi lebih lanjut, lihat dokumentasi GitHub
.
Buat peran IAM untuk digunakan untuk integrasi Jenkins
Sebagai praktik terbaik, pertimbangkan untuk meluncurkan EC2 instance untuk meng-host server Jenkins Anda dan menggunakan peran IAM untuk memberikan instance izin yang diperlukan untuk berinteraksi dengannya. CodePipeline
Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Di konsol IAM, di panel navigasi, pilih Peran, lalu pilih Buat peran.
-
Di bawah Pilih jenis entitas tepercaya, pilih Layanan AWS. Di bawah Pilih layanan yang akan menggunakan peran ini, pilih EC2. Di bawah Pilih kasus penggunaan Anda, pilih EC2.
-
Pilih Berikutnya: Izin. Pada halaman Lampirkan kebijakan izin, pilih kebijakan
AWSCodePipelineCustomActionAccess
terkelola, lalu pilih Berikutnya: Tag. Pilih Berikutnya: Tinjauan. -
Pada halaman Tinjauan, dalam nama Peran, masukkan nama peran yang akan dibuat khusus untuk integrasi Jenkins (misalnya,
JenkinsAccess
), lalu pilih Buat peran.
Saat Anda membuat EC2 instance di mana Anda akan menginstal Jenkins, di Langkah 3: Konfigurasikan Detail Instance, pastikan Anda memilih peran instance (misalnya,JenkinsAccess
).
Untuk informasi selengkapnya tentang peran instans dan Amazon EC2, lihat peran IAM untuk Amazon EC2, Menggunakan Peran IAM untuk Memberikan Izin ke Aplikasi yang Berjalan di EC2 Instans Amazon, dan Membuat peran untuk mendelegasikan izin ke. Layanan AWS
Instal dan konfigurasikan Jenkins dan CodePipeline Plugin untuk Jenkins
Untuk menginstal Jenkins dan CodePipeline Plugin untuk Jenkins
-
Buat EC2 instance tempat Anda akan menginstal Jenkins, dan di Langkah 3: Konfigurasikan Detail Instance, pastikan Anda memilih peran instance yang Anda buat (misalnya,
JenkinsAccess
). Untuk informasi selengkapnya tentang membuat EC2 instance, lihat Meluncurkan EC2 instans Amazon di Panduan EC2 Pengguna Amazon.catatan
Jika Anda sudah memiliki sumber daya Jenkins yang ingin Anda gunakan, Anda dapat melakukannya, tetapi Anda harus membuat pengguna IAM khusus, menerapkan kebijakan
AWSCodePipelineCustomActionAccess
terkelola ke pengguna itu, dan kemudian mengonfigurasi dan menggunakan kredensil akses untuk pengguna tersebut di sumber daya Jenkins Anda. Jika Anda ingin menggunakan UI Jenkins untuk menyediakan kredensialnya, konfigurasikan Jenkins untuk hanya mengizinkan HTTPS. Untuk informasi selengkapnya, lihat Pemecahan masalah CodePipeline. -
Instal Jenkins pada EC2 instance. Untuk informasi lebih lanjut, lihat dokumentasi Jenkins untuk menginstal Jenkins
dan memulai dan mengakses Jenkins , serta di. details of integration with Jenkins Integrasi produk dan layanan dengan CodePipeline -
Luncurkan Jenkins, dan di halaman beranda, pilih Kelola Jenkins.
-
Pada halaman Kelola Jenkins, pilih Kelola Plugin.
-
Pilih tab Tersedia, dan di kotak pencarian Filter, masukkan
AWS CodePipeline
. Pilih CodePipeline Plugin untuk Jenkins dari daftar dan pilih Unduh sekarang dan instal setelah restart. -
Pada halaman Instalasi Plugin/Upgrade, pilih Restart Jenkins ketika instalasi selesai dan tidak ada pekerjaan yang berjalan.
-
Pilih Kembali ke Dasbor.
-
Di halaman utama, pilih Item Baru.
-
Di Nama Item, masukkan nama untuk proyek Jenkins (misalnya,
MyDemoProject
). Pilih Freestyle project, lalu pilih OK.catatan
Pastikan bahwa nama untuk proyek Anda memenuhi persyaratan untuk CodePipeline. Untuk informasi selengkapnya, lihat Kuota di AWS CodePipeline.
-
Pada halaman konfigurasi untuk proyek, pilih kotak centang Execute concurrent build jika perlu. Di Manajemen Kode Sumber, pilih AWS CodePipeline. Jika Anda telah menginstal Jenkins pada sebuah EC2 instance dan mengonfigurasi AWS CLI dengan profil untuk pengguna IAM yang Anda buat untuk integrasi antara CodePipeline dan Jenkins, biarkan semua bidang lainnya kosong.
-
Pilih Advanced, dan di Provider, masukkan nama untuk penyedia tindakan seperti yang akan muncul di CodePipeline (misalnya,
MyJenkinsProviderName
). Pastikan nama ini unik dan mudah diingat. Anda akan menggunakannya ketika Anda menambahkan tindakan build ke pipeline Anda nanti dalam tutorial ini, dan lagi ketika Anda menambahkan tindakan pengujian.catatan
Nama tindakan ini harus memenuhi persyaratan penamaan untuk tindakan di CodePipeline. Untuk informasi selengkapnya, lihat Kuota di AWS CodePipeline.
-
Di Build Triggers, kosongkan kotak centang apa pun, lalu pilih Poll SCM. Dalam Jadwal, masukkan lima tanda bintang yang dipisahkan oleh spasi, sebagai berikut:
* * * * *
Jajak pendapat ini dilakukan CodePipeline setiap menit.
-
Di Build, pilih Add build step. Pilih Execute shell (Amazon Linux, RHEL, atau Ubuntu Server) Jalankan perintah batch (Windows Server), lalu masukkan yang berikut ini:
rake
catatan
Pastikan lingkungan Anda dikonfigurasi dengan variabel dan pengaturan yang diperlukan untuk menjalankan rake; jika tidak, build akan gagal.
-
Pilih Add post-build action, lalu pilih AWS CodePipeline Publisher. Pilih Tambah, dan di Build Output Locations, biarkan lokasi kosong. Konfigurasi ini adalah default. Ini akan membuat file terkompresi di akhir proses pembuatan.
-
Pilih Simpan untuk menyimpan proyek Jenkins Anda.
Langkah 2: Buat pipeline di CodePipeline
Di bagian tutorial ini, Anda membuat pipeline menggunakan wizard Create Pipeline.
Untuk membuat proses rilis CodePipeline otomatis
Masuk ke AWS Management Console dan buka CodePipeline konsol di http://console.aws.amazon. com/codesuite/codepipeline/home
. -
Jika perlu, gunakan pemilih Wilayah untuk mengubah Wilayah ke wilayah tempat sumber daya pipa Anda berada. Misalnya, jika Anda membuat sumber daya untuk tutorial sebelumnya di
us-east-2
, pastikan pemilih Region diatur ke US East (Ohio).Untuk informasi selengkapnya tentang Wilayah dan titik akhir yang tersedia CodePipeline, lihat AWS CodePipeline titik akhir dan kuota.
-
Pada halaman Selamat Datang, halaman Memulai, atau halaman Pipelines, pilih Buat pipeline.
-
Pada Langkah 1: Pilih halaman opsi pembuatan, di bawah Opsi pembuatan, pilih opsi Build custom pipeline. Pilih Berikutnya.
-
Pada Langkah 2: Pilih halaman pengaturan pipeline, dalam nama Pipeline, masukkan nama untuk pipeline Anda.
-
CodePipeline menyediakan pipa tipe V1 dan V2, yang berbeda dalam karakteristik dan harga. Jenis V2 adalah satu-satunya jenis yang dapat Anda pilih di konsol. Untuk informasi selengkapnya, lihat jenis pipa. Untuk informasi tentang harga CodePipeline, lihat Harga
. -
Dalam peran Layanan, pilih Peran layanan baru CodePipeline untuk memungkinkan membuat peran layanan di IAM.
-
Biarkan pengaturan di bawah Pengaturan lanjutan pada defaultnya, dan pilih Berikutnya.
-
Pada Langkah 3: Tambahkan halaman tahap sumber, di penyedia Sumber, pilih GitHub.
-
Di bawah Koneksi, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihatGitHub koneksi.
-
Pada Langkah 4: Tambahkan tahap build, pilih Add Jenkins. Di nama Provider, masukkan nama tindakan yang Anda berikan di CodePipeline Plugin untuk Jenkins (misalnya
MyJenkinsProviderName
). Nama ini harus sama persis dengan nama di CodePipeline Plugin untuk Jenkins. Di URL Server, masukkan URL EC2 contoh tempat Jenkins diinstal. Dalam nama Proyek, masukkan nama proyek yang Anda buat di Jenkins, sepertiMyDemoProject
, lalu pilih Berikutnya. -
Pada Langkah 5: Tambahkan tahap pengujian, pilih Lewati tahap pengujian, lalu terima pesan peringatan dengan memilih Lewati lagi.
Pilih Berikutnya.
-
Pada Langkah 6: Tambahkan tahap penerapan, gunakan kembali grup CodeDeploy aplikasi dan penyebaran yang Anda buat. Tutorial: Buat pipeline sederhana (ember S3) Di Penyedia Deploy, pilih CodeDeploy. Di Nama aplikasi
CodePipelineDemoApplication
, masukkan, atau pilih tombol refresh, lalu pilih nama aplikasi dari daftar. Di grup DeploymentCodePipelineDemoFleet
, masukkan, atau pilih dari daftar, lalu pilih Berikutnya.catatan
Anda dapat menggunakan CodeDeploy sumber daya Anda sendiri atau membuat yang baru, tetapi Anda mungkin dikenakan biaya tambahan.
-
Pada Langkah 7: Tinjau, tinjau informasinya, lalu pilih Buat pipeline.
-
Pipa secara otomatis memulai dan menjalankan sampel melalui pipa. Anda dapat melihat pesan kemajuan dan keberhasilan dan kegagalan saat pipeline membangun sampel Haml ke HTML dan menerapkannya sebagai halaman web ke setiap EC2 instans Amazon dalam penerapan. CodeDeploy
Langkah 3: Tambahkan tahap lain ke pipeline Anda
Sekarang Anda akan menambahkan tahap pengujian dan kemudian tindakan pengujian ke tahap yang menggunakan tes Jenkins yang disertakan dalam sampel untuk menentukan apakah halaman web memiliki konten apa pun. Tes ini hanya untuk tujuan demonstrasi.
catatan
Jika Anda tidak ingin menambahkan tahap lain ke pipeline, Anda dapat menambahkan tindakan pengujian ke tahap Pementasan pipeline, sebelum atau sesudah tindakan penerapan.
Tambahkan tahap pengujian ke pipeline Anda
Topik
Cari alamat IP dari sebuah instans
Untuk memverifikasi alamat IP dari sebuah instance tempat Anda menerapkan kode
-
Setelah Berhasil ditampilkan untuk status pipeline, di area status untuk tahap Pementasan, pilih Detail.
-
Di bagian Detail Deployment, di ID Instance, pilih ID instans dari salah satu instance yang berhasil diterapkan.
-
Salin alamat IP instance (misalnya,
192.168.0.4
). Anda akan menggunakan alamat IP ini dalam tes Jenkins Anda.
Buat proyek Jenkins untuk menguji penerapan
Untuk membuat proyek Jenkins
-
Pada contoh di mana Anda menginstal Jenkins, buka Jenkins dan dari halaman utama, pilih Item Baru.
-
Di Nama Item, masukkan nama untuk proyek Jenkins (misalnya,
MyTestProject
). Pilih Freestyle project, lalu pilih OK.catatan
Pastikan bahwa nama untuk proyek Anda memenuhi CodePipeline persyaratan. Untuk informasi selengkapnya, lihat Kuota di AWS CodePipeline.
-
Pada halaman konfigurasi untuk proyek, pilih kotak centang Execute concurrent build jika perlu. Di Manajemen Kode Sumber, pilih AWS CodePipeline. Jika Anda telah menginstal Jenkins pada sebuah EC2 instance dan mengkonfigurasi AWS CLI dengan profil untuk pengguna IAM yang Anda buat untuk integrasi antara CodePipeline dan Jenkins, biarkan semua bidang lainnya kosong.
penting
Jika Anda mengonfigurasi proyek Jenkins dan tidak diinstal pada EC2 instans Amazon, atau diinstal pada instance yang menjalankan sistem operasi Windows, lengkapi bidang seperti yang dipersyaratkan oleh host proxy dan pengaturan port Anda, dan berikan kredensi pengguna IAM atau peran yang Anda konfigurasikan untuk integrasi antara Jenkins dan. EC2 CodePipeline
-
Pilih Advanced, dan di Kategori, pilih Test.
-
Di Provider, masukkan nama yang sama dengan yang Anda gunakan untuk proyek build (misalnya,
MyJenkinsProviderName
). Anda akan menggunakan nama ini ketika Anda menambahkan tindakan pengujian ke pipeline Anda nanti dalam tutorial ini.catatan
Nama ini harus memenuhi persyaratan CodePipeline penamaan untuk tindakan. Untuk informasi selengkapnya, lihat Kuota di AWS CodePipeline.
-
Di Build Triggers, kosongkan kotak centang apa pun, lalu pilih Poll SCM. Dalam Jadwal, masukkan lima tanda bintang yang dipisahkan oleh spasi, sebagai berikut:
* * * * *
Jajak pendapat ini dilakukan CodePipeline setiap menit.
-
Di Build, pilih Add build step. Jika Anda menggunakan instance Amazon Linux, RHEL, atau Ubuntu Server, pilih Execute shell. Kemudian masukkan yang berikut ini, di mana alamat IP adalah alamat EC2 instance yang Anda salin sebelumnya:
TEST_IP_ADDRESS=
192.168.0.4
rake testJika Anda menyebarkan ke instance Windows Server, pilih Jalankan perintah batch, lalu masukkan yang berikut ini, di mana alamat IP adalah alamat EC2 instance yang Anda salin sebelumnya:
set TEST_IP_ADDRESS=
192.168.0.4
rake testcatatan
Tes ini mengasumsikan port default 80. Jika Anda ingin menentukan port yang berbeda, tambahkan pernyataan port uji, sebagai berikut:
TEST_IP_ADDRESS=
192.168.0.4
TEST_PORT=8000
rake test -
Pilih Add post-build action, lalu pilih AWS CodePipeline Publisher. Jangan pilih Tambah.
-
Pilih Simpan untuk menyimpan proyek Jenkins Anda.
Buat tahap keempat
Untuk menambahkan panggung ke pipeline Anda yang mencakup tindakan uji Jenkins
Masuk ke AWS Management Console dan buka CodePipeline konsol di http://console.aws.amazon. com/codesuite/codepipeline/home
. -
Di Nama, pilih nama pipeline yang Anda buat, MySecondPipeline.
-
Pada halaman detail pipeline, pilih Edit.
-
Pada halaman Edit, pilih + Stage untuk menambahkan stage segera setelah tahap Build.
-
Di bidang nama untuk tahap baru, masukkan nama (misalnya,
Testing
), lalu pilih + Tambahkan grup tindakan. -
Dalam nama Action, masukkan
MyJenkinsTest-Action
. Di Penyedia uji, pilih nama penyedia yang Anda tentukan di Jenkins (misalnya,MyJenkinsProviderName
). Dalam nama Proyek, masukkan nama proyek yang Anda buat di Jenkins (misalnya,MyTestProject
). Di artefak Input, pilih artefak dari build Jenkins yang nama defaultnyaBuildArtifact
, lalu pilih Selesai.catatan
Karena tindakan pengujian Jenkins beroperasi pada aplikasi yang dibangun pada langkah pembuatan Jenkins, gunakan artefak build untuk artefak input ke tindakan pengujian.
Untuk informasi lebih lanjut tentang artefak input dan output dan struktur pipa, lihat. CodePipeline referensi struktur pipa
-
Pada halaman Edit, pilih Simpan perubahan pipeline. Dalam kotak dialog Simpan perubahan pipeline, pilih Simpan dan lanjutkan.
-
Meskipun tahap baru telah ditambahkan ke pipeline Anda, status Tidak ada eksekusi belum ditampilkan untuk tahap itu karena tidak ada perubahan yang memicu proses pipeline lainnya. Untuk menjalankan sampel melalui pipeline yang direvisi, pada halaman detail pipeline, pilih Rilis perubahan.
Tampilan pipeline menunjukkan tahapan dan tindakan dalam pipeline Anda dan status revisi yang berjalan melalui empat tahap tersebut. Waktu yang dibutuhkan pipa untuk berjalan melalui semua tahapan akan tergantung pada ukuran artefak, kompleksitas tindakan pembuatan dan pengujian Anda, dan faktor lainnya.
Langkah 4: Bersihkan Sumber Daya
Setelah Anda menyelesaikan tutorial ini, Anda harus menghapus pipeline dan sumber daya yang digunakannya sehingga Anda tidak akan dikenakan biaya untuk terus menggunakan sumber daya tersebut. Jika Anda tidak berniat untuk terus menggunakan CodePipeline, hapus pipeline, lalu CodeDeploy aplikasi dan EC2 instance Amazon terkait, dan terakhir, ember Amazon S3 digunakan untuk menyimpan artefak. Anda juga harus mempertimbangkan apakah akan menghapus sumber daya lain, seperti GitHub repositori, jika Anda tidak berniat untuk terus menggunakannya.
Untuk membersihkan sumber daya yang digunakan dalam tutorial ini
-
Buka sesi terminal di Linux, macOS, atau mesin Unix lokal Anda, atau prompt perintah di mesin Windows lokal Anda, dan jalankan delete-pipeline perintah untuk menghapus pipeline yang Anda buat. Untuk
MySecondPipeline
, Anda akan memasukkan perintah berikut:aws codepipeline delete-pipeline --name "MySecondPipeline"
Perintah ini tidak mengembalikan apa pun.
-
Untuk membersihkan CodeDeploy sumber daya Anda, ikuti instruksi di Membersihkan.
-
Untuk membersihkan sumber daya instans Anda, hapus EC2 instance tempat Anda menginstal Jenkins. Untuk informasi lebih lanjut, lihat Membersihkan instans Anda.
-
Jika Anda tidak bermaksud membuat lebih banyak saluran pipa atau menggunakan CodePipeline lagi, hapus bucket Amazon S3 yang digunakan untuk menyimpan artefak untuk pipeline Anda. Untuk menghapus ember, ikuti petunjuk di Menghapus ember.
-
Jika Anda tidak berniat menggunakan sumber daya lain untuk pipeline ini lagi, pertimbangkan untuk menghapusnya dengan mengikuti panduan untuk sumber daya tertentu. Misalnya, jika Anda ingin menghapus GitHub repositori, ikuti instruksi di Menghapus repositori di situs
web. GitHub