GNU/Linux >> Belajar Linux >  >> Linux

Siapkan Alur Kerja CI/CD dengan Tindakan GitHub

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.

  1. Nama pengguna :Pengguna baru yang Anda buat menggunakan adduser perintah.
  2. Nama Inang :Ini adalah alamat IP server Anda.
  3. 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.


Linux
  1. Cara Mengatur LogAnalyzer dengan Rsyslog dan MySQL

  2. Siapkan cluster Kubernetes dengan Rancher

  3. Menggabungkan 3 Baris Berturut-turut Dengan Swap?

  1. Ganti find dengan fd di Linux

  2. Reverse Proxy dengan Nginx:Panduan Pengaturan Langkah-demi-Langkah

  3. Temukan semua file dengan nama yang mengandung string

  1. Cara menghapus folder dengan nama tertentu

  2. Bagaimana cara menghapus file dengan nama aneh?

  3. Pengaturan Pemula ZFS dengan Drive Ukuran Berbeda