Aller au contenu

Automatisation & Infrastructure as Code

Pour une première VM, il suffit de naviguer dans Horizon et le Cloud Services Portal, mais pour une infrastructure reproductible, vous avez besoin de code. Cette page présente les trois approches d'automatisation prises en charge : l'OpenStack CLI (OSC), Terraform et Ansible.

Prérequis

  • Un poste de travail Linux (ou une VM) avec accès sortant à l'API OpenStack sur le port 443.
  • Des connaissances de base en shell.
  • Un Application Credential depuis Horizon (voir ci-dessous).

1. Obtenir un Application Credential

Pour toute automatisation, vous avez besoin d'identifiants qui ne nécessitent pas de connexion interactive. Les Application Credentials sont l'option recommandée : ils sont limités au projet, révocables et n'exposent pas votre mot de passe Horizon.

Dans Horizon : Identity → Application Credentials → Create Application Credential. Téléchargez le fichier clouds.yaml généré et placez-le dans ~/.config/openstack/clouds.yaml.

Enregistrez le secret maintenant

Le Secret de l'Application Credential n'est affiché qu'une seule fois. Si vous le perdez, vous devez créer un nouvel Application Credential.

2. Installer l'OpenStack CLI (OSC)

OSC regroupe les commandes de calcul, d'identité, d'images, de stockage objet et de stockage blocs dans une seule interface en ligne de commande. Nous recommandons de l'installer avec uv, qui fonctionne dans les deux régions.

curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool update-shell
curl https://opendev.org/openstack/requirements/raw/branch/stable/2025.1/upper-constraints.txt -fsSL -o /tmp/upper-constraints-2025.1.txt
uv tool install --python 3.12 python-openstackclient -c "/tmp/upper-constraints-2025.1.txt"

La séquence complète de commandes avec tous les clients de service se trouve dans le guide d'installation.

Définissez OS_CLOUD=openstack (en correspondance avec la clé de premier niveau de votre clouds.yaml) et vérifiez :

openstack image list

Guide d'installation complet d'OSC

3. Déployer avec OSC

Un déploiement de VM en une seule commande :

openstack server create vm-u2404-az2 \
   --image "Ubuntu 24.04" \
   --flavor m1.small \
   --key-name foo-key \
   --network foo-net \
   --security-group default \
   --availability-zone ch-zh1-az2

4. Déployer avec Terraform

Terraform est l'approche recommandée pour l'infrastructure de production : état déclaratif, workflow plan/apply et réutilisation de modules.

Guide d'installation complet de Terraform

resource "openstack_compute_instance_v2" "instance_1" {
   name            = "vm-u2404-az2"
   image_name      = "Ubuntu 24.04"
   flavor_name     = "m1.micro"
   key_pair        = "foo-key"
   security_groups = ["default"]
   availability_zone = "ch-zh1-az2"

   network { name = "foo-net" }
}

5. Déployer avec Ansible

Si vous utilisez déjà Ansible, le module os_server déploie directement les instances :

Guide d'installation complet d'Ansible

- os_server:
    name: "foo-u2404-az2"
    image: "Ubuntu 24.04"
    key_name: "foo-key"
    flavor: "m1.micro"
    network: "foo-net"
    security_groups: "default"
    availability_zone: "ch-zh1-az2"

Exemples OSC / Ansible / Terraform

Orchestration Heat

Heat (le moteur d'orchestration natif d'OpenStack) n'est pas proposé sur cette plateforme. Utilisez Terraform ou Ansible pour l'infrastructure as code.

Étape suivante

Vous avez maintenant une vue d'ensemble complète : concepts, connexion, première VM, premier bucket et automatisation. Le Glossaire est votre référence pour les termes que vous ne connaissez pas, et le reste de la documentation va plus loin :

  • OpenStack : réseau, load balancers, IPv6, port forwarding, DNS.
  • Cloud Services Portal : sauvegardes, Kubernetes, gestion des quotas, utilisation.
  • IA : Everyware AI API pour le chat, les embeddings et le rerank.