CI/CD-Bereitstellung mit GitHub-Aktionen und privaten Servern
===========================================================
Bereitstellungsarchitektur
In diesem technischen Leitfaden befassen wir uns mit der Implementierung einer CI/CD-Bereitstellung mithilfe von GitHub-Aktionen und privaten Servern. Dieser Prozess automatisiert das Erstellen, Testen und Bereitstellen von Anwendungen in einer Produktionsumgebung.
Voraussetzungen
Ein GitHub-Konto mit einem vorhandenen Repository
Ein privater Server mit SSH-Zugriff
Zugriff auf die Serverkonsole
Grundkenntnisse in Git und GitHub Actions
Einrichten von GitHub-Aktionen
Erstellen Sie einen Workflow
1. Melden Sie sich bei Ihrem GitHub-Konto an und navigieren Sie zu Ihrem Repository.
2. Klicken Sie auf
Einstellungen >
Aktionen >
Neuer Workflow.
3. Wählen Sie
Neuen Workflow von Grund auf erstellen.
4. Definieren Sie den Namen und die Beschreibung Ihres Workflows.
Workflow-Konfiguration
„yml
Name: CI/CD-Bereitstellung
am:
drücken:
Filialen:
- Haupt
Jobs:
Erstellen und Bereitstellen:
läuft weiter: ubuntu-latest
Schritte:
- Name: Checkout-Code
verwendet: actions/checkout@v2
- Name: Abhängigkeiten installieren
Ausführen: npm install
- Name: Code kompilieren
ausführen: npm run build
- Name: Tests
Lauf: NPM-Lauftest
- Name: Bereitstellung
verwendet: appleboy/ssh-action@v1
mit:
Host: ${{ Secrets.PRIVATE_SERVER }}
Benutzername: ${{ Secrets.SERVER_USER }}
privater Schlüssel: ${{ Secrets.PRIVATE_KEY }}
Skript: |
cd /var/www/html
Git Pull Origin Main
npm installieren
npm run build
npm-Start
„
Umgebungsvariablen
PRIVATE_SERVER: IP-Adresse oder Name des privaten Servers.
SERVER_USER: Benutzername für den Zugriff auf den Server.
PRIVADA_KEY: Privater Schlüssel für den Zugriff auf den Server.
SSH-Konfiguration
1. Erstellen Sie in Ihrem Repository eine SSH-Konfigurationsdatei mit dem Namen „.ssh/config“.
2. Fügen Sie die folgende Konfiguration hinzu:
„Bash
PRIVATE_SERVER-Host
Hostname PRIVATE_SERVER
Benutzer SERVER_USER
Identitätsdatei ~/.ssh/PRIVATE_KEY
„
3. Erstellen Sie auf Ihrem lokalen Computer eine private Schlüsseldatei mit dem Namen „PRIVADA_KEY“.
Private Serverkonfiguration
SSH installieren
1. Stellen Sie über SSH eine Verbindung zu Ihrem privaten Server her.
2. Installieren Sie SSH, falls es nicht installiert ist:
„Bash
sudo apt-get update
sudo apt-get install openssh-server
„
3. Starten Sie den SSH-Dienst neu:
„Bash
Sudo-Dienst SSH-Neustart
„
SSH-Zugriffskonfiguration
1. Erstellen Sie eine neue Benutzergruppe auf dem Server:
„Bash
sudo groupadd Bereitstellungsgruppe
„
2. Fügen Sie den Benutzer zur Gruppe hinzu:
„Bash
sudo usermod -aG Bereitstellungsgruppe SERVER_USER
„
3. Erteilen Sie der Gruppe Schreibberechtigungen für das Bereitstellungsverzeichnis:
„Bash
sudo chown -R SERVER_USER:deployment_group /var/www/html
„
Automatisierte Bereitstellung
1. Speichern Sie die Änderungen an Ihrem Workflow.
2. Stellen Sie sicher, dass der Workflow ordnungsgemäß ausgeführt wird.
3. Die Bereitstellung erfolgt automatisch jedes Mal, wenn ein Push zum Hauptzweig durchgeführt wird.
Sicherheit
Stellen Sie sicher, dass der private Schlüssel mit einem Passwort verschlüsselt ist.
Beschränkt den Zugriff auf den Server über IP oder Benutzergruppe.
Verwendet ein Zugriffstoken für die Bereitstellung.
Häufige Probleme
Stellen Sie sicher, dass der private Schlüssel in der Datei „.ssh/config“ korrekt konfiguriert ist.
Stellen Sie sicher, dass der Server so konfiguriert ist, dass er SSH-Verbindungen zulässt.
Stellen Sie sicher, dass der Workflow auf GitHub richtig konfiguriert ist.
Referenzen
GitHub-Aktionen
SSH
Private Server