Introduzione
GitHub Actions è una piattaforma per l'automazione del flusso di lavoro di sviluppo software con uno strumento CI/CD integrato. La piattaforma è facile da usare e non richiede un'app di terze parti o conoscenze pregresse di esperti e una persona dedicata per la manutenzione.
Le azioni PhoenixNAP Bare Metal Cloud GitHub fungono da task runner automatizzato che reagisce agli eventi GitHub nel tuo repository git. Senza avviare un altro server, puoi ottenere la funzionalità CI/CD desiderata direttamente da GitHub.
Prerequisiti
- Un account GitHub
- Account Bare Metal Cloud (BMC) o phoenixNAP Client Portal (PNCP). Se sei un nuovo cliente, crea un account per Bare Metal Cloud. Fare riferimento al video di istruzioni per la creazione dell'account BMC per assistenza.
Cos'è BMC GitHub Action?
Un'azione Bare Metal Cloud GitHub è definita dal corrispondente action.yaml file. Ogni repository di azioni BMC ha un action.yaml dedicato file con il codice creato per quell'azione specifica, ad esempio create-server-bmc .
Il file yaml descrive come eseguire l'azione, definisce il file JavaScript principale, in questo caso index.js e i metadati della funzione. Puoi combinare queste azioni BMC basate su JavaScript e incorporarle nei tuoi flussi di lavoro per ottenere il livello di automazione desiderato.
Credenziali BMC GitHub
Il repository GitHub supporta variabili di ambiente segrete completamente crittografate. Quindi fai riferimento a clientid
e clientsecret
nel file yaml del flusso di lavoro. Le azioni BMC ottengono l'accesso al tuo segreto solo dopo averle aggiunte al tuo repository.
Dopo aver aggiunto le credenziali al tuo repository o organizzazione, i valori non sono visibili quando esegui un'azione.
Per ottenere BMC Client ID
e Client Secret
, accedi al portale Bare Metal Cloud e:
1. Accedi alle Credenziali API pagina.
2. Fai clic su Crea credenziali pulsante.
3. Aggiungi il nome della credenziale e descrizione facoltativa nei rispettivi campi.
4. Assegna ambito delle autorizzazioni . Seleziona la casella accanto al livello di autorizzazione che desideri concedere alle credenziali. Scegli se desideri consentire l'utilizzo di tutte le chiamate API BMC o di sola lettura.
5. Fare clic su Crea quando è pronto.
6. Riceverai il Client ID
e Client Secret
nella finestra di conferma.
7. Copia le credenziali e aggiungile al tuo repository GitHub come Secret. Vai a Impostazioni -> Segreti e fai clic su Aggiungi un nuovo segreto .
Repository di azioni PhoenixNAP BMC GitHub
Il nostro repository BMC GitHub Actions contiene attualmente tre azioni:
- Crea un nuovo server Bare Metal Cloud
- Elimina un server Bare Metal Cloud
- Ottieni informazioni di base sul server Bare Metal Cloud
Puoi combinare azioni BMC con altre azioni per creare lavori e flussi di lavoro personalizzati.
Crea nuova azione GitHub del server BMC
Il create-server-bmc L'azione GitHub ti consente di automatizzare il processo di creazione del server. Puoi creare un flusso di lavoro che installa le applicazioni di test del software e quando hai bisogno di più risorse per avviare automaticamente un nuovo server BMC.
Questa azione restituisce il nuovo ID server e gli indirizzi IP pubblici in un elenco con valori separati da virgole. L'azione è sincrona. Tuttavia, la creazione del server e il processo di avvio sono asincroni.
Ingressi richiesti
Ogni azione GitHub ha elementi obbligatori. L'azione di creazione del server deve includere:
clientid
:ID client dalle credenziali OAuth2 dell'applicazione.clientsecret
:Client Secret dalle credenziali OAuth2 dell'applicazione.hostname
:Nome host del server. Il nome deve seguire questo schema:1 ≤ lunghezza ≤ 100 corrispondenze^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$
Ingressi opzionali
Input facoltativi per create-server-bmc Le azioni GitHub sono:
image
:l'ID del sistema operativo del server. Il valore predefinito èubuntu/bionic
.type
:ID del tipo di server. Il valore predefinito ès1.c1.small
.location
:ID posizione del server. Non puoi cambiare la posizione una volta creato un server. È possibile impostare questo campo su PHX o ASH. Il valore predefinito èPHX
.bmcentrypoint
:Il punto di ingresso dell'API BMC. Il valore predefinito èhttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:L'host del token BMC OIDC. Il valore predefinito èhttps://auth.phoenixnap.com
.bmctokenpath
:Il percorso del token BMC OIDC. Il valore predefinito è/auth/realms/BMC/protocol/openid-connect/token
.
Uscite
Il create-server-bmc action ha il seguente output:
id
:il nuovo ID del server BMC.ipaddresses
:un elenco separato da virgole di indirizzi IP pubblici allegati al nuovo server.
Esempio di utilizzo per Crea azione server BMC
Di seguito è riportato l'esempio per l'azione di creazione del server:
- 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."
Ottieni informazioni sul server BMC Azione GitHub
Il get-server-bmc action recupera le informazioni di base su un server Bare Metal Cloud. Questa azione sincrona ottiene la maggior parte dei dettagli forniti durante l'azione di creazione del server BMC.
Ingressi richiesti
Input obbligatori per get-server-bmc le azioni sono:
clientid
:ID client dalle credenziali OAuth2 dell'applicazione.clientsecret
:Client Secret dalle credenziali OAuth2 dell'applicazione.serverid
:L'ID del server per il quale ottenere le informazioni. L'ID viene creato durante la fase di creazione del server.
Ingressi opzionali
Questi sono gli input opzionali per get-server-bmc Azione GitHub:
bmcentrypoint
:Il punto di ingresso dell'API BMC. Il valore predefinito èhttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:L'host del token BMC OIDC. Il valore predefinito èhttps://auth.phoenixnap.com
.bmctokenpath
:Il percorso del token BMC OIDC. Il valore predefinito è/auth/realms/BMC/protocol/openid-connect/token
.
Uscite
Il create-server-bmc action fornisce questo output:
id
:l'ID del server BMC.status
:Lo stato operativo del server.hostname
:il nome host del server.ipaddresses
:un elenco separato da virgole di indirizzi IP pubblici collegati al server.
Esempio di utilizzo per Crea azione server BMC
Di seguito è riportato l'utilizzo di esempio per l'azione di creazione del server:
- 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 }}
Elimina azione GitHub del server BMC
Il delete-server-bmc L'azione GitHub elimina un server Bare Metal Cloud. L'azione è sincrona, mentre l'eliminazione e la pulizia sono asincrone.
Avviso: Utilizzare l'azione di eliminazione con estrema cautela poiché non può essere annullata e potrebbe causare la perdita di dati.
Ingressi richiesti
Input obbligatori per delete-server-bmc le azioni sono:
clientid
:ID client dalle credenziali OAuth2 dell'applicazione.clientsecret
:Client Secret dalle credenziali OAuth2 dell'applicazione.serverid
:L'ID del server che desideri eliminare. L'ID viene creato durante la fase di creazione del server.
Ingressi opzionali
Questi sono gli input facoltativi per delete-server-bmc Azione GitHub:
bmcentrypoint
:Il punto di ingresso dell'API BMC. Il valore predefinito èhttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:L'host del token BMC OIDC. Il valore predefinito èhttps://auth.phoenixnap.com
.bmctokenpath
:Il percorso del token BMC OIDC. Il valore predefinito è/auth/realms/BMC/protocol/openid-connect/token
.
Uscite
Il delete-server-bmc action fornisce questo output:
id
:l'ID di un server BMC eliminato.
Esempio di utilizzo per l'eliminazione dell'azione del server BMC
Di seguito è riportato l'utilizzo di esempio per l'azione di creazione del server:
- 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 }}