déploie OpenStack 2025.2 avec Kolla-Ansible (tout-en-un, API sur dummy0)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
87c8aac5f5
commit
db2842689a
12 changed files with 978 additions and 3 deletions
4
ansible/roles/kolla/defaults/main.yml
Normal file
4
ansible/roles/kolla/defaults/main.yml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
kolla_serie: "2025.2"
|
||||
kolla_venv: /opt/kolla-venv
|
||||
kolla_config_dir: /etc/kolla
|
||||
120
ansible/roles/kolla/tasks/main.yml
Normal file
120
ansible/roles/kolla/tasks/main.yml
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
---
|
||||
# Étape 5 : prépare Kolla-Ansible (venv, configuration, mots de passe).
|
||||
# Les commandes longues (bootstrap-servers, prechecks, deploy) se lancent à la
|
||||
# main, voir docs/runbooks/openstack.md.
|
||||
|
||||
- name: installer les dépendances système de Kolla-Ansible
|
||||
tags: [installation]
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- git
|
||||
- python3-dev
|
||||
- libffi-dev
|
||||
- gcc
|
||||
- libssl-dev
|
||||
- libdbus-glib-1-dev
|
||||
- python3-venv
|
||||
state: present
|
||||
update_cache: true
|
||||
cache_valid_time: 3600
|
||||
|
||||
- name: créer le venv et mettre pip à jour
|
||||
tags: [installation]
|
||||
ansible.builtin.pip:
|
||||
name: pip
|
||||
state: latest
|
||||
virtualenv: "{{ kolla_venv }}"
|
||||
virtualenv_command: python3 -m venv
|
||||
|
||||
- name: installer Kolla-Ansible {{ kolla_serie }}
|
||||
tags: [installation]
|
||||
ansible.builtin.pip:
|
||||
name: "git+https://opendev.org/openstack/kolla-ansible@stable/{{ kolla_serie }}"
|
||||
virtualenv: "{{ kolla_venv }}"
|
||||
|
||||
# Kolla exécute ses modules avec le Python du venv (connexion locale) : les
|
||||
# bibliothèques docker et dbus doivent donc y être, pas seulement dans le système.
|
||||
- name: installer les SDK docker et dbus dans le venv (contraintes {{ kolla_serie }})
|
||||
tags: [installation]
|
||||
ansible.builtin.pip:
|
||||
name:
|
||||
- docker
|
||||
- dbus-python
|
||||
extra_args: "-c https://releases.openstack.org/constraints/upper/{{ kolla_serie }}"
|
||||
virtualenv: "{{ kolla_venv }}"
|
||||
|
||||
- name: installer le client openstack (contraintes {{ kolla_serie }})
|
||||
tags: [installation]
|
||||
ansible.builtin.pip:
|
||||
name: python-openstackclient
|
||||
extra_args: "-c https://releases.openstack.org/constraints/upper/{{ kolla_serie }}"
|
||||
virtualenv: "{{ kolla_venv }}"
|
||||
|
||||
- name: rendre les commandes du venv accessibles dans le PATH
|
||||
tags: [installation]
|
||||
ansible.builtin.file:
|
||||
src: "{{ kolla_venv }}/bin/{{ item }}"
|
||||
dest: "/usr/local/bin/{{ item }}"
|
||||
state: link
|
||||
loop:
|
||||
- kolla-ansible
|
||||
- kolla-genpwd
|
||||
- openstack
|
||||
|
||||
- name: créer {{ kolla_config_dir }}
|
||||
ansible.builtin.file:
|
||||
path: "{{ kolla_config_dir }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0750"
|
||||
|
||||
- name: déployer globals.yml (versionné dans le dépôt, sans secret)
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../kolla/globals.yml"
|
||||
dest: "{{ kolla_config_dir }}/globals.yml"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0640"
|
||||
|
||||
- name: déployer l'inventaire all-in-one
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../kolla/all-in-one"
|
||||
dest: "{{ kolla_config_dir }}/all-in-one"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0640"
|
||||
|
||||
# passwords.yml n'existe que sur le serveur : jamais dans Git. On copie le
|
||||
# modèle vide une seule fois, puis kolla-genpwd le remplit.
|
||||
- name: copier le modèle passwords.yml s'il n'existe pas encore
|
||||
ansible.builtin.copy:
|
||||
src: "{{ kolla_venv }}/share/kolla-ansible/etc_examples/kolla/passwords.yml"
|
||||
dest: "{{ kolla_config_dir }}/passwords.yml"
|
||||
remote_src: true
|
||||
force: false
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
register: kolla_passwords_modele
|
||||
|
||||
- name: générer les mots de passe (première fois seulement)
|
||||
ansible.builtin.command:
|
||||
cmd: "{{ kolla_venv }}/bin/kolla-genpwd -p {{ kolla_config_dir }}/passwords.yml"
|
||||
when: kolla_passwords_modele.changed
|
||||
|
||||
# kolla-genpwd réécrit le fichier en 640 : on reforce 600 à chaque passage.
|
||||
- name: restreindre passwords.yml à root seul
|
||||
ansible.builtin.file:
|
||||
path: "{{ kolla_config_dir }}/passwords.yml"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
|
||||
- name: installer les dépendances Ansible de Kolla (collections Galaxy)
|
||||
ansible.builtin.command:
|
||||
cmd: "{{ kolla_venv }}/bin/kolla-ansible install-deps"
|
||||
environment:
|
||||
PATH: "{{ kolla_venv }}/bin:{{ ansible_env.PATH }}"
|
||||
register: kolla_install_deps
|
||||
changed_when: "'Installing' in kolla_install_deps.stdout"
|
||||
Loading…
Add table
Add a link
Reference in a new issue