... | @@ -23,29 +23,130 @@ Cette documentation détaille l'utilisation du client en ligne de |
... | @@ -23,29 +23,130 @@ Cette documentation détaille l'utilisation du client en ligne de |
|
commande (ou **CLI** pour *Command Line Interface*) `openstack` interagissant avec les modules OpenStack pour
|
|
commande (ou **CLI** pour *Command Line Interface*) `openstack` interagissant avec les modules OpenStack pour
|
|
utiliser efficacement le service de Cloud Computing IaaS. Une
|
|
utiliser efficacement le service de Cloud Computing IaaS. Une
|
|
alternative à l'utilisation de la ligne de commande est d'utiliser
|
|
alternative à l'utilisation de la ligne de commande est d'utiliser
|
|
[l'interface Web Horizon](https://lpnhe-cloud028.in2p3.fr/dashboard/).
|
|
[l'interface Web Horizon](https://lpnhe-cloud.in2p3.fr/dashboard/).
|
|
|
|
|
|
# CLI: étapes obligatoires
|
|
# Client Openstack : installation et conditions d'utilidation
|
|
|
|
|
|
## Définition des variables d'environnement
|
|
## Conditions d'utilisation
|
|
|
|
|
|
|
|
Pour pouvoir utiliser le service cloud via la CLI (*Command Line Interface*), vous devez soit vous connecter via ssh à une passerelle correspondant soit en installant la CLI directement sur votre poste. Vous devez être, dans les deux cas, connectés sur un des réseaux suivant: IN2P3, Sorbonne-Université, Université de Paris ou ISCPIF.
|
|
|
|
|
|
|
|
Pour les membres du LPNHE, l'accès à la passerelle se fait en utilisant le *login/password* de votre compte mail, via:
|
|
|
|
|
|
Pour pouvoir utiliser le service cloud, vous devez au préalable vous connecter via ssh à la passerelle correspondant à votre projet :
|
|
|
|
``` {.sourceCode .console}
|
|
``` {.sourceCode .console}
|
|
$ ssh username@IP_PROJECT_SSHGATE
|
|
$ ssh username@lpncloud-sshint.in2p3.fr
|
|
|
|
```
|
|
|
|
Pour les utilisateurs *extérieurs*, l'accès se fait avec les identifiants qui vous ont été communiqués lors de la création
|
|
|
|
de votre compte, via :
|
|
|
|
|
|
|
|
``` {.sourceCode .console}
|
|
|
|
$ ssh username@lpncloud-sshext.in2p3.fr
|
|
|
|
```
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
Cette section détaille la procédure d'installation du client en ligne de
|
|
|
|
commande d'OpenStack.
|
|
|
|
|
|
|
|
Le client `openstack` est disponible pour différents systèmes
|
|
|
|
d'exploitation, soit à travers une installation avec PIP ou par les
|
|
|
|
gestionnaires de paquets APT ou YUM pour les distributions Linux Debian,
|
|
|
|
Ubuntu, RedHat ou dérivées. Dans tous les cas, il est nécessaire que le
|
|
|
|
logiciel [Python](http://www.python.org) (version 2.7 ou ultérieure)
|
|
|
|
soit installé. Une seule installation est nécessaire, soit avec le
|
|
|
|
gestionnaire de paquets de votre distribution, soit avec PIP. Nous
|
|
|
|
recommandons d'utiliser l'installation à l'aide du gestionnaire de
|
|
|
|
paquets quand c'est possible.
|
|
|
|
|
|
|
|
Les différents modes d'installation sont détaillées ci-après. Il faut
|
|
|
|
éviter d'utiliser deux modes d'installation, en mélangeant par exemple
|
|
|
|
PIP avec les paquets de la distribution, pour éviter des conflits entre
|
|
|
|
les différentes versions qui peuvent rendre le client inutilisable.
|
|
|
|
|
|
|
|
Installation sur les systèmes Debian et Ubuntu
|
|
|
|
----------------------------------------------
|
|
|
|
|
|
|
|
La version du client `openstack` fournie par défaut dans Ubuntu 16.04
|
|
|
|
est trop ancienne et présente des bugs. Il faut donc utiliser une
|
|
|
|
version plus récente disponible dans le dépôt *cloud-archive*. Pour
|
|
|
|
installer un client `openstack` récent, il faut exécuter en tant que
|
|
|
|
super-utilisateur (c'est-à-dire avec la commande `sudo` pour Ubuntu) :
|
|
|
|
|
|
|
|
``` {.sourceCode .console}
|
|
|
|
$ sudo add-apt-repository cloud-archive:ocata
|
|
|
|
$ sudo apt-get update
|
|
|
|
$ sudo apt-get install python-openstackclient
|
|
```
|
|
```
|
|
où le champ `IP_PROJECT_SSHGATE` est à remplacer par l'adresse IP qui vous a été communiquée par mail.
|
|
|
|
|
|
|
|
Pour les utilisateurs du LPNHE, les *login/password* de connexion à la passerelle sont ceux de votre compte mail. Pour les extérieurs, ils vous sont communiqués à l'issue de la création de votre compte.
|
|
Sous Debian 10, il suffit d'exécuter la commande :
|
|
|
|
|
|
> **Remarque**
|
|
``` {.sourceCode .console}
|
|
|
|
$ sudo apt-get install python-openstackclient
|
|
|
|
```
|
|
|
|
|
|
|
|
> **note**
|
|
>
|
|
>
|
|
> Les IPs des passerelles sont enregistrées dans le serveur DNS. Vous pouvez donc utiliser le nom de domaine d'une passerelle plutôt que son IP,
|
|
> Pour les versions antérieures d'Ubuntu, il est nécessaire d'utiliser
|
|
> en remplaçant `IP_PROJECT_SSHGATE` par `lpncloud-project.in2p3.fr` où *project* est le nom du projet auquel vous appartenez.
|
|
> la méthode d'installation avec PIP.
|
|
|
|
|
|
Il faut maintenant configurer le client. Pour cela, créez
|
|
Installation sur Centos
|
|
le fichier `${HOME}/.cloud.env` avec le contenu suivant (les
|
|
-----------------------
|
|
valeurs *username*, *password* et *projectname* sont à remplacer par celles qui vous
|
|
|
|
ont été transmises lors de la création de votre compte sur le service) :
|
|
L'installation en utilisant `yum` avec le système CentOS est réalisée en
|
|
|
|
quelques étapes suivantes. Le logiciel n'est disponible que pour la
|
|
|
|
version 7 de CentOS. Si vous souhaitez installer les clients sur une
|
|
|
|
version antérieure, il est nécessaire de suivre la méthode
|
|
|
|
d'installation PIP.
|
|
|
|
|
|
|
|
``` {.sourceCode .console}
|
|
|
|
$ sudo yum install -y centos-release-openstack-ocata
|
|
|
|
$ sudo yum update -y
|
|
|
|
$ sudo yum install -y python-openstackclient
|
|
|
|
```
|
|
|
|
|
|
|
|
> **note**
|
|
|
|
>
|
|
|
|
> Le paquet `centos-release-openstack-ocata` est fournit par le dépôt
|
|
|
|
> *extras*, activé par défaut dans CentOS 7.
|
|
|
|
>
|
|
|
|
|
|
|
|
Installation avec PIP
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
Pour suivre cette partie, il est nécessaire que PIP soit installé. Cette
|
|
|
|
installation est détaillée sur le [site de
|
|
|
|
PIP](https://pypi.python.org). Le client `openstack` est installé avec
|
|
|
|
les commandes suivantes :
|
|
|
|
|
|
|
|
``` {.sourceCode .console}
|
|
|
|
$ pip install python-openstackclient
|
|
|
|
```
|
|
|
|
|
|
|
|
Vérification de l'installation
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
Exécutez la command `openstack` aver l'argument `--version` pour
|
|
|
|
vérifier que le client est correctement installé :
|
|
|
|
|
|
|
|
``` {.sourceCode .console}
|
|
|
|
$ openstack --version
|
|
|
|
openstack 3.18.0
|
|
|
|
```
|
|
|
|
|
|
|
|
Notez que la version retournée par la commande peut différer de la
|
|
|
|
version ci-dessus.
|
|
|
|
|
|
|
|
> **note pour les utilisateurs du LPNHE**
|
|
|
|
>
|
|
|
|
> Le client openstack est installé sur les postes de travail du laboratoire.
|
|
|
|
|
|
|
|
# Client Openstack : premières étapes pour commencer
|
|
|
|
|
|
|
|
## Définition des variables d'environnement
|
|
|
|
|
|
|
|
Pour utiliser la CLI, il faut configurer le client openstack. Pour cela, créez
|
|
|
|
le fichier `${HOME}/.cloud.env` avec le contenu suivant (les valeurs *username*,
|
|
|
|
*password* et *projectname* sont à remplacer par celles qui vous ont été transmises
|
|
|
|
lors de la création de votre compte sur le service) :
|
|
|
|
|
|
``` {.sourceCode .bash}
|
|
``` {.sourceCode .bash}
|
|
export OS_PROJECT_DOMAIN_NAME=default
|
|
export OS_PROJECT_DOMAIN_NAME=default
|
... | @@ -53,7 +154,7 @@ export OS_USER_DOMAIN_NAME=default |
... | @@ -53,7 +154,7 @@ export OS_USER_DOMAIN_NAME=default |
|
export OS_PROJECT_NAME=projectname
|
|
export OS_PROJECT_NAME=projectname
|
|
export OS_USERNAME=username
|
|
export OS_USERNAME=username
|
|
export OS_PASSWORD=password
|
|
export OS_PASSWORD=password
|
|
export OS_AUTH_URL=http://134.158.159.28:35357/v3
|
|
export OS_AUTH_URL=http://lpnhe-cloud.in2p3.fr:5000/v3
|
|
export OS_IDENTITY_API_VERSION=3
|
|
export OS_IDENTITY_API_VERSION=3
|
|
export OS_IMAGE_API_VERSION=2
|
|
export OS_IMAGE_API_VERSION=2
|
|
```
|
|
```
|
... | @@ -83,7 +184,8 @@ $ openstack server list |
... | @@ -83,7 +184,8 @@ $ openstack server list |
|
> **IMPORTANT**
|
|
> **IMPORTANT**
|
|
>
|
|
>
|
|
> Toutes les commandes du type `openstack [...]` de cette documentation ne peuvent être
|
|
> Toutes les commandes du type `openstack [...]` de cette documentation ne peuvent être
|
|
> exécutées que sur la passerelle correspondant à votre projet.
|
|
> exécutées que depuis le réseau IN2P3, Sorbonne-Université, Université de Paris ou ISCPIF.
|
|
|
|
|
|
|
|
|
|
## Changement du mot de passe
|
|
## Changement du mot de passe
|
|
|
|
|
... | @@ -230,7 +332,6 @@ $ openstack flavor list |
... | @@ -230,7 +332,6 @@ $ openstack flavor list |
|
+--------------------------------------+--------------+------+------+-----------+-------+-----------+
|
|
+--------------------------------------+--------------+------+------+-----------+-------+-----------+
|
|
| 0f82a5b4-c91b-4a1b-81a9-b627164a6f10 | 4CPU_8GB-RAM | 8192 | 0 | 0 | 4 | True |
|
|
| 0f82a5b4-c91b-4a1b-81a9-b627164a6f10 | 4CPU_8GB-RAM | 8192 | 0 | 0 | 4 | True |
|
|
| 1244c110-32cc-41ef-b687-bf2111988963 | 1CPU_2GB-RAM | 2048 | 0 | 0 | 1 | True |
|
|
| 1244c110-32cc-41ef-b687-bf2111988963 | 1CPU_2GB-RAM | 2048 | 0 | 0 | 1 | True |
|
|
| c60ae355-31ec-4b70-a214-0e42f868f752 | m1.nano | 64 | 1 | 0 | 1 | True |
|
|
|
|
| c7afb67f-7ffc-4932-96ea-4eed61cd0254 | 2CPU_4GB-RAM | 4096 | 0 | 0 | 2 | True |
|
|
| c7afb67f-7ffc-4932-96ea-4eed61cd0254 | 2CPU_4GB-RAM | 4096 | 0 | 0 | 2 | True |
|
|
+--------------------------------------+--------------+------+------+-----------+-------+-----------+
|
|
+--------------------------------------+--------------+------+------+-----------+-------+-----------+
|
|
```
|
|
```
|
... | @@ -248,9 +349,16 @@ $ openstack network list |
... | @@ -248,9 +349,16 @@ $ openstack network list |
|
+--------------------------------------+-----------------+--------------------------------------+
|
|
+--------------------------------------+-----------------+--------------------------------------+
|
|
```
|
|
```
|
|
|
|
|
|
Dans le tableau précédent, nous remarquons que deux réseaux sont
|
|
Dans le tableau précédent, nous remarquons que deux réseaux sont disponibles, `uplink_v4` et `project_network`.
|
|
disponibles, `uplink_v4` et `project_network`. Le réseau
|
|
Le réseau `project_network` est un réseau privé et nécessaire à la création des machines virtuelles. Les VMs n'ont
|
|
`uplink_v4` est utilisé pour fournir une adresse IP publique à la passerelle `project_sshgate`. Cette passerelle vous permet de vous connecter depuis le laboratoire aux machines virtuelles que vous créez. Ces dernières ont une adresse IP privée attribuée par le réseau `project_network` et ne sont donc pas accessible directement. Donc lorsque vous créerez vos machines, le réseau que vous devez utiliser est `project_network`.
|
|
par défaut qu'une IP privée, les rendant inacessibles depuis un autre réseau.
|
|
|
|
C'est pourquoi le réseau `uplink_v4` existe. Il est utilisé pour fournir une adresse IP publique aux machines virtuelles et de leur permettre de communiquer avec l'exterieur.
|
|
|
|
|
|
|
|
> **Remarque**
|
|
|
|
>
|
|
|
|
> Le réseau `uplink_v4` peut s'appeler `int_uplimk_v4` ou `ext_uplink_v4`,
|
|
|
|
> suivant le projet auquel vous appartenez.
|
|
|
|
|
|
|
|
|
|
Lancement de la machine virtuelle ( VM )
|
|
Lancement de la machine virtuelle ( VM )
|
|
----------------------------------------
|
|
----------------------------------------
|
... | @@ -674,8 +782,7 @@ Enfin, vous pouvez supprimer la VM : |
... | @@ -674,8 +782,7 @@ Enfin, vous pouvez supprimer la VM : |
|
$ openstack server delete MY_VM_NAME
|
|
$ openstack server delete MY_VM_NAME
|
|
```
|
|
```
|
|
|
|
|
|
Utilisation avancée
|
|
# Utilisation avancée
|
|
===================
|
|
|
|
|
|
|
|
Ce chapitre décrit des possibilités d'utilisation avancée du service de
|
|
Ce chapitre décrit des possibilités d'utilisation avancée du service de
|
|
Cloud Computing IaaS.
|
|
Cloud Computing IaaS.
|
... | @@ -948,4 +1055,46 @@ d'informations concernant l'utilisation d'OpenStack : |
... | @@ -948,4 +1055,46 @@ d'informations concernant l'utilisation d'OpenStack : |
|
- [questions & réponses sur OpenStack](https://ask.openstack.org) ;
|
|
- [questions & réponses sur OpenStack](https://ask.openstack.org) ;
|
|
- [actualités sur le monde OpenStack](http://planet.openstack.org) ;
|
|
- [actualités sur le monde OpenStack](http://planet.openstack.org) ;
|
|
|
|
|
|
|
|
# Exemple de scripts cloud-config
|
|
|
|
|
|
|
|
Configuration de CVMFS
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
Script (pour CentOS 7) qui met à jour la VM au démarrage, qui installe quelques packages,
|
|
|
|
dont `CVMFS` et qui le configure.
|
|
|
|
|
|
|
|
``` {.sourceCode .yaml}
|
|
|
|
#cloud-config
|
|
|
|
|
|
|
|
# Upgrade the instance OS packages on first boot
|
|
|
|
package_upgrade: true
|
|
|
|
|
|
|
|
# Add packages
|
|
|
|
packages:
|
|
|
|
- vim
|
|
|
|
- emacs
|
|
|
|
- xorg-x11-xauth
|
|
|
|
- screen
|
|
|
|
- cvmfs
|
|
|
|
- cvmfs-config-default
|
|
|
|
|
|
|
|
# Write config files for cvmfs and yum repository :
|
|
|
|
write_files:
|
|
|
|
- path: /etc/cvmfs/default.local
|
|
|
|
owner: root:root
|
|
|
|
permissions: '0644'
|
|
|
|
content: |
|
|
|
|
CVMFS_REPOSITORIES=atlas.cern.ch,atlas-condb.cern.ch,atlas-nightlies.cern.ch,grid.cern.ch,sft.cern.ch,config-egi.egi.eu
|
|
|
|
CVMFS_HTTP_PROXY="http://lpnhe-cache.in2p3.fr:3128;http://squid-atlas.grif.fr:3128"
|
|
|
|
CVMFS_QUOTA_LIMIT=15000
|
|
|
|
|
|
|
|
# Execute some commands:
|
|
|
|
runcmd:
|
|
|
|
- echo 'export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase' >> /home/centos/.bashrc
|
|
|
|
- echo 'alias setupATLAS="source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh"' >> /home/centos/.bashrc
|
|
|
|
- yum install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm; yum install -y cvmfs cvmfs-config-default
|
|
|
|
- systemctl start autofs
|
|
|
|
- cvmfs_config setup
|
|
|
|
- cvmfs_config probe
|
|
|
|
```
|
|
|
|
|