Christophe Ti

(Christophe TREMBLAY-GUILLOUX)

Ingénieur système Linux – TJM: 630 € HT

L’impression d’être entouré ou conseillé par des soi-disant « Expert Linux » (avant qu’ils ne disparaissent du radar) ?

Christophe est l’ULTIME expert en système Linux, hébergement web et développement Puppet que vous garderez dans vos contacts… à vie.

Préparer un environnement python pour Openstack OVH Public Cloud

Les conseils privés de Christophe Ti

Quelles sont les mystérieuses techniques que j’utilise pour vous fournir un serveur Linux Debian (ou hébergement web), fiable, performant et sécurisé, sans devoir monter la garde jour et nuit ?

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
				
			

Quelle est la mystérieuse ingénierie qui me permet d'obtenir un serveur Linux fiable et performant, sans devoir monter la garde jour et nuit ?