Données 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, telles que 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 servent à 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 cloud
Les données de configuration du nuage (https://cloudbase-init.readthedocs.io/en/latest/userdata.html#cloud-config) doivent 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.
Provisionnement avec les données utilisateur
- Console
- CLI
- API
Lors de l'approvisionnement d'un serveur depuis la console Metal, ajoutez des données utilisateur en développant la section Paramètres optionnels. Onglet Données de l'utilisateur.

Collez votre script dans le champ prévu à cet effet. Cliquez sur Déployer maintenant. Le script sera lu et exécuté pendant le processus d'approvisionnement du serveur.
Lors de l'approvisionnement d'un serveur depuis l'interface de ligne de commande (CLI), utilisez la commande metal device create et incluez votre script de données utilisateur avec -u, --userdata ou indiquez le chemin d'accès à un fichier contenant votre script de données utilisateur sur votre machine locale.
--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 de la configuration 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 vous voyez le serveur comme « Actif ».
Gestion des données utilisateur
- 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 depuis l'interface de ligne de commande, utilisez la commande metal device get, en spécifiant avec 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 via son point de terminaison de métadonnées. Connectez-vous au serveur via 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 utilisateur stockées sur votre serveur, consultez-les à /var/lib/cloud/instance/user-data.txt.
Les journaux du serveur pour les données utilisateur sont disponibles à /var/log/cloud-init.log et /var/log/cloud-init-output.log.
Ajout de données utilisateur après le provisionnement
Lors de la mise en service, les données utilisateur sont exécutées au premier démarrage du serveur. Vous pouvez ajouter des données utilisateur à un serveur déjà mis en service, mais vous devez d'abord réinstaller le serveur pour que les nouvelles données utilisateur soient exécutées.
La réinstallation est une opération perturbatrice qui peut entraîner la suppression de données. Soyez prudent.
- Console
- CLI
- API
Mettez à jour le champ des données utilisateur dans l'onglet Paramètres du serveur, sous Données utilisateur.

Cliquez sur Enregistrer. Les nouvelles données utilisateur seront sauvegardées sur le serveur et apparaîtront immédiatement dans ses métadonnées, mais ne seront exécutées qu'après 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 vers 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 effectué une réinstallation du serveur.
Lors de la configuration 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 effectué une réinstallation du serveur.