Introducción
GitHub Actions es una plataforma para la automatización del flujo de trabajo de desarrollo de software con una herramienta de CI/CD integrada. La plataforma es fácil de usar y no requiere una aplicación de terceros o conocimiento experto previo y una persona dedicada al mantenimiento.
Las acciones de PhoenixNAP Bare Metal Cloud GitHub sirven como un ejecutor de tareas automatizado que reacciona a los eventos de GitHub en su repositorio de git. Sin activar otro servidor, puede lograr la funcionalidad de CI/CD deseada directamente desde GitHub.

Requisitos previos
- Una cuenta de GitHub
- Cuenta Bare Metal Cloud (BMC) o phoenixNAP Client Portal (PNCP). Si es un cliente nuevo, cree una cuenta para Bare Metal Cloud. Consulte las instrucciones en video sobre la creación de una cuenta de BMC para obtener ayuda.
¿Qué es la acción de BMC GitHub?
Una acción de GitHub de Bare Metal Cloud se define mediante el action.yaml correspondiente expediente. Cada repositorio de acciones de BMC tiene un action.yaml dedicado archivo con el código creado para esa acción específica, como create-server-bmc .
El archivo yaml describe cómo ejecutar la acción, define el archivo JavaScript principal, en este caso index.js y los metadatos de la función. Puede combinar estas acciones de BMC basadas en JavaScript e incorporarlas a sus flujos de trabajo para lograr el nivel deseado de automatización.
Credenciales de BMC GitHub
El repositorio de GitHub admite variables de entorno secretas totalmente cifradas. Luego hace referencia a clientid
y clientsecret
en el archivo yaml del flujo de trabajo. Las acciones de BMC obtienen acceso a su secreto solo una vez que las agrega a su repositorio.
Una vez que agrega credenciales a su repositorio u organización, los valores no son visibles cuando ejecuta una acción.

Para obtener BMC Client ID
y Client Secret
, inicie sesión en el portal Bare Metal Cloud y:
1. Navegue a Credenciales de API página.
2. Haga clic en Crear credenciales botón.

3. Agregue el nombre de la credencial y descripción opcional en los campos respectivos.
4. Asigne alcances de permisos . Marque la casilla junto al nivel de permiso que desea otorgar a las credenciales. Elija si desea permitir el uso de todas las llamadas a la API de BMC o de solo lectura.
5. Haz clic en Crear cuando esté listo.

6. Obtendrá el Client ID
y Client Secret
en la ventana de confirmación.

7. Copie las credenciales y agréguelas a su repositorio de GitHub como secreto. Ve a Configuración -> Secretos y haz clic en Agregar un nuevo secreto .

PhoenixNAP BMC GitHub Acciones Repositorio
Nuestro repositorio de acciones de BMC GitHub actualmente contiene tres acciones:
- Cree un nuevo servidor Bare Metal Cloud
- Eliminar un servidor Bare Metal Cloud
- Obtener información básica del servidor Bare Metal Cloud
Puede combinar acciones de BMC con otras acciones para crear sus trabajos y flujos de trabajo personalizados.
Crear nueva acción GitHub del servidor BMC
El crear-servidor-bmc La acción de GitHub le permite automatizar el proceso de creación del servidor. Puede crear un flujo de trabajo que instale aplicaciones de prueba de software y, cuando necesite más recursos, activar un nuevo servidor BMC automáticamente.
Esta acción genera la nueva ID del servidor y las direcciones IP públicas en una lista con valores separados por comas. La acción es sincrónica. Sin embargo, la creación del servidor y el proceso de inicio son asincrónicos.
Entradas requeridas
Cada acción de GitHub tiene elementos obligatorios. La acción de creación del servidor debe incluir:
clientid
:ID de cliente de las credenciales OAuth2 de la aplicación.clientsecret
:Secreto del cliente de las credenciales OAuth2 de la aplicación.hostname
:nombre de host del servidor. El nombre debe seguir este patrón:1 ≤ longitud ≤ 100 coincide con^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$
Entradas opcionales
Entradas opcionales para create-server-bmc Las acciones de GitHub son:
image
:ID del sistema operativo del servidor. El valor predeterminado esubuntu/bionic
.type
:ID de tipo de servidor. El valor predeterminado ess1.c1.small
.location
:ID de ubicación del servidor. No puedes cambiar la ubicación una vez que se crea un servidor. Puede establecer este campo en PHX o ASH. El valor predeterminado esPHX
.bmcentrypoint
:El punto de entrada de la API de BMC. El valor predeterminado eshttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:El host del token OIDC de BMC. El valor predeterminado eshttps://auth.phoenixnap.com
.bmctokenpath
:la ruta del token OIDC de BMC. El valor predeterminado es/auth/realms/BMC/protocol/openid-connect/token
.
Salidas
El crear-servidor-bmc La acción tiene el siguiente resultado:
id
:El nuevo ID del servidor BMC.ipaddresses
:Una lista separada por comas de direcciones IP públicas adjuntas al nuevo servidor.
Ejemplo de uso para la acción Crear servidor BMC
A continuación se muestra el ejemplo de la acción de creación de servidor:
- 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."
Acción de GitHub para obtener información del servidor BMC
get-server-bmc La acción recupera información básica sobre un servidor Bare Metal Cloud. Esta acción síncrona obtiene la mayoría de los detalles proporcionados durante la acción de creación del servidor BMC.
Entradas requeridas
Entradas requeridas para get-server-bmc acción son:
clientid
:ID de cliente de las credenciales OAuth2 de la aplicación.clientsecret
:Secreto del cliente de las credenciales OAuth2 de la aplicación.serverid
:El ID del servidor para el que obtener la información. El ID se crea durante el paso de creación del servidor.
Entradas opcionales
Estas son las entradas opcionales para get-server-bmc Acción de GitHub:
bmcentrypoint
:El punto de entrada de la API de BMC. El valor predeterminado eshttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:El host del token OIDC de BMC. El valor predeterminado eshttps://auth.phoenixnap.com
.bmctokenpath
:la ruta del token OIDC de BMC. El valor predeterminado es/auth/realms/BMC/protocol/openid-connect/token
.
Salidas
El crear-servidor-bmc action proporciona esta salida:
id
:El ID del servidor BMC.status
:El estado operativo del servidor.hostname
:El nombre de host del servidor.ipaddresses
:Una lista separada por comas de direcciones IP públicas adjuntas al servidor.
Ejemplo de uso para la acción Crear servidor BMC
A continuación se muestra el uso de ejemplo para la acción de creación de servidor:
- 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 }}
Eliminar acción de GitHub del servidor BMC
eliminar-servidor-bmc La acción de GitHub elimina un servidor Bare Metal Cloud. La acción es síncrona, mientras que la eliminación y la limpieza son asíncronas.
Advertencia: Utilice la acción de eliminar con extrema precaución, ya que no se puede deshacer y puede provocar la pérdida de datos.
Entradas requeridas
Entradas requeridas para delete-server-bmc acción son:
clientid
:ID de cliente de las credenciales OAuth2 de la aplicación.clientsecret
:Secreto del cliente de las credenciales OAuth2 de la aplicación.serverid
:El ID del servidor que desea eliminar. El ID se crea durante el paso de creación del servidor.
Entradas opcionales
Estas son las entradas opcionales para delete-server-bmc Acción de GitHub:
bmcentrypoint
:El punto de entrada de la API de BMC. El valor predeterminado eshttps://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:El host del token OIDC de BMC. El valor predeterminado eshttps://auth.phoenixnap.com
.bmctokenpath
:la ruta del token OIDC de BMC. El valor predeterminado es/auth/realms/BMC/protocol/openid-connect/token
.
Salidas
eliminar-servidor-bmc action proporciona esta salida:
id
:El ID de un servidor BMC eliminado.
Ejemplo de uso para eliminar la acción del servidor BMC
A continuación se muestra el uso de ejemplo para la acción de creación de servidor:
- 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 }}