Projet

Général

Profil

Automatisation » Historique » Version 22

Daniel Dehennin, 14/04/2021 16:32

1 2 Daniel Dehennin
{{>toc}}
2 2 Daniel Dehennin
3 1 Gilles Grandgérard
h1. Automatisation
4 1 Gilles Grandgérard
5 15 Daniel Dehennin
Dans le cas de l'utilisation d'un serveur Hapy, l'utilisateur doit créer ses machines virtuelles *manuellement* comme expliqué dans un "article de blog":https://pcll.ac-dijon.fr/eole/utiliser-hapy-virtualiser-modules-eole/.
6 1 Gilles Grandgérard
7 2 Daniel Dehennin
L'idée est de pouvoir proposer une *automatisation* de ce type de déploiement.
8 1 Gilles Grandgérard
9 3 Daniel Dehennin
À la suite de l'étude faite par Cadoles :
10 1 Gilles Grandgérard
11 1 Gilles Grandgérard
* Nous imposons l'utilisation d'un Zéphir
12 21 Daniel Dehennin
* Les utilisateurs téléchargerons des images pré-crées et distribuées par un "marketplace":https://docs.opennebula.io/6.0/management_and_operations/storage_management/marketplaces.html#public-marketplaces à installer "nous même":https://github.com/OpenNebula/appmarket-simple
13 2 Daniel Dehennin
* Nous ne proposons pas de modèle d'infrastructure (Amon + Scribe, Amon + Seth AD + Seth filer, ...) (l'idée serait à travailler plus tard)
14 15 Daniel Dehennin
* Nous proposerons ultérieurement un outillage pour que les utilisateurs puissent créer leurs propres images (l’outillage Cadoles peut être une solution à ce propos)
15 1 Gilles Grandgérard
16 2 Daniel Dehennin
h1. Pré requis pour utiliser cette fonctionnalité
17 1 Gilles Grandgérard
18 2 Daniel Dehennin
* Avoir un Zéphir pour manager les Hâpy et les VM installées sur ces Hâpy
19 2 Daniel Dehennin
* Avoir au moins un Hâpy instancié et configuré.
20 11 Gilles Grandgérard
* l'accès vers le dépôt des images Eole/Hâpy doit être possible (proxy,...) (et le dépot préparé) 
21 1 Gilles Grandgérard
* Les images devront être Cloudifiées (cloud-init ou one-context). Voir #32118
22 1 Gilles Grandgérard
23 1 Gilles Grandgérard
24 1 Gilles Grandgérard
h1. Exigences de fonctionnement
25 1 Gilles Grandgérard
26 1 Gilles Grandgérard
* Toutes les VM *managées* utilisent des images persistantes
27 1 Gilles Grandgérard
* Toutes les VM sont enregistrées sur Zéphir
28 1 Gilles Grandgérard
* Si la VM existe déjà sur l'Hapy, on ne la recrée pas (attention: seul le template peut être actualisé)
29 1 Gilles Grandgérard
30 15 Daniel Dehennin
h1. Cas d’usage
31 15 Daniel Dehennin
32 15 Daniel Dehennin
Nous partons du principe qu’un ensemble d’établissement partagent les mêmes caractéristiques :
33 1 Gilles Grandgérard
34 17 Daniel Dehennin
* même topologie réseau: internet, admin, pédago et dmz
35 18 Daniel Dehennin
* même caractéristiques de machine virtuelle (par exemple tous les amons ont la même quantité de RAM, etc)
36 15 Daniel Dehennin
37 22 Daniel Dehennin
h2. Mise en place d’une infrastructure depuis 0
38 22 Daniel Dehennin
39 15 Daniel Dehennin
Le processus global se résume ainsi :
40 15 Daniel Dehennin
41 15 Daniel Dehennin
# Sur le serveur Zéphir
42 15 Daniel Dehennin
## Créer une variante Hâpy pour pré-définir la liste des réseaux virtuels (les adresses IP et autres devront être remplies à la main lors de la configuration de chaque Hâpy)
43 15 Daniel Dehennin
## Créer une variante pour Amon afin de définir les paramètres communs de machines virtuelles (RAM, taille de disque, etc)
44 15 Daniel Dehennin
## Créer une variante pour Scribe afin de définir les paramètres communs de machines virtuelles (RAM, taille de disque, etc)
45 15 Daniel Dehennin
## Pour chaque établissement
46 15 Daniel Dehennin
### Le créer s’il n’existe pas
47 15 Daniel Dehennin
### Créer le serveur Amon de la bonne variante et finir sa configuration
48 15 Daniel Dehennin
### Créer le serveur Scribe de la bonne variante et finir sa configuration
49 20 Daniel Dehennin
### Créer le serveur Hâpy de la bonne variante et finir sa configuration avec notamment la liste des serveurs créés précédemment à déployer automatiquement
50 15 Daniel Dehennin
# Dans chaque établissement
51 15 Daniel Dehennin
## Installer physiquement le serveur Hâpy
52 15 Daniel Dehennin
## Installer le module EOLE Hâpy
53 1 Gilles Grandgérard
## Enregistrer le serveur Hâpy sur Zéphir
54 22 Daniel Dehennin
## Appliquer la configuration en exécutant la commande *@instance@*
55 19 Daniel Dehennin
56 1 Gilles Grandgérard
Le déploiement des serveurs de l’établissement doit se faire automatiquement sans autre intervention humaine.
57 22 Daniel Dehennin
58 22 Daniel Dehennin
h2. Ajout d’un nouveau serveur à l’établissement
59 22 Daniel Dehennin
60 22 Daniel Dehennin
Nous allons ajouter un serveur Eolebase à l’infrastructure existente.
61 22 Daniel Dehennin
62 22 Daniel Dehennin
Le processus global se résume ainsi :
63 22 Daniel Dehennin
64 22 Daniel Dehennin
# Sur le serveur Zéphir
65 22 Daniel Dehennin
## Créer une variante pour Eolebase afin de définir les paramètres communs de machines virtuelles (RAM, taille de disque, etc)
66 22 Daniel Dehennin
## Pour chaque établissement
67 22 Daniel Dehennin
### Créer le serveur Eolebase de la bonne variante et finir sa configuration
68 22 Daniel Dehennin
### Éditer la configuration du serveur Hâpy et ajouter l’identifiant du serveur Eolebase à la liste des serveurs à déployer automatiquement
69 22 Daniel Dehennin
### Programmer l’envoie de la configuration du serveur Hâpy
70 22 Daniel Dehennin
# Sur chaque serveur Hâpy
71 22 Daniel Dehennin
## S’assurer que la configuration est récuppérer en exécutant la commande *@synchro_zephir@*
72 22 Daniel Dehennin
## Appliquer la configuration en exécutant la commande *@reconfigure@*
73 22 Daniel Dehennin
74 22 Daniel Dehennin
Le déploiement du nouveau serveur de l’établissement doit se faire automatiquement sans autre intervention humaine.
75 22 Daniel Dehennin
76 22 Daniel Dehennin
NB: L’application de la configuration manuellement sur chaque serveur Hâpy peut être remplacé par l’exécution automatique de la commande *@reconfigure@* lors de l’envoie de la configuration.
77 22 Daniel Dehennin
78 15 Daniel Dehennin
79 2 Daniel Dehennin
h1. Comment fonctionne l'automatisation
80 1 Gilles Grandgérard
81 1 Gilles Grandgérard
h2. Il faut créer la configuration des VM dans Zéphir (dont les caractéristiques de la VM)
82 1 Gilles Grandgérard
83 6 Daniel Dehennin
Voir #32117
84 4 Gilles Grandgérard
85 7 Daniel Dehennin
(si le paquet *@eole-modele-vm@* n'est pas installé, faire *@apt-eole install eole-modele-vm@*)
86 1 Gilles Grandgérard
87 2 Daniel Dehennin
Pour cela, vous devez *activer_modele_vm*. Renseigner les variables suivantes :
88 1 Gilles Grandgérard
89 2 Daniel Dehennin
* mémoire     : la mémoire en Go (par defaut : la préconisation EOLE pour le module)
90 2 Daniel Dehennin
* vcpu        : 
91 2 Daniel Dehennin
* Disque Os   : nom du disque OS de la VM (par défaut: *@<eole-module>-<eole-release>@*) + Taille
92 2 Daniel Dehennin
* Disque Data : nom du disque Data + Taille
93 2 Daniel Dehennin
* Interface 1 : nom du réseau déclaré sur Hapy
94 2 Daniel Dehennin
* Interface 2 : nom du réseau déclaré sur Hapy
95 2 Daniel Dehennin
* Interface 3 : nom du réseau déclaré sur Hapy
96 1 Gilles Grandgérard
* Interface X : nom du réseau déclaré sur Hapy
97 1 Gilles Grandgérard
98 1 Gilles Grandgérard
Ceci peut être fait lors de la création des variantes et la création des serveurs. Ce travail reste manuel.
99 8 Daniel Dehennin
100 8 Daniel Dehennin
101 8 Daniel Dehennin
DaD:
102 8 Daniel Dehennin
* Je pense qu’au lieu d’avoir *@Disque OS@* et *@Disque Data@* il faudrait une liste ordonnée de disque (*@nom de l’image@* + *@taille de l’image@* + *@bootable ?@*)
103 10 Gilles Grandgérard
104 1 Gilles Grandgérard
h2. Dans la configuration de l'Hapy,
105 10 Gilles Grandgérard
106 10 Gilles Grandgérard
Voir #32118
107 10 Gilles Grandgérard
108 10 Gilles Grandgérard
Activer *activer_deploiement_automatique*
109 1 Gilles Grandgérard
Saisir la liste des VMs :
110 1 Gilles Grandgérard
111 2 Daniel Dehennin
* Renseigner les Id Zéphir des serveurs devant être déployées sur cet Hapy (id zéphir ou nom de la vm ?)
112 2 Daniel Dehennin
* La liste est ordonnée : les VM sont démarrée dans cette ordre.
113 2 Daniel Dehennin
114 1 Gilles Grandgérard
RQ: il n'y a pas de contrôle entre la liste des Interfaces déclarées sur Hapy et les Interfaces venant des configurations de VM.
115 1 Gilles Grandgérard
116 2 Daniel Dehennin
h2. Depuis Zéphir, appliquer la configuration sur le serveur Hâpy
117 1 Gilles Grandgérard
118 2 Daniel Dehennin
* La nouvelle configuration est déployé sur la machine Hapy
119 2 Daniel Dehennin
* Le reconfigure est exécuté
120 2 Daniel Dehennin
* les VM vont être installées, instanciées et prêtes à l'usage dans l'ordre de déclaration de la liste des VM
121 1 Gilles Grandgérard
122 15 Daniel Dehennin
h1. Procédure postservice hapy
123 1 Gilles Grandgérard
124 2 Daniel Dehennin
La création des interfaces aura été faite lors de l’instance/reconfigure de l'Hapy.
125 1 Gilles Grandgérard
Idem pour les datastores....
126 1 Gilles Grandgérard
Idem pour la déclaration du marketplace EOLE/Hapy
127 1 Gilles Grandgérard
128 14 Gilles Grandgérard
Voir postservice : #32120
129 14 Gilles Grandgérard
Voir diagnose : #32123
130 12 Gilles Grandgérard
131 2 Daniel Dehennin
# Si *@activer_deploiement_automatique@* = *@non@*, stop
132 2 Daniel Dehennin
# Pour chaque *@IdZéphir@*
133 2 Daniel Dehennin
## récupérer toute la configuration de la VM dans un *@tar.gz@*
134 2 Daniel Dehennin
### Vérifier la cohérence des informations Hapy/VMs. Si échec, alors on s'arrête en erreur
135 2 Daniel Dehennin
## créer/mettre à jour un FILE dans hapy pour chaque configuration de VM 
136 2 Daniel Dehennin
## télécharger les images Apps sur l'Hapy
137 2 Daniel Dehennin
## créer les images nécessaires Os (et Data si besoin)
138 2 Daniel Dehennin
## Créer/mettre à jour un TEMPLATE (Avec une contextualisation active, +Le fichier de Configuration, +Le script de post installation)
139 2 Daniel Dehennin
## Démarrer la VM
140 2 Daniel Dehennin
## Si l'instance n'est pas faite: 
141 2 Daniel Dehennin
*** réponse aux questions de façon automatique
142 2 Daniel Dehennin
*** gestion des secrets
143 1 Gilles Grandgérard
## Monitorer la fin d'instance avant de passer à la suivante.