1. Création de l'environnement python
Afin de pouvoir gérer vos projets Openstack (avec OVH Public Cloud par exemple), il faut d’abord préparer un environnement python car les outils de ligne de commande Openstack sont développés en python.
Soit vous pouvez installer les packages openstack du système comme l’exemple de la documentation OVH, soit vous allez tout gérer depuis un environnement python (si votre version est supérieure à 3.3), et c’est ce deuxième cas qu’on va faire ici.
Installation de l’environnement python :
Ouvrez un terminal et installez le package qui permet de créer des environnements python et on installe aussi git qui servira plus tard :
sudo apt-get install python3-venv git
Ensuite, vous préparez un répertoire (par exemple $HOME/Documents/Run/venv) dans lequel vous allez créer un environnement virtuel que l’on va nommer « ovh-py-manager » :
mkdir -p $HOME/Documents/Run/venv
cd $HOME/Documents/Run/venv
python3 -m venv ovh-py-manager
Pourquoi ce nom de répertoire ?
Le répertoire Documents est le répertoire qui contient mes données dans mon répertoire utilisateur.
Le répertoire Run est un répertoire spécial non sauvegardé pour lancer des applications. Si un sous-répertoire a besoin d’être sauvegardé alors je le placerai ailleurs en créant un lien symbolique.
Le répertoire venv contiendra tous mes environnements python.
Chargement de l’environnement python :
Ce script charge des variables d’environnement, les commandes python utiliseront les binaires de l’environnement :
source ovh-py-manager/bin/activate
Clonage de mes sources GIT qui contiennent des scripts python utiles et de quoi terminer la préparation de l’installation :
git clone git@gitlab.com:libreinstall/ovh-py-manager.git ovh-py-manager/home
Installation des packages python :
pip permet d’installer des packages python dans votre environnement, on lui fournit en paramètre un fichier qui contient les packages à installer :
cd ovh-py-manager/home
pip install -r requirements.txt
2. Préparation de la configuration Openstack
Téléchargez depuis le manager OVH la configuration openrc.sh du projet Openstack que vous souhaitez gérer (après avoir créé l’utilisateur spécifique à openstack)
Placez le fichier dans le répertoire conf en le renommant sous un nom du style openrc-monprojet.sh pour le reconnaître si vous avez différents projets openstack.
Éditez ce fichier et commentez la ligne chargeant la région (en ajoutant un dièse au début de la ligne) car je préfère devoir préciser la région openstack à chaque ligne de commande :
export OS_REGION_NAME="XXX"
3. Préparation de la configuration pour l'accès à API OVH
Les outils Openstack ne permettent pas de tout faire donc on va utiliser quelques scripts python utilisant l’API OVH.
Pour créer la configuration nécessaire aux scripts python, rendez-vous dans cet article et enregistrez le fichier créé dans le répertoire conf sous le nom api-<votre_nic_handle>-cloud-ro.conf par exemple, ce qui vous permettra de le repérer ensuite et savoir sur quel compte il agit, sur quelle partie de l’API et si c’est en lecture seule (ro).
4. Chargement de l'environnement
Si vous débutez l’article par ce paragraphe, pensez à charger l’environnement python avant.
Chargez la configuration openstack :
source conf/openrc-monprojet.sh
Le mot de passe de l’utilisateur openstack est demandé.
Vérifier le nom du projet sur lequel on travaille :
Les scripts utilisent la variable d’environnement OS_TENANT_ID (identifiant du projet openstack) initialisée par le chargement de l’environnement Openstack utilisée plus haut.
Mais vous pouvez spécifier un autre identifiant de projet si besoin avec le paramètre -p
python3 api/cloud/get-project.py -c conf/api-gc1582-cloud-ro.conf
Lister les régions :
python3 api/cloud/list-regions.py -c conf/api-gc1582-cloud-ro.conf