Siapkan dan konfigurasikan alur kerja CI/CD dengan tindakan GitHub untuk menerapkan kode sumber ke server jarak jauh.
Dalam panduan ini Anda akan mempelajari cara mengonfigurasi tindakan GitHub untuk membuat penerapan otomatis ke server setelah push dilakukan. Kami akan menyiapkan kunci SSH untuk mengautentikasi dengan server.
Prasyarat
Ikuti panduan ini untuk membuat pengguna baru dan mengonfigurasi kunci SSH yang diperlukan GitHub untuk membuat koneksi aman dengan server Anda.
Setelah Anda menyelesaikan langkah di atas, Anda dapat melanjutkan ke GitHub untuk mengonfigurasi tindakan.
Perhatikan detail berikut dari penyiapan di atas.
- Nama pengguna :Pengguna baru yang Anda buat menggunakan
adduser
perintah. - Nama Inang :Ini adalah alamat IP server Anda.
- Kunci pribadi :Kunci ini dibuat secara otomatis menggunakan
ssh-keygen
memerintah. Pastikan kuncinya dalam format RSA yang diawali dengan-----BEGIN RSA PRIVATE KEY-----
.
3 detail ini diperlukan untuk membuat koneksi ke server dari GitHub.
Rahasia Pengaturan
Masuk ke akun GitHub Anda dan buka repositori Anda.
Navigasikan ke Setelan>> Rahasia .
Klik Rahasia repositori baru .
Di Nama tambahkan SSH_HOST dan pada nilai masukkan alamat IP dari server Anda.
Klik Tambahkan rahasia .
Sekali lagi klik Rahasia repositori baru .
Di Nama tambahkan SSH_USERNAME dan dalam nilai masukkan nama pengguna Anda mencatat di atas yang dibuat di pos yang disebutkan di bagian prasyarat.
Klik Tambahkan rahasia .
Sekali lagi klik Rahasia repositori baru .
Di Nama tambahkan SSH_KEY dan dalam nilai masukkan kunci pribadi Anda mencatat di atas yang dibuat di pos yang disebutkan di bagian prasyarat.
Klik Tambahkan rahasia .
Sekarang Anda harus memiliki rahasia Anda seperti yang ditunjukkan di bawah ini.
Setelah rahasia ada, Anda dapat menyiapkan tindakan.
Memulai Alur Kerja Tindakan
Sekarang klik Tindakan tab.
Anda akan melihat daftar alur kerja yang dapat dikonfigurasi secara default.
Anda dapat mengklik Siapkan alur kerja sendiri.
Anda akan melihat beberapa konfigurasi default di sini.
Konfigurasikan Alur Kerja Tindakan
Anda dapat memberi nama file alur kerja sesuai keinginan Anda. Saya akan menamakannya sebagai deploy.yml
.
Anda dapat menghapus semua alur kerja yang disertakan secara default.
Salin alur kerja di bawah ini dan tambahkan.
name: Identifier Name on: push: branches: [ branch-name ] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - name: Deploy source-code uses: appleboy/[email protected] env: HOST: ${{ secrets.SSH_HOST }} USERNAME: ${{ secrets.SSH_USERNAME }} PORT: 22 KEY: ${{ secrets.SSH_KEY }} with: source: "*" target: "/path/in/your/server"
Kode di atas akan melakukan penerapan ke server Anda saat push dilakukan ke cabang titik.
Ini menyebarkan semua kode sumber yang terletak di lokasi root repositori Anda. Jika Anda perlu men-deploy folder tertentu, hanya Anda yang dapat mengonfigurasinya di direktif sumber.
Pastikan pengguna memiliki izin di server untuk melakukan penerapan.
Misalnya jika Anda menggunakan server web Nginx atau Apache yang berjalan menggunakan pengguna www-data, Anda memerlukan izin pengaturan dan mengatur ulang izin seperti yang ditunjukkan di bawah ini.
name: Identifier Name on: push: branches: [ branch-name ] jobs: deploy: runs-on: ubuntu-latest steps: - name: Reset Permissions before deployment uses: appleboy/[email protected] with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_KEY }} port: 22 script: | sudo chmod -R 755 /path/in/your/server sudo chown -R username:username /path/in/your/server sudo setfacl -R -m u:www-data:rwx /path/in/your/server - uses: actions/[email protected] - name: Deploy source-code uses: appleboy/[email protected] env: HOST: ${{ secrets.SSH_HOST }} USERNAME: ${{ secrets.SSH_USERNAME }} PORT: 22 KEY: ${{ secrets.SSH_KEY }} with: source: "*" target: "/path/in/your/server" - name: Reset Permissions after deployment uses: appleboy/[email protected] with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_KEY }} port: 22 script: | sudo chmod -R 755 /path/in/your/server sudo chown -R www-data:www-data /path/in/your/server sudo setfacl -R -m u:username:rwx /path/in/your/server
Konfigurasi penerapan di atas mengonfigurasi pengguna untuk memiliki akses penuh atas folder untuk penerapan dan akses konfigurasi untuk pengguna www-data
yang digunakan oleh Apache dan Nignx.
Setelah selesai klik Mulai komit dan klik Komit file baru untuk menyelesaikan penyiapan.
Sekarang Anda memiliki penerapan yang dikonfigurasi untuk dieksekusi setiap kali push dilakukan ke cabang tertentu.
Kesimpulan
Sekarang Anda telah mempelajari cara menyiapkan dan mengonfigurasi alur kerja tindakan GitHub untuk CI/CD.
Terima kasih atas waktunya. Jika Anda menghadapi masalah atau umpan balik, silakan tinggalkan komentar di bawah.