L’API CloudStack

L’API CloudStack est une API de bas niveau qui a été utilisé pour implémenter les interfaces web CloudStack. C’est également une bonne base pour implémenter d’autre APIs populaires comme EC2/S3 et les standards DMTF émergeant.

De nombreux appels aux APIs CloudStack sont asynchrones. Ces dernières vont retourner un ID de travail lorsqu’elles sont appelées. Cet ID de travail peut être utilisé pour interroger le status du travail plus tard. Aussi, les appels aux statuts sur les ressources impactées vont fournir des indications sur leur état.

L’API a une base de requête type REST et retourne les résultats en XML ou JSON.

Voir Le guide du Développeur et La référence API.

API de Provisionnement et d’Authentification

CloudStack s’attend à ce qu’un utilisateur ait sa propre infrastructure de provisionnement. Il fourni les APIs pour intégrer avec ces systèmes existants où les systèmes font appel à CloudStackpour ajouter/supprimer les utilisateurs..

CloudStack supporte les authentificateurs tiers. Par défaut, CloudStack assume qu’il soit provisionné avec le mot de passe utilisateur, et a un résultat d’authentification fait localement. Toutefois, une authentification externe est tout aussi possible. Par exemple, voir Utiliser un serveur LDAP pour l’authentification utilisateur.

Donnée utilisateur et méta-données

CloudStack fourni un accès à l’API pour attacher jusqu’à 32KB de données utilisateur à une VM déployée. Les VMs déployées ont aussi un accès aux méta-données de l’instance via le routeur virtuel.

Les données utilisateurs peuvent être accédée une fois que l’adresse IP du routeur virtuel est connue. Une fois cette adresse connue, utiliser les étapes suivantes pour accéder aux données de l’utilisateur :

  1. Lancer la commande suivante pour trouver le routeur virtuel.

    # cat /var/lib/dhclient/dhclient-eth0.leases | grep dhcp-server-identifier | tail -1
    
  2. Accéder aux données utilisateur en lancer la commande suivante utilisant le résultat de la commande précédente.

    # curl http://10.1.1.1/latest/user-data
    

Les méta-données peuvent être accédées de la même manière, en utilisant une URL au format http://10.1.1.1/latest/meta-data/{metadata type}. (pour la compatibilité ascendante, l’URL précédente http://10.1.1.1/latest/{metadata type} est aussi supportée). Pour le type de méta-données, utiliser :

  • service-offering. Une description de l’offre de service des VM.

  • availability-zone. Le nom de la Zone

  • local-ipv4. L’IP invitée de la VM

  • local-hostname. Le nom d’hôte de la VM

  • public-ipv4. La première IP publique pour le routeur. (E.G. la première IP de eth2)

  • public-hostname. Ceci est la même chose que public-ipv4

  • instance-id. Le nom de l’instance de la VM