3. Environnement de lab
- 1. Caractéristiques matérielles
- 2. Virtualisation d'OpenStack
- 3. Concurrence des hyperviseurs
- 4. VirtualBox
- 5. KVM
- 6. LXD
- 7. Configuration matérielle et environnement de l'hôte de virtualisation
- 8. Solutions de déploiement rapide d'OpenStack
- 9. Utilisateur Sudoer stack
Pour éprouver localement OpenStack en phase d'apprentissage, il est recommandé de l'installer soi-même sur une instance de développement.
1. Caractéristiques matérielles
L'ordinateur qui hébergera la solution devra répondre aux caractéristiques minimales suivantes :
- 16-32 Go RAM
- 8-16 CPU
- Host-passtrough
- 128-256 Go HD
- eth0 réseau public externe pontée (au minimum)
- Deux interfaces privées eth1 et eth2
- Ubuntu minimum 16.04 et + ou Centos 7
2. Virtualisation d'OpenStack
Plusieurs possibilités nous sont offertes :
- VirtualBox
- Qemu/KVM
- LXD
3. Concurrence des hyperviseurs
Il ne peut y avoir qu'un hyperviseur qui profitent des ressources de virtualisations CPU/RAM : VirtualBox, KVM, VMware sont donc incompatibles. Il faut faire un choix.
4. VirtualBox
VirtualBox est hyperviseur de type 2 très souple, performant et très bien integré sur toutes plateformes mais il est tout sauf libre. Il reste toutefois un outil très fonctionnel pour une solution mono-poste.
5. KVM
KVM est l'hyperviseur du noyau Linux. Il est accompagné de QEMU et de pilotes de périphériques I/O virtualisés intégrés aux noyaux des invités Linux récents. QEMU/KVM peut entre autres se manipuler dans l'espace utilisateur par la librairie libvirt qui fournit les facilités de connectivité au réseau et de support aux disques. Libvirt offre une interface en ligne de commande virsh
. Pour plus d'information sur QEMU, il existe un article dédié : Virtualisation KVM
Ces outils sont essentiels à maîtriser dans le domaine de la virtualisation des ordinateurs x86.
6. LXD
LXD est un gestionnaire de conteneurs (virtualisation OS) qui se fonde sur LXC (bas niveau). Alors que Docker vise à déployer des applications, LXD vise à déployer ce qui ressemble plus à des machines virtuelles.
Canonical supporte LXD est propose des interfaces pour un service openstack "nova-lxd" et pour déployer un lab léger OpenStack (OpenStack Developer Edition sur Ubuntu).
LXD probablement beaucoup plus performant que KVM.
7. Configuration matérielle et environnement de l'hôte de virtualisation
Configuration Matérielle : C2L chez Scaleway
- Serveur Bare-Metal
- 8 CPUs (Intel AtomC2750 @ 2.40GHz)
- 32 Go RAM
- 50 Go SSD pour le système
- 250 Go SSD (W: 495 MB/s, R: 2.2 GB/s)
/dev/sda1
monté sur/home
- 800 Mbps dédiés matériels
- instructions de virtualisation accessibles
Système d'exploitation : Ubuntu Bionic (18.04)
Environnement de virtualisation, au choix :
- Virtualbox (5.2.18)
- Libvirt/ KVM
Version d'OpenStack :
- Pike
Utilisateur privilégié : stack
(HOME=/home/stack
)
Cet machine est notre machine d'expérimentation. Elle est dédiée uniquement aux exercices sur OpenStack. Ce serveur "Bare-Metal" est appelé "hôte de virtualisation" dans ce document.
Le livre de jeu Ansible pour l'approvisionnement indique les étapes suivantes :
#ansible-playbook stacktrain.yml --list-tasks
#playbook: stacktrain.yml
play #1 (all): SCALEWAY PROVISIONNING TAGS: [start]
tasks:
Scaleway provisionning TAGS: [start]
play #2 (all): MOUNT /dev/sda1 ON /opt TAGS: [mount]
tasks:
mount the additional block device TAGS: [mount]
play #3 (all): UPGRADE AND INSTALL NEEDED SOFTWARES TAGS: [requs]
tasks:
Ensure en_US.UTF-8 locale exists TAGS: [requs]
upgrade all packages TAGS: [requs]
ensure dependencies are installed TAGS: [requs]
play #4 (all): REBOOT SCALEWAY SERVER TAGS: [reboot]
tasks:
restart scaleway TAGS: [reboot]
play #5 (all): FINISH INSTALLATION TAGS: [post]
tasks:
install missing linux kernel headers TAGS: [post]
install virtualbox TAGS: [post]
install kvm TAGS: [post]
Send SSH Key TAGS: [post]
8. Solutions de déploiement rapide d'OpenStack
On trouvera au moins quatre solutions de déploiement rapide (test/dev) : RDO, DevStack, Openstack Ubuntu conjure-up, OpenStack Training Labs.
- OpenStack Training Labs avec KVM ou Virtualbox
- DevStack - https://github.com/openstack-dev/devstack en natif
- Conjuring Up OpenStack with NovaLXD en natif
- Packstack - RDO Project
9. Utilisateur Sudoer stack
useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/stack
sudo su - stack
cat << EOF >> .bashrc
export LANG=en_US.utf-8
export LC_ALL=en_US.utf-8
EOF