Développer et déployer un service sur un Cloud OpenStack

Documents pareils
Le Cloud France Grilles : Accès et utilisation. Jérôme PANSANEL <jerome.pansanel@iphc.cnrs.fr> Directeur technique France Grilles

Hands on Openstack : Introduction

Anatomie d'un cloud IaaS Représentation simplifiée

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Informatique en nuage Cloud Computing. G. Urvoy-Keller

TP développement : portage d applications sur le Cloud IaaS

Le Cloud Open-Mind! Emilien Macchi

Cloud Computing : quels intérêts et quelles solutions pour les développeurs?

Orchestrer son cloud OpenStack avec Heat

Le tout à l usage dans un IaaS public «Comment une plateforme industrielle permet de déployer des usages applicatifs en accord avec cette promesse»

OpenStack Le cloud libre. Thierry Carrez Release Manager, OpenStack

Année Universitaire ième année IMAC Mardi 6 janvier Cloud computing Travaux Pratiques

Vers une fédération de Cloud Académique dans France Grilles J. Pansanel pour le groupe FG-Cloud (M. Airaj, C. Cavet, V. Hamar, M. Jouvin, C.

Atelier : Virtualisation avec Xen

Mise en œuvre d une solution de virtualisation

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Un exemple de cloud au LUPM : Stratuslab

Getting Started. 10 étapes pour bien démarrer. Avant de démarrer. Première connexion PCC

Cloud public d Ikoula Documentation de prise en main 2.0

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

Gestion des Appliances. M. AIRAJ Ecole Informatique IN2P

Infrastructure web élastique avec OpenStack

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

Cloud Computing. Groupe : Vincent, Mohammed, Yannick, Allan Tuteur : Mr. NUSSBAUM Lucas Année : 2009/2010

Infrastructure web élastique avec OpenStack

Installation et configuration d'openstack dans Oracle Solaris 11.2

OpenStack, l Infrastructure as a Service libre

vsphere 5 TP2 La virtualisation avec VMware CNFETP F. GANGNEUX technologie GANGNEUX F. 17/12/2012

La Continuité d Activité

+ = OpenStack Presentation. Raphaël Ferreira - enovance. Credits : Thanks to the OpenStack Guys 1

Utiliser le cloud pour manager son PRA et son PCA (DRaaS ou PRA dans le Cloud)

Visualization sur Ubuntu: Quels Choix? Nicolas Barcet

Hyper-V (version 3) et System Center Virtual Machine Manager Technologie de virtualisation sous Windows Server 2012 R2

Les Clouds de production : Panorama pour les sciences de la vie. Jérôme PANSANEL <jerome.pansanel@iphc.cnrs.fr> Directeur technique France Grilles

Hyper-V Virtualisation de serveurs avec Windows Server 2008 R2 - Préparation à l'examen MCTS

au Centre Inter-établissement pour les Services Réseaux Cédric GALLO

DmilZ pour le forum Kimsufi.com. How-To : ESXi avec une seule IPv4 et une IPv6. Sommaire Historique Introduction...

Chi rement des postes PC / MAC / LINUX

Migration d un Cluster Fiber Channel+SAN+Lames sous Xen vers Ethernet +iscsi+serveurs sous KVM

L accès aux Clouds (Académiques)

Architecture de la plateforme SBC

DOCKER MEETUP. Christophe Labouisse

Bonjour. Yohan PARENT, Cyprien FORTINA, Maxime LEMAUX, Hyacinthe CARTIAUX

Chapitre IX : Virtualisation

Sébastien Geiger IPHC Strasbourg

Présentation du SC101

Architecture de serveurs virtualisés pour la communauté mathématique

[Serveur de déploiement FOG]

Comment faire reconnaître l espace disque ajouté à votre OS?

Cloud Computing. Introduction. ! Explosion du nombre et du volume de données

INSTALLATION DE BACKUPPC

INF4410 Systèmes répartis et infonuagique. Module 9: Les serveurs de l'infonuagique

IBM Cloud Manager avec OpenStack -- portail en libre service. Guide d'utilisation

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux

Master of Science HES-SO in Engineering. OpenStack et haute disponibilité. Benoît Chalut

Configuration du serveur ESX

SELinux Analyse sécuritaire d OpenStack Mai 2014

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

En ce moment (24/01/2014), Super bon plan: Micro Serveur HP Proliant G7 N54L à 159 ttc Plus d'informations sur dealabs.com

À propos de Parallels Desktop 9 pour Mac

Windows 8 Installation et configuration

La virtualisation selon Xen

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Développement logiciel pour le Cloud (TLC)

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

INSTALLATION DEBIAN 7 (NETINSTALL) SUR VM

Machine virtuelle W4M- Galaxy : Guide d'installation

G.U.S.T.A.V. Gestion Unifiée des Systèmes de fichiers Transposée aux Appareillages Virtuels G U S T A V

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer

Windows Server 2012 Les bases indispensables pour administrer et configurer votre serveur

Virtualisation et le hosting. Christophe Lucas Sébastien Bonnegent rouen.fr>

Sébastien Geiger IPHC Strasbourg

Configuration Cluster, DRS, HA, DPM et FT

Travail de Bachelor Cloud Management. : Mr. Gérald Litzistorf : Mr. Benoît Chalut : benoitchalut@gmail.com

Les méthodes de sauvegarde en environnement virtuel

Outils en ligne de commande

Table des matières 1. Introduction. 1. Avant-propos Remerciements Chapitre 1 Virtualisation de serveurs

Portage d applications sur le Cloud IaaS Portage d application


Chapitre 3 Configuration et maintenance

Plan de cet après-midi

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

LXC : Une technologie de contextualisation ultra light intégrée au kernel Linux

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

Plan de cette matinée

Tout d abord les pré-requis : Au menu un certain nombre de KB

2 - VMWARE SERVER.doc

Gérer ses environnements de développement avec Vagrant RMLL 2012

Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

Projet de Bachelor Virtual Desktop Infrastructure

DEPLOIEMENT MICROSOFT WINDOWS

Tutoriel déploiement Windows 7 via serveur Waik

Cloud Computing Maîtrisez la plate-forme AWS - Amazon Web Services

Transcription:

Développer et déployer un service sur un Cloud OpenStack Jérôme PANSANEL <jerome.pansanel@iphc.cnrs.fr> Directeur technique France Grilles JDEV 2015 Bordeaux 1

Sommaire OpenStack Utilisation du client OpenStack (ligne de commande) Utilisation de l'api OpenStack (Python) JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 2

OpenStack Utilisation du client OpenStack (ligne de commande) Utilisation de l'api OpenStack (Python) JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 3

Fonctionnalités d'openstack Gestion de projets indépendants Machines virtuelles avec libvirt + KVM Stockage swift, cinder, glance Réseaux (allocation, routeurs, VLAN) virtuels par projet et assignation d'adresses publiques Snapshots, pause et hibernation Migration simple et à chaud Accès VNC et Spice Déploiement d'ensemble de VMs pré-configurées (Heat) Solution d'accounting complète (Ceilometer) JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 4

Les Composants OpenStack Nova Keystone Neutron Swift Cinder Glance Horizon API, ordonnancement, nœud de calcul Gestion des droits (token) Virtualisation des réseaux Stockage objet Stockage persistant de blocs Gestion des images de machines virtuelles Interface web Et RabbitMQ pour que tous les éléments communiquent! JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 5

Interaction des modules OpenStack JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 6

Clouds commerciaux Rackspace HP Helion CloudWatt Numergy OVH Cloud académiques OpenStack@CC-IN2P3 OpenStack@IPHC OpenStack@LPSC OpenStack@UNIV-LILLE OpenStack@EGI Plus d'information Les Clouds OpenStack https://www.openstack.org/marketplace/public-clouds/ http://www.france-grilles.fr/6-cloud JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 7

OpenStack et le Cloud France Grilles 5 sites en production OpenStack@CC-IN2P3 OpenStack@IPHC OpenNebula@IRIT StratusLab@LAL StratusLab@LUPM 3 sites en pré-production StratusLab@LLR OpenStack@UNIV-LILLE OpenStack@LSPC 1 site prévu OpenStack@LPC Plus d'information http://www.france-grilles.fr/6-cloud JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 8

Accès au Cloud France Grilles C'est simple : Envoyer une demande à info@france-grilles.fr Formulaire en retour (pour vérifier la faisabilité technique et améliorer l'accompagnement) Signature électronique des conditions d'utilisation Création des comptes Formation CLI / SlipStream Image / saveur spécifique Accompagnement sur le script d'instanciation Remerciements http://www.france-grilles.fr/pour-les-chercheurs-ou-ingenieurs JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 9

Documentation : Documentation OpenStack http://docs.openstack.org/cli-reference/ https://wiki.openstack.org/wiki/main_page http://docs.openstack.org/user-guide/content/ https://ask.openstack.org/en/questions/ http://planet.openstack.org/ Listes de diffusion https://wiki.openstack.org/wiki/mailing_lists http://lists.openstack.org/cgi-bin/mailman/listinfo/openst ack-fr Canal IRC IRC : Freenode / #openstack-fr JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 10

OpenStack Utilisation du client OpenStack (ligne de commande) Utilisation de l'api OpenStack (Python) JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 11

Installation du client OpenStack : PIP Installation de PIP : # yum install python-devel python-pip (RedHat et dérivés) # apt-get install python-dev python-pip (Debian et dérivés) # easy_install pip (Windows, Mac OS X) Installation du client OpenStack avec PIP : # pip install python-keystoneclient # pip install python-novaclient # pip install python-glanceclient # pip install python-cinderclient # pip install python-neutronclient JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 12

Installation du client OpenStack : APT Installation du client (DEB Ubuntu 14.04) : # sudo apt-get install python-keystoneclient # sudo apt-get install python-novaclient # sudo apt-get install python-glanceclient # sudo apt-get install python-cinderclient # sudo apt-get install python-neutronclient Pour les versions plus anciennes, effectuer au préalable : # sudo apt-get install python-software-properties # sudo add-apt-repository cloud-archive:icehouse # sudo apt-get update # sudo apt-get dist-upgrade JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 13

Installation du client OpenStack : YUM Installation du client (YUM RedHat et dérivés) : # yum install epel-release # yum install http://repos.fedorapeople.org/repos/openstack/openstackicehouse/rdo-release-icehouse-3.noarch.rpm # yum update -y # yum install python-keystoneclient # yum install python-novaclient # yum install python-glanceclient # yum install python-cinderclient # yum install python-neutronclient JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 14

Fichier.novacreds/iphc.sh : export OS_AUTH_URL=https://sbgcloud.in2p3.fr:5000/v2.0 export OS_TENANT_NAME="FG_Formation" export OS_USERNAME="jdev" export OS_PASSWORD="JDEV2015" Vérification du fonctionnement : # source.novacreds/iphc.sh # nova --insecure list Pour obtenir de l'aide : # nova help # nova help <command> Configuration de l'accès JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 15

Images et saveurs Liste des images : # nova --insecure image-list +--------------------------------------+------------------------------+--------+--------+ ID Name Status Server +--------------------------------------+------------------------------+--------+--------+... 2c86acd1-98b0-4cc3-9a8a-1e661ddbfd9a CirrOS ACTIVE... Liste des types d'image disponibles # nova --insecure flavor-list +----+-------------+-----------+------+-----------+------+-------+-------------+-----------+ ID Name Memory_MB Disk Ephemeral Swap VCPUs RXTX_Factor Is_Public +----+-------------+-----------+------+-----------+------+-------+-------------+-----------+ 1 m1.tiny 512 1 0 1 1.0 True 2 m1.small 2048 20 0 1 1.0 True 3 m1.medium 4096 40 0 2 1.0 True 4 m1.large 8192 80 0 4 1.0 True 5 m1.xlarge 16384 160 0 8 1.0 True 6 m1.2xlarge 32768 320 0 16 1.0 True 7 m1.cms-large 2048 50 0 1 1.0 True +----+-------------+-----------+------+-----------+------+-------+-------------+-----------+ JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 16

Réseau Liste des réseaux : # nova --insecure network-list +--------------------------------------+------------------+------+ ID Label Cidr +--------------------------------------+------------------+------+ 2c36d255-01ce-4330-93e1-13f8d2cec7fd fg-formation-net - 314be651-fcaa-4dcc-ac0a-dfdcd7e58ba1 ext-net - +--------------------------------------+------------------+------+ # neutron --insecure net-list +--------------------------------------+------------------+-----------------------------------------------+ id name subnets +--------------------------------------+------------------+-----------------------------------------------+ 2c36d255-01ce-4330-93e1-13f8d2cec7fd fg-formation-net e41a31bc-7883-47d2-8329-da094... 172.16.7.0/24 314be651-fcaa-4dcc-ac0a-dfdcd7e58ba1 ext-net aaf9dd9a-a232-49d9-ad2d-f070ab40cf85 +--------------------------------------+------------------+-----------------------------------------------+ JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 17

Lancement d'une instance Exemple : démarrer une instance de test # nova --insecure boot --flavor m1.small --image 2c86acd1-98b0-4cc3-9a8a-1e661ddbfd9a \ --nic net-id=2c36d255-01ce-4330-93e1-13f8d2cec7fd jdev_id +--------------------------------------+-----------------------------------------------+ Property Value +--------------------------------------+-----------------------------------------------+ OS-DCF:diskConfig MANUAL OS-EXT-AZ:availability_zone nova OS-EXT-STS:power_state 0 OS-EXT-STS:task_state scheduling OS-EXT-STS:vm_state building OS-SRV-USG:launched_at - OS-SRV-USG:terminated_at - accessipv4 accessipv6 adminpass 9dxBTzrZgiWp config_drive created 2015-06-03T21:25:45Z flavor m1.small (2) hostid id 23bf5f31-032a-484e-bac3-9034aa956a0f image CirrOS (2c86acd1-98b0-4cc3-9a8a-1e661ddbfd9a) key_name -... JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 18

État d'une instance Vérifier l'état de la machine instanciée # nova -insecure list +--------------------------------------+-------------+--------+------------+-------------+----------+ ID Name Status Task State Power State Networks +--------------------------------------+-------------+--------+------------+-------------+----------+ 23bf5f31-032a-484e-bac3-9034aa956a0f jdev_id BUILD spawning NOSTATE +--------------------------------------+-------------+--------+------------+-------------+----------+ Une fois que la machine est prête : # nova --insecure list +--------------------------------------+----------+--------+------------+-------------+------------------- ID Name Status Task State Power State Networks +--------------------------------------+----------+--------+------------+-------------+------------------- 23bf5f31-032a-484e-bac3-9034aa956a0f jdev_id ACTIVE - Running fg-cloud-net=172.1 +--------------------------------------+----------+--------+------------+-------------+------------------- JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 19

Vérifier une instance # nova --insecure show 23bf5f31-032a-484e-bac3-9034aa956a0f +--------------------------------------+----------------------------------------------------------+ Property Value +--------------------------------------+----------------------------------------------------------+ OS-DCF:diskConfig MANUAL OS-EXT-AZ:availability_zone nova OS-EXT-STS:power_state 1 OS-EXT-STS:task_state - OS-EXT-STS:vm_state active OS-SRV-USG:launched_at 2015-06-03T21:25:57.000000 OS-SRV-USG:terminated_at - accessipv4 accessipv6 config_drive created 2015-06-03T21:25:45Z fg-cloud-net network 172.16.7.15 flavor m1.small (2) hostid 0b199254c9bfee387797cf756a9e243ff52e4bee7176607a8ecf0d24 id 23bf5f31-032a-484e-bac3-9034aa956a0f image CirrOS (2c86acd1-98b0-4cc3-9a8a-1e661ddbfd9a) key_name - metadata {} name jdev_id os-extended-volumes:volumes_attached [] progress 0 security_groups default status ACTIVE tenant_id f733dfdbb8504d4484f6a339f4c1af0b updated 2015-06-03T21:25:57Z JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 20

Associer une IP publique # nova --insecure floating-ip-pool-list +---------+ name +---------+ ext-net +---------+ # nova --insecure floating-ip-list +----------------+-----------+----------+---------+ Ip Server Id Fixed Ip Pool +----------------+-----------+----------+---------+ 134.158.151.36 - ext-net 134.158.151.37 - ext-net +----------------+-----------+----------+---------+ # nova --insecure floating-ip-create ext-net +----------------+-----------+----------+---------+ Ip Server Id Fixed Ip Pool +----------------+-----------+----------+---------+ 134.158.151.42 - ext-net +----------------+-----------+----------+---------+ # nova --insecure floating-ip-associate 23bf5f31-032a-484e-bac3-9034aa956a0f \ 134.158.151.42 JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 21

Associer une IP publique # nova --insecure floating-ip-list +----------------+-----------+-------------+---------+ Ip Server Id Fixed Ip Pool +----------------+-----------+-------------+---------+ 134.158.151.36 - ext-net 134.158.151.37 - ext-net 134.158.151.42 172.16.7.15 ext-net +----------------+-----------+-------------+---------+ # nova --insecure show 23bf5f31-032a-484e-bac3-9034aa956a0f... fg-formation-net network 172.16.7.15, 134.158.151.42... # ping 134.158.151.42 PING 134.158.151.42 (134.158.151.42) 56(84) bytes of data. 64 bytes from 134.158.151.42: icmp_seq=1 ttl=53 time=87.9 ms 64 bytes from 134.158.151.42: icmp_seq=3 ttl=53 time=58.2 ms 64 bytes from 134.158.151.42: icmp_seq=4 ttl=53 time=57.9 ms... # ssh cirros@134.158.151.42 cubswin:) JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 22

Les quotas Information sur les quotas # nova --insecure quota-show +-----------------------------+-------+ Quota Limit +-----------------------------+-------+ instances 10 cores 20 ram 51200 floating_ips 10 fixed_ips -1 metadata_items 128 injected_files 5 injected_file_content_bytes 10240 injected_file_path_bytes 255 key_pairs 100 security_groups 10 security_group_rules 20 +-----------------------------+-------+ JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 23

Arrêt de l'instance Arrêter la VM proprement (sudo halt dans une console) et vérifier le status : # nova --insecure list Effectuer éventuellement : # nova --insecure stop # nova --insecure list +--------------------------------------+----------+---------+------------+-------------------------+ ID Name Status Task State Power State Networks +--------------------------------------+----------+---------+------------+-------------+-----------+ 23bf5f31-032a-484e-bac3-9034aa956a0f jdev_id SHUTOFF - Shutdown... +--------------------------------------+----------+---------+------------+-------------+-----------+ Supprimer la machine virtuelle : # nova --insecure delete 23bf5f31-032a-484e-bac3-9034aa956a0f JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 24

Types de stockage Différents types de stockage sont accessibles : Stockage éphémère (cache sur l'hyperviseur) Stockage permanent (Cinder / iscsi, ) Stockage d'images (Glance) Stockage objet (Swift) Stockage de fichiers (irods, stockage en ligne, ) JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 25

Gestion du stockage persistant # cinder --insecure list +----+--------+--------------+------+-------------+----------+-------------+ ID Status Display Name Size Volume Type Bootable Attached to +----+--------+--------------+------+-------------+----------+-------------+ +----+--------+--------------+------+-------------+----------+-------------+ # cinder --insecure create 8 --display-name volume1 +---------------------+--------------------------------------+ Property Value +---------------------+--------------------------------------+ attachments [] availability_zone nova bootable false created_at 2015-06-25T13:39:21.809098 display_description None display_name volume1 id 3db53d16-b382-4bbc-8572-46e95b8404b5 metadata {} size 8 snapshot_id None source_volid None status creating volume_type None +---------------------+--------------------------------------+ JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 26

Gestion du stockage persistant # cinder --insecure list +-----------+-----------+--------------+------+-------------+----------+-------------+ ID Status Display Name Size Volume Type Bootable Attached to +-----------+-----------+--------------+------+-------------+----------+-------------+ VOLUME_ID available volume1 8 None false +-----------+-----------+--------------+------+-------------+----------+-------------+ # cinder --insecure show VOLUME_ID # nova --insecure volume-attach IMAGE_ID VOLUME_ID /dev/vdb +----------+--------------------------------------+ Property Value +----------+--------------------------------------+ device /dev/vdb id 02bfe67f-8528-4ae0-a5ce-9eabdfa51629 serverid c776d8c4-6812-4713-911e-5341c0504502 volumeid 3db53d16-b382-4bbc-8572-46e95b8404b5 +----------+--------------------------------------+ # cinder --insecure show VOLUME_ID # nova --insecure show IMAGE_ID... os-extended-volumes:volumes_attached [{"id": "3db53d16-b382-4bbc-8572-46e95b8404b5"}]... JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 27

Gestion du stockage persistant Il faut noter : Au départ, les volumes sont vides et non formatés. Il faut les initialiser avant de les utiliser Ils ne peuvent être utiliser qu'avec une machine virtuelle à la fois. Exercice : Se connecter à la VM, vérifier que le disque est disponible Formater le disque, le monter et copier un fichier Démonter le disque et l'associer à une autre VM Vérifier que le fichier est toujours présent Démonter le disque et supprimer le volume JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 28

Sur la VM : $ dmesg... [ 874.657442] vdb: unknown partition table $ sudo fdisk /dev/vdb $ sudo mkfs.ext4 /dev/vdb1 $ sudo mkdir /storage $ sudo mount /dev/vdb1 /storage $ ls /storage lost+found Pour détacher le volume : $ umount /storage Gestion du stockage persistant # nova --insecure volume-detach IMAGE_ID VOLUME_ID # cinder --insecure list Vérifier que le disque n'est plus visible dans la VM JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 29

Gestion du stockage persistant Redimensionner un volume détaché : # cinder --insecure extend VOLUME_ID 2 Pour supprimer le volume : Détacher le volume du serveur Le supprimer avec la commande : # cinder --insecure delete VOLUME_ID # cinder --insecure list Il est possible de démarrer une instance avec un volume : # nova boot --flavor m1.small --image IMAGE_ID -key-name cloudkey -block-device source=volume,id=volume_id,dest=volume,shutdown=preserve,device=/dev/vdb NOM_INSTANCE JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 30

OpenStack Utilisation du client OpenStack (ligne de commande) Utilisation de l'api OpenStack (Python) JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 31

Démarrer avec l'api OpenStack Mise en place d'environnement : #!/usr/bin/env python import os from novaclient.v1_1 import client def get_nova_creds(): creds = {} creds['username'] = os.environ['os_username'] creds['api_key'] = os.environ['os_password'] creds['project_id'] = os.environ['os_tenant_name'] creds['auth_url'] = os.environ['os_auth_url'] return creds creds = get_nova_creds() nova = client.client(**creds) nova.client.verify_cert = False JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 32

Récupérer les paramètres du Cloud >>> nova.flavors.list() [<Flavor: m1.tiny>, <Flavor: m1.small>, <Flavor: m1.medium>, <Flavor: m1.large>, <Flavor: m1.xlarge>, <Flavor: m1.2xlarge>, <Flavor: m1.cmssmall>] >>> nova.images.list() [<Image: Image for CentOS 6 minimal [CentOS/6.x/KVM]_Appliance>, <Image: Image for TinyCoreLinux [Other/TinyCoreLinux/QEMU-KVM]_Appliance>, <Image: CirrOS>] >>> nova.networks.list() [<Network: fg-formation-net>, <Network: ext-net>] JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 33

Démarrer une VM >>> image = nova.images.list()[2] >>> image.id u'2c86acd1-98b0-4cc3-9a8a-1e661ddbfd9a' >>> flavor = nova.flavors.list()[1] >>> flavor.id u'2' >>> network = nova.networks.list()[0] >>> network.id u'2c36d255-01ce-4330-93e1-13f8d2cec7fd' >>> server = nova.servers.create(name = "jdev_id", image = image.id, flavor = flavor.id, network = network.id) >>> server.status u'build'... >>> server.status u'build' >>> server.get() >>> server.status u'active' JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 34

Gestion du réseau >>> server.addresses {u'fg-formation-net': [{u'os-ext-ips-mac:mac_addr': u'fa:16:3e:72:ab:0b', u'version': 4, u'addr': u'172.16.7.6', u'os-ext-ips:type': u'fixed'}]} >>> nova.floating_ip_pools.list() [<FloatingIPPool: name=ext-net>] >>> nova.floating_ips.list() [<FloatingIP fixed_ip=none, id=08203d9b-add9-462a-af8d-23b5c7061f48, instance_id=none, ip=134.158.151.244, pool=ext-net>, <FloatingIP fixed_ip=172.16.7.5, id=9ed08c2d-38c8-4cc9-bed8-ca9aaeb0890d, instance_id=bed13a0c-2b13-4e67-aaa3-f19b77d3523e, ip=134.158.151.229, pool=ext-net>] >>> floating_ip = nova.floating_ips.create(nova.floating_ip_pools.list() [0].name) >>> server.add_floating_ip(floating_ip) >>> server.get() >>> server.addresses {u'fg-formation-net': [{u'os-ext-ips-mac:mac_addr': u'fa:16:3e:72:ab:0b', u'version': 4, u'addr': u'172.16.7.6', u'os-ext-ips:type': u'fixed'}, {u'os-ext-ips-mac:mac_addr': u'fa:16:3e:72:ab:0b', u'version': 4, u'addr': u'134.158.151.244', u'os-ext-ips:type': u'floating'}]} JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 35

Gestion du stockage permanent >>> from cinderclient.v2 import client as ciclient >>> cinder = ciclient.client(**creds) >>> cinder.client.verify_cert = False >>> cinder.volumes.list() [<Volume: 66ae6fe6-6d28-49a3-802b-1969b66265a1>] >>> volume = cinder.volumes.create(1, name='stockage_jdev', description='un stockage de test') >>> volume <Volume: 2f7474b4-120c-444d-a648-156a861a0870> >>> nova.volumes.create_server_volume(server.id,cinder.volumes.list() [0].id, None) <Volume: 2f7474b4-120c-444d-a648-156a861a0870> >>> server.get() >>> server.to_dict()[u'os-extended-volumes:volumes_attached'] [{u'id': u'2f7474b4-120c-444d-a648-156a861a0870'}] JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 36

Finir une session 1. Détacher le volume >>> nova.volumes.delete_server_volume(server.id,cinder.volumes.list() [0].id) 2. Arrêter la machine manuellement 3. Redémarrer la machine ou supprimer la VM # reboot_type can be "SOFT" or "HARD" server.reboot(reboot_type) # Suppression de la VM server.delete() JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 37

APIs OpenStack : documention Documentation IBM : http://www.ibm.com/developerworks/cloud/library/cl-opensta ck-pythonapis/ Guide de démarrage rapide : http://docs.openstack.org/api/quick-start/content/ Guide de référence : http://docs.openstack.org/api/openstack-compute/2/content/ Documentation en français : http://dev.cloudwatt.com/fr/doc/sdk/sdk-python.html JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 38

Questions? JDEV 2015 - BORDEAUX Développer et déployer un service sur un Cloud OpenStack / J. Pansanel 39