Présentation
GitHub Actions est une plate-forme d'automatisation des workflows de développement de logiciels avec un outil CI/CD intégré. La plate-forme est facile à utiliser et ne nécessite pas d'application tierce ni de connaissances préalables d'un expert ni d'une personne dédiée à la maintenance.
Les actions PhoenixNAP Bare Metal Cloud GitHub servent d'exécuteur de tâches automatisé qui réagit aux événements GitHub dans votre référentiel git. Sans faire tourner un autre serveur, vous pouvez obtenir la fonctionnalité CI/CD souhaitée directement à partir de GitHub.
Prérequis
- Un compte GitHub
- Compte Bare Metal Cloud (BMC) ou portail client phoenixNAP (PNCP). Si vous êtes un nouveau client, créez un compte pour Bare Metal Cloud. Reportez-vous aux instructions vidéo de création de compte BMC pour obtenir de l'aide.
Qu'est-ce que BMC GitHub Action ?
Une action Bare Metal Cloud GitHub est définie par le action.yaml correspondant dossier. Chaque référentiel d'action BMC a un action.yaml dédié fichier avec le code créé pour cette action spécifique, comme create-server-bmc .
Le fichier yaml décrit comment exécuter l'action, définit le fichier JavaScript principal, dans ce cas index.js et les métadonnées de la fonction. Vous pouvez combiner ces actions BMC basées sur JavaScript et les incorporer dans vos flux de travail pour atteindre le niveau d'automatisation souhaité.
Identifiants BMC GitHub
Le référentiel GitHub prend en charge les variables d'environnement secrètes entièrement chiffrées. Vous référencez ensuite clientid
et clientsecret
dans le fichier yaml du workflow. Les actions BMC n'ont accès à votre secret qu'une fois que vous les avez ajoutés à votre référentiel.
Une fois que vous avez ajouté des informations d'identification à votre référentiel ou à votre organisation, les valeurs ne sont pas visibles lorsque vous exécutez une action.
Pour obtenir l'Client ID
de BMC et Client Secret
, connectez-vous au portail Bare Metal Cloud et :
1. Accédez aux informations d'identification de l'API page.
2. Cliquez sur Créer des informations d'identification bouton.
3. Ajoutez le nom d'identification et description facultative dans les champs respectifs.
4. Attribuez des étendues d'autorisations . Cochez la case à côté du niveau d'autorisation que vous souhaitez accorder aux informations d'identification. Choisissez si vous souhaitez autoriser l'utilisation de tous les appels d'API BMC ou en lecture seule.
5. Cliquez sur Créer une fois prêt.
6. Vous obtiendrez l'Client ID
et Client Secret
dans la fenêtre de confirmation.
7. Copiez les informations d'identification et ajoutez-les à votre référentiel GitHub en tant que secret. Allez dans Paramètres - > Secrets et cliquez sur Ajouter un nouveau secret .
Référentiel d'actions PhoenixNAP BMC GitHub
Notre référentiel BMC GitHub Actions contient actuellement trois actions :
- Créer un nouveau serveur Bare Metal Cloud
- Supprimer un serveur Bare Metal Cloud
- Obtenir des informations de base sur le serveur Bare Metal Cloud
Vous pouvez combiner des actions BMC avec d'autres actions pour créer vos travaux et workflows personnalisés.
Créer une nouvelle action GitHub du serveur BMC
Le create-server-bmc L'action GitHub vous permet d'automatiser le processus de création de serveur. Vous pouvez créer un flux de travail qui installe des applications de test de logiciels et lorsque vous avez besoin de plus de ressources pour démarrer automatiquement un nouveau serveur BMC.
Cette action génère le nouvel ID de serveur et les adresses IP publiques dans une liste avec des valeurs séparées par des virgules. L'action est synchrone. Cependant, la création du serveur et le processus de démarrage sont asynchrones.
Saisies requises
Chaque action GitHub comporte des éléments obligatoires. L'action de création de serveur doit inclure :
Client ID
:ID client des informations d'identification OAuth2 de l'application.clientsecret
:Clé secrète du client à partir des informations d'identification OAuth2 de l'application.hostname
:Nom d'hôte du serveur. Le nom doit suivre ce modèle :1 ≤ longueur ≤ 100 correspond à^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$
Entrées facultatives
Entrées facultatives pour create-server-bmc Les actions GitHub sont :
image
:ID du système d'exploitation du serveur. Par défaut,ubuntu/bionic
.type
:ID du type de serveur. Par défaut,s1.c1.small
.location
:ID d'emplacement du serveur. Vous ne pouvez pas modifier l'emplacement une fois qu'un serveur est créé. Vous pouvez définir ce champ sur PHX ou ASH. La valeur par défaut estPHX
.bmcentrypoint
:Le point d'entrée de l'API BMC. Par défaut,https://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:l'hôte de jeton BMC OIDC. Par défaut,https://auth.phoenixnap.com
.bmctokenpath
:Le chemin du jeton BMC OIDC. Par défaut,/auth/realms/BMC/protocol/openid-connect/token
.
Sorties
Le create-server-bmc l'action a le résultat suivant :
id
:Le nouvel ID de serveur BMC.ipaddresses
:Une liste d'adresses IP publiques séparées par des virgules attachées au nouveau serveur.
Exemple d'utilisation pour l'action Créer un serveur BMC
Vous trouverez ci-dessous l'exemple de l'action de création de serveur :
- 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."
Obtenir l'action GitHub d'informations sur le serveur BMC
Le get-server-bmc récupère des informations de base sur un serveur Bare Metal Cloud. Cette action synchrone obtient la plupart des détails fournis lors de l'action de création du serveur BMC.
Saisies requises
Entrées requises pour get-server-bmc actions sont :
Client ID
:ID client des informations d'identification OAuth2 de l'application.clientsecret
:Clé secrète du client à partir des informations d'identification OAuth2 de l'application.serverid
:ID du serveur pour lequel obtenir les informations. L'ID est créé lors de l'étape de création du serveur.
Entrées facultatives
Ce sont les entrées facultatives pour get-server-bmc Action GitHub :
bmcentrypoint
:Le point d'entrée de l'API BMC. Par défaut,https://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:l'hôte de jeton BMC OIDC. Par défaut,https://auth.phoenixnap.com
.bmctokenpath
:Le chemin du jeton BMC OIDC. Par défaut,/auth/realms/BMC/protocol/openid-connect/token
.
Sorties
Le create-server-bmc l'action fournit cette sortie :
id
:ID du serveur BMC.status
:L'état opérationnel du serveur.hostname
:Le nom d'hôte du serveur.ipaddresses
:Une liste d'adresses IP publiques séparées par des virgules attachées au serveur.
Exemple d'utilisation pour l'action Créer un serveur BMC
Vous trouverez ci-dessous l'exemple d'utilisation de l'action de création de serveur :
- 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 }}
Supprimer l'action GitHub du serveur BMC
Le delete-server-bmc L'action GitHub supprime un serveur Bare Metal Cloud. L'action est synchrone, tandis que la suppression et le nettoyage sont asynchrones.
Avertissement : Utilisez l'action de suppression avec une extrême prudence car elle ne peut pas être annulée et peut entraîner une perte de données.
Saisies requises
Entrées requises pour delete-server-bmc actions sont :
Client ID
:ID client des informations d'identification OAuth2 de l'application.clientsecret
:Clé secrète du client à partir des informations d'identification OAuth2 de l'application.serverid
:L'ID du serveur que vous souhaitez supprimer. L'ID est créé lors de l'étape de création du serveur.
Entrées facultatives
Ce sont les entrées facultatives pour delete-server-bmc Action GitHub :
bmcentrypoint
:Le point d'entrée de l'API BMC. Par défaut,https://api.phoenixnap.com/bmc/v1/
.bmctokenhost
:l'hôte de jeton BMC OIDC. Par défaut,https://auth.phoenixnap.com
.bmctokenpath
:Le chemin du jeton BMC OIDC. Par défaut,/auth/realms/BMC/protocol/openid-connect/token
.
Sorties
Le delete-server-bmc l'action fournit cette sortie :
id
:ID d'un serveur BMC supprimé.
Exemple d'utilisation pour l'action de suppression du serveur BMC
Vous trouverez ci-dessous l'exemple d'utilisation de l'action de création de serveur :
- 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 }}