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.