Einführung
GitHub Actions ist eine Plattform für die Automatisierung von Softwareentwicklungs-Workflows mit einem integrierten CI/CD-Tool. Die Plattform ist einfach zu bedienen und erfordert keine Drittanbieter-App oder vorheriges Expertenwissen und eine engagierte Person für die Wartung.
PhoenixNAP Bare Metal Cloud GitHub-Aktionen dienen als automatisierter Task-Runner, der auf GitHub-Ereignisse in Ihrem Git-Repository reagiert. Ohne einen weiteren Server hochzufahren, können Sie die gewünschte CI/CD-Funktionalität direkt von GitHub aus erreichen.
Voraussetzungen
- Ein GitHub-Konto
- Bare Metal Cloud (BMC) oder phoenixNAP Client Portal (PNCP)-Konto. Wenn Sie ein neuer Kunde sind, erstellen Sie ein Konto für Bare Metal Cloud. Weitere Informationen finden Sie in der Videoanleitung zur BMC-Kontoerstellung.
Was ist BMC GitHub Action?
Eine Bare-Metal-Cloud-GitHub-Aktion wird durch die entsprechende action.yaml definiert Datei. Jedes BMC-Aktions-Repository hat eine dedizierte action.yaml Datei mit dem Code, der für diese bestimmte Aktion erstellt wurde, z. B. create-server-bmc .
Die yaml-Datei beschreibt, wie die Aktion ausgeführt wird, definiert die Haupt-JavaScript-Datei, in diesem Fall index.js , und die Funktionsmetadaten. Sie können diese JavaScript-basierten BMC-Aktionen kombinieren und in Ihre Arbeitsabläufe integrieren, um den gewünschten Automatisierungsgrad zu erreichen.
BMC GitHub-Anmeldeinformationen
Das GitHub-Repository unterstützt vollständig verschlüsselte geheime Umgebungsvariablen. Anschließend verweisen Sie auf clientid
und clientsecret
in der Workflow-YAML-Datei. BMC-Aktionen erhalten erst dann Zugriff auf Ihr Geheimnis, wenn Sie sie zu Ihrem Repository hinzufügen.
Nachdem Sie Ihrem Repository oder Ihrer Organisation Anmeldeinformationen hinzugefügt haben, sind die Werte nicht sichtbar, wenn Sie eine Aktion ausführen.
So erhalten Sie die Client ID
von BMC und Client Secret
, melden Sie sich beim Bare-Metal-Cloud-Portal an und:
1. Navigieren Sie zu den API-Anmeldedaten Seite.
2. Klicken Sie auf Create Credentials Schaltfläche.
3. Fügen Sie den Berechtigungsnamen hinzu und optional Beschreibung in den entsprechenden Feldern.
4. Weisen Sie Berechtigungsbereiche zu . Aktivieren Sie das Kontrollkästchen neben der Berechtigungsstufe, die Sie den Anmeldeinformationen erteilen möchten. Wählen Sie aus, ob Sie die Verwendung aller oder schreibgeschützter BMC-API-Aufrufe zulassen möchten.
5. Klicken Sie auf Erstellen wenn bereit.
6. Sie erhalten die Client ID
und Client Secret
im Bestätigungsfenster.
7. Kopieren Sie die Anmeldeinformationen und fügen Sie sie Ihrem GitHub-Repository als Secret hinzu. Gehen Sie zu Einstellungen -> Geheimnisse und klicken Sie auf Neues Secret hinzufügen .
PhoenixNAP BMC GitHub Actions Repository
Unser BMC GitHub Actions-Repository enthält derzeit drei Aktionen:
- Erstellen Sie einen neuen Bare-Metal-Cloud-Server
- Löschen Sie einen Bare-Metal-Cloud-Server
- Grundlegende Bare-Metal-Cloud-Serverinformationen erhalten
Sie können BMC-Aktionen mit anderen Aktionen kombinieren, um Ihre benutzerdefinierten Jobs und Workflows zu erstellen.
Neue BMC-Server-GitHub-Aktion erstellen
Der create-server-bmc Mit der GitHub-Aktion können Sie den Servererstellungsprozess automatisieren. Sie können einen Workflow erstellen, der Softwaretestanwendungen installiert und automatisch einen neuen BMC-Server hochfährt, wenn Sie mehr Ressourcen benötigen.
Diese Aktion gibt die neue Server-ID und öffentliche IP-Adressen in einer Liste mit kommagetrennten Werten aus. Die Aktion ist synchron. Die Servererstellung und der Startvorgang sind jedoch asynchron.
Erforderliche Eingaben
Jede GitHub-Aktion hat obligatorische Elemente. Die Aktion zum Erstellen des Servers muss Folgendes enthalten:
clientid
:Client-ID aus den OAuth2-Anmeldedaten der Anwendung.clientsecret
:Client-Secret aus den OAuth2-Anmeldeinformationen der Anwendung.hostname
:Hostname des Servers. Der Name muss folgendem Muster folgen:1 ≤ Länge ≤ 100 entspricht^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$
Optionale Eingaben
Optionale Eingaben für create-server-bmc GitHub-Aktionen sind:
image
:Die Betriebssystem-ID des Servers. Standardmäßigubuntu/bionic
.type
:Servertyp-ID. Standardmäßigs1.c1.small
.location
:Serverstandort-ID. Sie können den Standort nicht ändern Sobald ein Server erstellt wurde. Sie können dieses Feld auf PHX oder ASH setzen. Der Standardwert istPHX
.bmcentrypoint
:Der Einstiegspunkt der BMC-API. Standardmäßighttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:Der BMC-OIDC-Token-Host. Standardmäßighttps://auth.phoenixnap.com
.bmctokenpath
:Der BMC-OIDC-Tokenpfad. Standardmäßig/auth/realms/BMC/protocol/openid-connect/token
.
Ausgänge
Der create-server-bmc Aktion hat die folgende Ausgabe:
id
:Die neue BMC-Server-ID.ipaddresses
:Eine durch Kommas getrennte Liste öffentlicher IP-Adressen, die an den neuen Server angehängt sind.
Beispielverwendung für die Aktion „BMC-Server erstellen“
Unten ist das Beispiel für die Aktion "Server erstellen":
- name: CreateBMCServer step
uses: phoenixnap-github-actions/create-server-bmc
id: createserver
with:
clientid: ${{secrets.BMC_CLIENT_ID}}
clientsecret: ${{secrets.BMC_CLIENT_SECRET}}
hostname: "bmc-gha-test"
image: "ubuntu/bionic"
location: "ASH"
type: "s1.c1.small"
description: "This server is created using GitHub Actions."
GitHub-Aktion zum Abrufen von BMC-Serverinformationen
Der get-server-bmc Aktion ruft grundlegende Informationen über einen Bare-Metal-Cloud-Server ab. Diese synchrone Aktion erhält die meisten Details, die während der Aktion zum Erstellen des BMC-Servers bereitgestellt werden.
Erforderliche Eingaben
Erforderliche Eingaben für get-server-bmc Aktion sind:
clientid
:Client-ID aus den OAuth2-Anmeldedaten der Anwendung.clientsecret
:Client-Secret aus den OAuth2-Anmeldeinformationen der Anwendung.serverid
:Die ID des Servers, für den die Informationen abgerufen werden sollen. Die ID wird während des Schritts zum Erstellen des Servers erstellt.
Optionale Eingaben
Dies sind die optionalen Eingaben für get-server-bmc GitHub-Aktion:
bmcentrypoint
:Der Einstiegspunkt der BMC-API. Standardmäßighttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:Der BMC-OIDC-Token-Host. Standardmäßighttps://auth.phoenixnap.com
.bmctokenpath
:Der BMC-OIDC-Tokenpfad. Standardmäßig/auth/realms/BMC/protocol/openid-connect/token
.
Ausgänge
Der create-server-bmc Aktion liefert diese Ausgabe:
id
:Die BMC-Server-ID.status
:Der Betriebsstatus des Servers.hostname
:Der Hostname des Servers.ipaddresses
:Eine durch Kommas getrennte Liste öffentlicher IP-Adressen, die dem Server zugeordnet sind.
Beispielverwendung für die Aktion „BMC-Server erstellen“
Unten ist die Beispielverwendung für die Aktion "Server erstellen":
- name: GetServer step
uses: phoenixnap-github-actions/get-server-bmc
id: getserver
with:
clientid: ${{secrets.BMC_CLIENT_ID}}
clientsecret: ${{secrets.BMC_CLIENT_SECRET}}
serverid: ${{ steps.createserver.outputs.id }}
BMC-Server-GitHub-Aktion löschen
Der delete-server-bmc Die GitHub-Aktion löscht einen Bare-Metal-Cloud-Server. Die Aktion ist synchron, während Löschen und Aufräumen asynchron sind.
Warnung: Verwenden Sie die Löschaktion mit äußerster Vorsicht, da sie nicht rückgängig gemacht werden kann und zu Datenverlust führen kann.
Erforderliche Eingaben
Erforderliche Eingaben für delete-server-bmc Aktion sind:
clientid
:Client-ID aus den OAuth2-Anmeldedaten der Anwendung.clientsecret
:Client-Secret aus den OAuth2-Anmeldeinformationen der Anwendung.serverid
:Die ID des Servers, den Sie löschen möchten. Die ID wird während des Schritts zum Erstellen des Servers erstellt.
Optionale Eingaben
Dies sind die optionalen Eingaben für delete-server-bmc GitHub-Aktion:
bmcentrypoint
:Der Einstiegspunkt der BMC-API. Standardmäßighttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:Der BMC-OIDC-Token-Host. Standardmäßighttps://auth.phoenixnap.com
.bmctokenpath
:Der BMC-OIDC-Tokenpfad. Standardmäßig/auth/realms/BMC/protocol/openid-connect/token
.
Ausgänge
Der delete-server-bmc Aktion liefert diese Ausgabe:
id
:Die ID eines gelöschten BMC-Servers.
Beispielverwendung für die Aktion „BMC-Server löschen“
Unten ist die Beispielverwendung für die Aktion "Server erstellen":
- name: DeleteServer step
uses: phoenixnap-github-actions/delete-server-bmc
id: deleteserver
with:
clientid: ${{secrets.BMC_CLIENT_ID}}
clientsecret: ${{secrets.BMC_CLIENT_SECRET}}
serverid: ${{ steps.createserver.outputs.id }}