Installer les CLI openstack
sudo apt install python3-openstackclient python3-designateclient python3-osc-placement
Ubuntu propose par défaut les CLI pour la version Yoga d'Openstack.
Il donc possible que la plateforme du département ne comprenne pas certains
paramètres envoyés
sudo apt install software-properties-common
sudo add-apt-repository cloud-archive:xena
sudo apt install python3-openstackclient python3-designateclient python3-osc-placement
sudo add-apt-repository cloud-archive:xena
sudo apt install python3-openstackclient python3-designateclient python3-osc-placement
sudo dnf install python3-openstackclient python3-designateclient
Une fois les paquets installés, il est nécessaire de configurer la CLI pour
indiquer comment communiquer avec la plateforme. Cette configuration est réalisée
par un fichier "openrc.sh" qui configure des variables d'environnement dans votre shell.
Il est possible de réaliser cette étape une seule fois puis de modifier la variable OS_PROJECT_NAME par le projet qui vous intéresse. Mais le plus simple est d'avoir un seul fichier par projet.
Ensuite il vous suffit de cliquer sur Download Openstack RC File
puis choisir Openstack RC File.
Il est possible de réaliser cette étape une seule fois puis de modifier la variable OS_PROJECT_NAME par le projet qui vous intéresse. Mais le plus simple est d'avoir un seul fichier par projet.
Téléchargement du fichier
Pour télécharger le fichier vous devez vous authentifier sur Horizon . Puis vous rendre dans la section API Access sur la gauche.
Pratique
Il est aussi possible d'utiliser un compte applicatif pour éviter de mettre votre mot de passe en mémoire. Comment créer un compte applicatif?
Il vous suffit ensuite de "sourcer" les variables dans le fichier:
Il est aussi possible d'utiliser un compte applicatif pour éviter de mettre votre mot de passe en mémoire. Comment créer un compte applicatif?
cd le dossier ou vous avez téléchargé le fichier
source nomProjet-openrc.sh
Votre terminal vous demandera votre mot de passe. C'est normal,
c'est pour l'authentification auprès de la plateforme! Par contre,
ça implique que votre mot de passe sera stocké en mémoire (variable env).
Si vous ne souhaitez pas stocker votre mot de passe en mémoire, vous pouvez retirer la ligne: "read -sr OS_PASSWORD_INPUT"
de votre fichier "openrc.sh" ou unset OS_PASSWORD après utilisation des CLI.
Par contre la CLI vous demandera à chaque commande de saisir votre mot de passe.
source nomProjet-openrc.sh
Quelques exemples
Lister mes VM
openstack server list
Obtenir l'adresse IP de toutes mes VM
openstack server list -f value -c Networks | egrep -on "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | awk -F: '{ if(!a[$1]) a[$1]=$2; else a[$1]=a[$1]" "$2}END{ for(i in a) print a[i]}'
Obtenir l'adresse IP et le nom de mes VM
openstack server list -f value -c Networks -c Name | egrep -no "(^[a-zA-Z0-9\-_]+)|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})" | awk -F: '{ if(!a[$1]) a[$1]=$2; else a[$1]=a[$1]" "$2}END{ for(i in a) print a[i]}'
Ajouter SSH a mon "groupe de sécurité par défaut"
# Fonctionne uniquement avec un seul security group dans le projet
SECURE_ID=$(openstack security group list -f value -c ID)
openstack security group rule create --protocol tcp --remote-ip 0.0.0.0/0 --dst-port 22 $SECURE_ID
SECURE_ID=$(openstack security group list -f value -c ID)
openstack security group rule create --protocol tcp --remote-ip 0.0.0.0/0 --dst-port 22 $SECURE_ID