Données de l'utilisateur
Lors du provisionnement d'un serveur sur Equinix Metal™, vous avez la possibilité d'inclure des données utilisateur, qui peuvent être utilisées pour effectuer diverses tâches d'automatisation une fois le serveur prêt, comme l'exécution de scripts courants, l'installation de packages ou le déclenchement d'autres processus de configuration plus avancés.
Utilisation
Les données utilisateur d'Equinix Metal sont basées sur [le projet open-source cloudbase-init et prennent officiellement en charge deux formats de données utilisateur.
Scripts de données utilisateur
Les scripts permettent d'exécuter des scripts shell et commencent par #! pour [Linux shell ou #ps1 pour [Windows Powershell.
- Debian/Ubuntu
- Windows
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get upgrade -y
apt-get install nginx -y
#ps1
New-Item C:/Users/Admin test.txt
Set-Content C:/Users/Admin/test.txt "Hello world"
$password = ConvertTo-SecureString "P@55w0rd!" -AsPlainText -Force
New-LocalUser -Name "user01" -Password $password
Données de configuration du nuage
[Cloud Config data doit utiliser une syntaxe yaml valide et commencer par #cloud-config
#cloud-config
package_upgrade: true
packages:
- nginx
La prise en charge des formats autres que #!<script> et #cloud-config est expérimentale.
Approvisionnement avec les données de l'utilisateur
- Console
- CLI
- API
Lors du provisionnement d'un serveur à partir de la console Metal, ajoutez les données utilisateur en développant l'onglet Paramètres optionnels > Données utilisateur.

Collez votre script dans le champ. Cliquez sur Deploy Now. Le script est lu et exécuté pendant le processus de provisionnement du serveur.
Lors du provisionnement d'un serveur à partir de la CLI, utilisez la commande metal device create et incluez votre script de données utilisateur avec -u, --userdata ou incluez un chemin d'accès à un fichier contenant votre script de données utilisateur sur votre machine locale avec --userdata-file.
metal device create --project-id <project_UUID> --plan <server_type> --metro <metro_code> --operating-system <os_code> --userdata-file <local_file_path>
Lors du provisionnement dans l'API, envoyez une requête POST au point de terminaison projects/{id}/devices et incluez votre script de données utilisateur avec le paramètre "userdata" dans le corps de la requête.
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>"
"userdata": <string>
}'
En fonction de la longueur de votre script, prévoyez un certain temps pour que le processus de provisionnement du serveur s'exécute une fois que le serveur est considéré comme "actif".
Gestion des données des utilisateurs
- Console
- CLI
- API
Les données utilisateur d'un serveur sont disponibles dans l'onglet Paramètres du serveur, sous Données utilisateur.

Pour récupérer les données utilisateur d'un serveur à partir de la CLI, utilisez la commande metal device get, en spécifiant l'indicateur -o, --output pour récupérer la sortie json complète, qui inclura les données utilisateur dans le champ "userdata".
metal device get -i <device_id> -o json
Pour récupérer les données utilisateur d'un serveur à partir de l'API, envoyez une requête GET au point de terminaison /devices/{id}/userdata.
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/devices/{id}/userdata
Vous pouvez également accéder aux données utilisateur du serveur à partir de [son point de terminaison des métadonnées] (metadata.md#user-data). Connectez-vous au serveur en SSH et envoyez une requête à https://metadata.platformequinix.com/userdata.
Vérification des données utilisateur sur le serveur
Pour vérifier les données de l'utilisateur stockées sur votre serveur, vérifiez-les sur /var/lib/cloud/instance/user-data.txt.
Les journaux des serveurs pour les données des utilisateurs sont disponibles à /var/log/cloud-init.log et /var/log/cloud-init-output.log
Ajout de données utilisateur après le provisionnement
Lors du provisionnement, les données utilisateur sont exécutées au premier démarrage d'un serveur. Vous pouvez ajouter des données utilisateur à un serveur déjà provisionné, mais vous devez d'abord réinstaller le serveur pour exécuter les nouvelles données utilisateur.
La réinstallation est une opération perturbatrice et comporte des options telles que la suppression des données. Procédez avec prudence.
- Console
- CLI
- API
Mettez à jour le champ des données de l'utilisateur dans l'onglet Paramètres du serveur, sous Données de l'utilisateur.

Cliquez sur Save. Les nouvelles données de l'utilisateur seront écrites sur le serveur et apparaîtront immédiatement dans les métadonnées du serveur, mais ne seront pas exécutées tant que vous n'aurez pas procédé à une réinstallation du serveur.
Pour mettre à jour les données utilisateur, utilisez la commande metal device update et incluez votre script de données utilisateur mis à jour avec -u, --userdata ou incluez un chemin d'accès à un fichier contenant votre script de données utilisateur mis à jour sur votre machine locale avec --userdata-file.
metal device update --project-id <project_UUID> --plan <server_type> --metro <metro_code> --operating-system <os_code> --userdata-file <local_file_path>
Les nouvelles données utilisateur seront écrites sur le serveur et apparaîtront immédiatement dans les métadonnées du serveur, mais ne seront pas exécutées tant que vous n'aurez pas procédé à une réinstallation du serveur.
Lors du provisionnement dans l'API, envoyez une requête PUT au point de terminaison projects/{id}/devices et incluez votre script de données utilisateur mis à jour avec le paramètre "userdata" dans le corps de la requête.
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"userdata": <string>
}'
Les nouvelles données utilisateur seront écrites sur le serveur et apparaîtront immédiatement dans les métadonnées du serveur, mais ne seront pas exécutées tant que vous n'aurez pas procédé à une réinstallation du serveur.