Cloud: modification de la documentation; restructuration des parties;... authored by Aurélien Bailly-Reyre's avatar Aurélien Bailly-Reyre
Cloud: modification de la documentation; restructuration des parties; installation de la cli ajoutée; exemple de script. Partie réseau non à jour.
......@@ -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
utiliser efficacement le service de Cloud Computing IaaS. Une
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}
$ 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,
> en remplaçant `IP_PROJECT_SSHGATE` par `lpncloud-project.in2p3.fr` où *project* est le nom du projet auquel vous appartenez.
Il faut maintenant configurer le client. 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) :
> Pour les versions antérieures d'Ubuntu, il est nécessaire d'utiliser
> la méthode d'installation avec PIP.
Installation sur Centos
-----------------------
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}
export OS_PROJECT_DOMAIN_NAME=default
......@@ -53,7 +154,7 @@ export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=projectname
export OS_USERNAME=username
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_IMAGE_API_VERSION=2
```
......@@ -83,7 +184,8 @@ $ openstack server list
> **IMPORTANT**
>
> 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
......@@ -230,7 +332,6 @@ $ openstack flavor list
+--------------------------------------+--------------+------+------+-----------+-------+-----------+
| 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 |
| 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 |
+--------------------------------------+--------------+------+------+-----------+-------+-----------+
```
......@@ -248,9 +349,16 @@ $ openstack network list
+--------------------------------------+-----------------+--------------------------------------+
```
Dans le tableau précédent, nous remarquons que deux réseaux sont
disponibles, `uplink_v4` et `project_network`. Le réseau
`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`.
Dans le tableau précédent, nous remarquons que deux réseaux sont disponibles, `uplink_v4` et `project_network`.
Le réseau `project_network` est un réseau privé et nécessaire à la création des machines virtuelles. Les VMs n'ont
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 )
----------------------------------------
......@@ -674,8 +782,7 @@ Enfin, vous pouvez supprimer la VM :
$ 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
Cloud Computing IaaS.
......@@ -948,4 +1055,46 @@ d'informations concernant l'utilisation d'OpenStack :
- [questions & réponses sur OpenStack](https://ask.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
```