GNU/Linux >> Znalost Linux >  >> Linux

Nastavte pracovní postup CI/CD pomocí akcí GitHub

Nastavte a nakonfigurujte pracovní postup CI/CD pomocí akcí GitHub pro nasazení zdrojového kódu na vzdálený server.

V této příručce se naučíte, jak nakonfigurovat akce GitHubu, aby se po provedení push provedla automatická nasazení na server. Nastavíme klíče SSH pro ověření se serverem.

Předpoklady

Podle tohoto průvodce vytvořte nového uživatele a nakonfigurujte klíče SSH, které jsou nezbytné pro GitHub k vytvoření zabezpečeného připojení k vašemu serveru.

Po dokončení výše uvedeného kroku můžete přejít na GitHub a nakonfigurovat akce.

Vezměte na vědomí následující podrobnosti z výše uvedeného nastavení.

  1. Uživatelské jméno :Nový uživatel, kterého jste vytvořili pomocí adduser příkaz.
  2. Název hostitele :Toto je IP adresa vašeho serveru.
  3. Soukromý klíč :Tento klíč je vytvořen automaticky pomocí ssh-keygen příkaz. Ujistěte se, že je klíč ve formátu RSA, který začíná -----BEGIN RSA PRIVATE KEY----- .

Tyto 3 podrobnosti jsou nezbytné pro připojení k serveru z GitHubu.

Tajemství nastavení

Přihlaste se ke svému účtu GitHub a přejděte do svého úložiště.

Přejděte na Nastavení>> Tajemství .

Klikněte na Nový tajný klíč úložiště .

Do pole Název přidejte SSH_HOST a do hodnoty zadejte IP adresu vašeho serveru.

Klikněte na Přidat tajný kód .

Znovu klikněte na Nový tajný klíč úložiště .

Do pole Jméno přidejte SSH_USERNAME a jako hodnotu zadejte uživatelské jméno jak jste si poznamenali výše, který byl vytvořen v příspěvku zmíněném v sekci předpokladů.

Klikněte na Přidat tajný kód .

Znovu klikněte na Nový tajný klíč úložiště .

Do pole Název přidejte SSH_KEY a v hodnotě zadejte soukromý klíč jak jste si poznamenali výše, který byl vytvořen v příspěvku zmíněném v sekci předpokladů.

Klikněte na Přidat tajný kód .

Nyní byste měli mít svá tajemství, jak je uvedeno níže.

Jakmile jsou tajemství na svém místě, můžete nastavit akce.

Zahájit pracovní postup akcí

Nyní klikněte na Akce kartu.

Zobrazí se seznam pracovních postupů, které lze ve výchozím nastavení nakonfigurovat.

Můžete kliknout na Nastavit pracovní postup sami.

Zde uvidíte některé výchozí konfigurace.

Konfigurace pracovního postupu akcí

Soubor pracovního postupu můžete pojmenovat podle svého přání. Pojmenuji to jako deploy.yml .

Můžete odstranit všechny pracovní postupy, které byly zahrnuty ve výchozím nastavení.

Zkopírujte níže uvedený pracovní postup a přidejte jej.

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"

Výše uvedený kód provede nasazení na váš server, když je proveden push do větve speck.

Nasadí veškerý zdrojový kód umístěný v kořenovém umístění vašeho úložiště. Pokud potřebujete nasadit jakoukoli konkrétní složku, můžete ji nakonfigurovat pouze ve zdrojové direktivě.

Ujistěte se, že uživatel má na serveru oprávnění k provedení implementace.

Pokud například používáte webový server Nginx nebo Apache, který běží pomocí uživatele www-data, potřebujete oprávnění k nastavení a resetujte oprávnění, jak je uvedeno níže.

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

Výše uvedená konfigurace nasazení konfiguruje uživatele tak, aby měl úplný přístup ke složce pro nasazení a konfigurační přístup pro uživatele www-data který používají Apache a Nignx.

Po dokončení klikněte na Zahájit odevzdání a kliknutím na Potvrdit nový soubor dokončete nastavení.

Nyní máte nasazení nakonfigurované tak, aby se spustilo vždy, když je proveden push do konkrétní větve.

Závěr

Nyní jste se naučili, jak nastavit a nakonfigurovat pracovní postup akcí GitHub pro CI/CD.

Díky za váš čas. Pokud narazíte na jakýkoli problém nebo zpětnou vazbu, zanechte prosím komentář níže.


Linux
  1. Najděte všechny soubory s názvem obsahujícím řetězec

  2. Jak odstranit soubor s podivným názvem?

  3. Nastavení ZFS pro začátečníky s různými velikostmi disků

  1. Nahradit find za fd v Linuxu

  2. Reverzní proxy s Nginx:Průvodce nastavením krok za krokem

  3. Jak nastavit LogAnalyzer s Rsyslog a MySQL

  1. Nastavte cluster Kubernetes pomocí Rancher

  2. Sloučit 3 po sobě jdoucí řádky s výměnou?

  3. Jak odstranit složky s určitým názvem