Checkpoint
Create a Cloud Source Repository
/ 30
Launch the site at TCP port 8080
/ 30
Configure the cloud build and initiate it
/ 40
Men-deploy Situs Hugo dengan Pipeline Firebase dan Cloud Build
GSP747
Ringkasan
Dalam lab ini, Anda akan membuat pipeline untuk men-deploy situs berbasis Hugo, yaitu sebuah pembuat situs statis. Anda akan menyimpan konten situs di Cloud Source Repositories dan men-deploy situs dengan Firebase, kemudian menggunakan Cloud Build untuk membuat pipeline guna secara otomatis men-deploy konten baru yang berkomitmen pada repositori.
Tujuan
Dalam lab ini, Anda akan mempelajari hal berikut:
- Ringkasan situs statis
- Menyiapkan situs dengan Hugo
- Menyimpan konten situs di Cloud Source Repositories
- Men-deploy situs dengan Firebase
- Membuat pipeline build dengan Cloud Build untuk mengotomatiskan deployment
Prasyarat
Petunjuk yang disediakan di artikel ini memadai sebagai panduan untuk lab ini. Anda juga mungkin akan terbantu jika memiliki pengalaman langsung dengan layanan yang akan Anda gunakan. Berikut beberapa lab lain yang mungkin berguna untuk Anda:
- Cloud Source Repositories: Qwik Start
- Membangun Aplikasi Serverless dengan Cloud Run yang Membuat File PDF
- Web Firebase
Manfaat dari situs statis
Pembuat situs statis seperti Hugo menjadi populer karena kemampuannya memproduksi situs yang tidak memerlukan server web. Platform web statis meniadakan tugas pemeliharaan sistem operasi server atau software. Namun, ada berbagai pertimbangan operasional. Sebagai contoh, Anda mungkin perlu menerapkan kontrol versi pada postingan Anda, menghosting situs Anda pada suatu jaringan penayangan konten ("CDN"), dan menyediakan sertifikat SSL.
Anda dapat memenuhi berbagai kebutuhan ini dengan menggunakan pipeline Continuous Integration/Continuous Deployment di Google Cloud. Pipeline deployment memungkinkan developer untuk berinovasi secara cepat dengan mengotomatisasi proses deployment keseluruhan. Di lab ini, Anda akan belajar cara membuat pipeline yang mendemonstrasikan otomatisasi seperti ini.
Penyiapan dan persyaratan
Sebelum mengklik tombol Mulai Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan info berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account. -
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}} Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}} Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan. -
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Ringkasan proses
Berikut adalah diagram tentang apa yang akan Anda bangun:
Sasaran yang ingin dicapai adalah mampu melakukan commit kode dan menugaskannya untuk memicu pipeline, yang kemudian akan men-deploy situs. Perjalanan Anda akan dibagi jadi dua bagian. Pertama, Anda akan membangun situs secara lokal dan men-deploy situs tersebut secara manual ke Firebase, guna mendapatkan pemahaman mengenai keseluruhan prosesnya. Kedua, Anda akan melakukan otomatisasi proses dengan membangun pipeline menggunakan Cloud Build.
Tugas 1. Deployment manual
Pertama, bangun situs secara manual pada instance Linux agar bisa mempelajari prosesnya yang menyeluruh. Anda juga akan menggunakan instance Linux untuk melaksanakan beberapa tugas satu kali yang diperlukan untuk membuat Firebase aktif dan berjalan.
Terhubung ke instance Linux
- Dari Navigation menu, pilih Compute Engine > VM Instances. Anda akan melihat ada satu instance yang telah dibangun untuk Anda.
- Pada ujung baris, Anda dapat melihat alamat IP Eksternal dan tombol SSH seperti yang tampak pada gambar di bawah ini. Jika terhalang oleh panel informasi, tutup panel tersebut agar Anda dapat melihat seluruh baris.
- Catat alamat IP Eksternal untuk digunakan nanti.
- Klik SSH. Sebuah jendela akan muncul dan Anda akan melihat prompt shell.
Menginstal Hugo secara lokal
Sekarang, instal Hugo secara lokal pada instance Linux, sehingga Anda dapat menguji situs secara lokal sebelum men-deploy situs tersebut menggunakan Firebase. Sebuah skrip shell telah disediakan untuk mempermudah tugas ini.
- Pada shell instance Linux, periksa file installhugo.sh.
Anda juga dapat melihat konten berikut ini:
Output:
-
Perhatikan penggunaan perintah
wget
untuk mendownload Hugo dan perintahtar
untuk membuka arsip Hugo. Anda akan melihat perintah yang sama nanti di lab ini ketika Anda membuat pipeline. -
Masukkan perintah di bawah ini untuk menjalankan skrip dan menginstal Hugo:
Anda akan menerima pesan yang mengatakan bahwa Hugo telah diinstal ke direktori /tmp
seperti yang ditunjukkan berikut ini. Anda siap membangun infrastruktur situs.
Membuat repositori dan situs awal
Sekarang, buat sebuah Cloud Source Repository untuk menampung situs kemudian clone repositori tersebut ke instance Linux. Membuat clone repositori berarti membuat duplikasinya di dalam shell. Hal ini memungkinkan Anda menerapkan situs selagi di dalam shell, kemudian melakukan commit perubahan yang Anda buat ke dalam sistem file. Berikutnya dalam lab ini, Anda akan menyiapkan pipeline yang merespons commit tersebut ke repositori.
- Instal git pada VM Linux
Masukkan perintah berikut pada shell instance Linux:
Jika diminta, jawab Yes
untuk semua permintaan.
- Buat dan clone repositori kode. Masukkan perintah berikut pada shell instance Linux:
Anda akan menerima konfirmasi tentang pembuatan repositori dan cloning repositori, seperti yang ditunjukkan dalam gambar berikut. Anda dapat mengabaikan dua pesan peringatan tentang penagihan biaya repositori dan bahwa repositori tersebut kosong.
Klik Check my progress untuk memverifikasi tujuan.
- Kini Anda siap untuk membuat struktur situs. Masukkan perintah berikut pada shell Linux.
Biasanya, perintah hugo
akan menghasilkan direktori. Opsi --force
akan membuat situs di direktori repositori, yang sudah ada sebelumnya. Dengan begitu, Anda dapat menyimpan informasi terkait Git dalam direktori yang baru saja Anda clone. Anda akan melihat pesan yang menyatakan bahwa situs telah dibuat, seperti yang ditunjukkan dalam gambar berikut.
- Sekarang, instal tema Ananke untuk memberikan tata letak bagi situs Anda. Masukkan perintah berikut pada shell instance Linux:
Anda akan melihat pesan yang menyatakan bahwa tema telah di-clone, seperti yang ditunjukkan berikut ini.
- Hapus file git dari direktori tema:
- Setelah struktur situs selesai disiapkan, Anda dapat melihat pratinjaunya. Masukkan perintah berikut ini untuk meluncurkan situs pada port TCP 8080:
Hugo akan membangun situs dan menyajikannya untuk diakses pada port TCP 8080, seperti yang ditunjukkan dalam gambar berikut. Server akan berjalan sampai dihentikan dengan menekan CTRL+C.
- Buka tab browser dan akses alamat IP eksternal pada port 8080. Gunakan URL berikut, ganti
[EXTERNAL IP]
dengan alamat IP eksternal dari instance Anda:
Situs akan tampak seperti ini.
Klik Check my progress untuk memverifikasi tujuan.
- Kembali ke shell Linux dan tekan CTRL+C untuk menghentikan server Hugo.
Menambahkan Firebase ke project Anda
Setelah Anda tahu seperti apa tampilan situsnya, kini saatnya men-deploy situs ke Firebase. Pertama, aktifkan Firebase dalam project yang ada.
-
Buka tab baru di browser yang Anda gunakan untuk mengakses Konsol Google Cloud, kemudian buka Firebase di tab tersebut untuk mengakses Firebase console.
-
Sekarang klik Add project.
Anda akan diminta memilih nama untuk project Anda.
- Klik di dalam kolom nama lalu pilih project Google Cloud yang ada yang diawali dengan "qwiklabs-gcp-..." seperti yang ditunjukkan dalam gambar berikut:
- Centang I accept the Firebase terms dan I confirm that I will use Firebase exclusively for purposes relating to my trade, business, craft, or profession. Klik Continue.
- Anda mungkin akan diminta untuk mengonfirmasi paket penagihan Firebase. Biaya Firebase termasuk dalam biaya lab. Jika diminta, klik Confirm plan.
- Ketika menambahkan Firebase ke project, Anda akan diminta untuk mengonfirmasi beberapa kriteria. Klik Continue.
- Anda akan diminta mengonfirmasi penggunaan Google Analytics untuk project Firebase ini. Karena ini adalah lingkungan lab, gunakan tombol untuk menonaktifkan Google Analytics dan klik Add Firebase. Perlu waktu sekitar satu menit untuk menambahkan Firebase ke project.
- Setelah Firebase berhasil ditambahkan, akan muncul dialog, klik Continue.
Men-deploy situs ke Firebase
- Instal Firebase CLI dalam shell instance Linux:
- Sekarang Anda perlu melakukan inisialisasi Firebase. Masukkan perintah berikut ini ke dalam shell:
- Pilih Hosting: Configure files for Firebase Hosting and (optionally) set up GitHub Action deploys menggunakan tombol panah dan spasi lalu tekan Enter. Jika Anda diminta memilih opsi project, pilih Use an existing project, kemudian gunakan tombol panah, spasi, dan Enter untuk memilih ID Project yang disediakan pada halaman petunjuk lab. Untuk direktori publik, pilih nilai default public. Untuk konfigurasi sebagai aplikasi web satu halaman, pilih nilai default N. Untuk menyiapkan build otomatis dan men-deploy dengan GitHub, pilih N.
Jika ditanya apakah ingin menimpa file yang ada, pilih Y.
- Anda siap men-deploy aplikasi. Masukkan perintah berikut ini ke dalam shell instance Linux untuk membangun kembali situs dengan Hugo dan men-deploy-nya dengan Firebase:
- Setelah aplikasi di-deploy, Anda akan menerima URL hosting. Klik URL tersebut dan Anda akan melihat situs yang sama disajikan dari jaringan penayangan konten (CDN) Firebase. Jika Anda menerima pesan "selamat datang" saja, tunggu beberapa menit untuk inisialisasi CDN dan muat ulang jendela browser. Simpan URL hosting ini untuk digunakan nanti.
Anda telah menjalankan seluruh proses deployment secara lokal. Selanjutnya, lakukan otomatisasi proses secara menyeluruh menggunakan Cloud Build.
Tugas 2. Melakukan otomatisasi deployment
Menjalankan commit awal
Tujuan membangun pipeline adalah untuk dapat memicu build ketika perubahan diterapkan pada repositori. Anda akan mulai dengan menjalankan commit awal ke repositori sehingga Anda dapat memvalidasi kemampuan Anda membuat perubahan di masa yang akan datang.
- Konfigurasikan parameter global perintah git dengan memasukkan perintah berikut ini ke dalam shell Linux. Pastikan Anda menyertakan tanda petik:
- Masukkan perintah berikut ke dalam shell Linux untuk membuat file
.gitignore
untuk mengecualikan direktori tertentu dari repositori:
- Jalankan commit awal ke repositori dengan memasukkan perintah berikut ini:
Anda telah melakukan commit (mengupload) versi awal dari situs ke Google Cloud.
Mengonfigurasi build
Cloud Build menggunakan file dengan nama cloudbuild.yaml di direktori root dari repositori untuk menjalankan tugas build. File ini berada dalam format YAML. Spasi dan indentasi sangatlah penting, jadi file ini telah ditempatkan pada instance Linux untuk Anda.
- Masukkan perintah berikut pada shell Linux. Perhatikan tanda titik (".") di ujung perintah
cp
:
- Jalankan perintah berikut ini untuk melihat tampilan file
cloudbuild.yaml
. Beberapa baris digabungkan karena terlalu panjang.
Output:
- Berikut beberapa hal yang diamati dari file
cloudbuild.yaml
:
- Ada tiga langkah bernama dalam file ini, yang masing-masing dilakukan oleh image container. Dua langkah pertama menggunakan builder yang didukung Google untuk menggunakan
wget
guna mendownload alat-alat Hugo dan Firebase. Dua langkah ini berjalan secara paralel. Menggunakan builder wget lebih cepat daripada menginstalwget
secara manual. - Langkah ketiga menggunakan container Ubuntu standar untuk menginstal Hugo dan Firebase, setelah itu situs dibangun dan di-deploy. Dengan menginstal Hugo dan Firebase untuk setiap deployment, Anda dapat mengubah versi Hugo kapan saja Anda inginkan sekaligus menggunakan Firebase versi terbaru.
- Perintah
tar
danwget
hampir identik dengan perintah yang digunakan sebelumnya dalam skripinstallhugo.sh
. - File ini juga menggunakan variabel substitusi kustom (_HUGO_VERSION) dan variabel substitusi yang disediakan Google (PROJECT_ID) agar template ini dapat digunakan di lingkungan yang berbeda.
- Biner Hugo dan Firebase dibuat dan diinstal pada direktori sementara untuk mencegahnya secara tidak sengaja di-deploy ke situs itu sendiri.
Membuat pemicu Cloud Build
Sekarang, buat pemicu yang akan merespons commit ke cabang master dari repositori.
- Dari command line, masukkan perintah berikut:
- Konfigurasi pemicu berisi detail berikut:
Kolom | Nilai |
---|---|
Name | commit-to-master-branch |
Description | Push to master |
Event | Push to a branch |
Repository | my_hugo_site |
Branch (regex) | ^master$ (pastikan Invert Regex tidak dicentang) |
Build Configuration | Cloud Build configuration file (yaml atau json) |
Cloud Build Configuration file location | / cloudbuild.yaml |
Akun layanan Cloud Build
Akun Layanan Cloud Build memerlukan izin untuk menggunakan Firebase guna men-deploy situs.
Cloud Build | Peran | Deskripsi |
---|---|---|
[PROJECT_NUMBER@cloudbuild.gserviceaccount.com | roles/firebasehosting.admin | Akses baca/tulis penuh ke resource Hosting |
Menguji pipeline
Setelah selesai membuat pipeline, Anda dapat membuat perubahan terhadap situs kemudian commit perubahan tersebut untuk melihat apakah perubahan telah diterapkan.
- Masukkan perintah berikut dalam shell Linux untuk berpindah ke direktori repositori:
- Edit file config.toml dan ubah judulnya:
- Masukkan perintah berikut dalam shell Linux untuk melakukan commit perubahan ke repositori dan memicu pipeline Cloud Build:
- Periksa histori build untuk melihat status build:
- Periksa log build untuk mencari build yang sedang berjalan:
- Ambil URL dari build yang dijalankan:
- Akses URL hosting untuk melihat hasilnya. Anda juga dapat membuka Firebase console dan memeriksa project untuk menemukan nama domain.
Klik Check my progress untuk memverifikasi tujuan.
Selamat!
Anda telah mempelajari cara Cloud Build melakukan orkestrasi pipeline untuk men-deploy secara cepat situs Hugo ke Firebase, yang menyediakan CDN dan sertifikat SSL. Dengan Cloud Build, Anda dapat menyesuaikan proses sesuai dengan kebutuhan Anda. Waktu deployment yang singkat berarti Anda dapat berinovasi secara cepat dan menguji revisi situs Anda tanpa banyak upaya. Baca dokumentasi Cloud Build dan Firebase untuk informasi lebih lanjut.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 30 Januari 2024
Lab Terakhir Diuji pada 11 Desember 2023
Hak cipta 2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.