Projet

Général

Profil

24 » Historique » Version 40

Joël Cuissinat, 11/06/2014 17:40

1 1 Joël Cuissinat
h1. Eole-2.4
2 14 Joël Cuissinat
3 36 Daniel Dehennin
{{>toc}}
4 36 Daniel Dehennin
5 36 Daniel Dehennin
h2. Normalisation de l’arborescence source
6 36 Daniel Dehennin
7 36 Daniel Dehennin
Prérequis aux packaging 2.4: skeletorisation des sources.
8 1 Joël Cuissinat
9 1 Joël Cuissinat
h2. Dictionnaires
10 1 Joël Cuissinat
11 1 Joël Cuissinat
Les dictionnaires 2.3 sont théoriquement fonctionnels sur 2.4, merci de remonter les éventuels dysfonctionnements rencontrés !
12 1 Joël Cuissinat
La plupart des variables "intermédiaires" peuvent théoriquement être supprimées (exemple : "maj du dico nut":http://dev-eole.ac-dijon.fr/projects/eole-nut/repository/revisions/5620af7f9b21444c1b873ee9b7fe0414aee468ee/diff/dicos/01_nut.xml)
13 1 Joël Cuissinat
14 8 Joël Cuissinat
La version 2.4 apporte de nouvelles notions et notamment :
15 8 Joël Cuissinat
* *disabled* : pour des variables désactivées (cf. http://dev-eole.ac-dijon.fr/projects/tiramisu/wiki/RequiredEtDisabled)
16 8 Joël Cuissinat
* *frozen* : pour des variables non modifiables une fois initialisées (cf. #1328)
17 24 Joël Cuissinat
* *host*, *fstab*, *firewall* : gestion avancée des conteneurs (cf. #4666)
18 8 Joël Cuissinat
19 32 Fabrice Barconnière
h3. Les types Creole
20 32 Fabrice Barconnière
21 32 Fabrice Barconnière
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/TypeCreole24
22 32 Fabrice Barconnière
23 32 Fabrice Barconnière
h3. Les conteneurs
24 32 Fabrice Barconnière
25 32 Fabrice Barconnière
Ajouter une balise dans la partie <containers> et <files> des dictionnaires :
26 32 Fabrice Barconnière
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/AjouterUneBaliseContainers24
27 32 Fabrice Barconnière
28 33 Fabrice Barconnière
h3. Gestion du firewall
29 33 Fabrice Barconnière
30 33 Fabrice Barconnière
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/firewall24
31 33 Fabrice Barconnière
32 1 Joël Cuissinat
h2. Templates 
33 1 Joël Cuissinat
34 2 Joël Cuissinat
Les templates 2.3 sont théoriquement fonctionnels sur 2.4.
35 2 Joël Cuissinat
Évidemment certains devront certainement être mis à niveau.
36 1 Joël Cuissinat
37 28 Joël Cuissinat
h3. Utilisation de "creole_client"
38 28 Joël Cuissinat
39 28 Joël Cuissinat
Les fonctionnalités de *creole_client* sont utilisables directement dans les templates
40 28 Joël Cuissinat
<pre>
41 28 Joël Cuissinat
%%creole_client.get_creole('activer_truc', 'non')
42 28 Joël Cuissinat
</pre>
43 28 Joël Cuissinat
44 31 Joël Cuissinat
Cependant, en pratique, cet exemple peut avantageusement être remplacé en utilisant la fonction native *%%getVar* :
45 31 Joël Cuissinat
<pre>
46 31 Joël Cuissinat
%%getVar('activer_truc', 'non')
47 31 Joël Cuissinat
</pre>
48 31 Joël Cuissinat
49 31 Joël Cuissinat
50 29 Joël Cuissinat
h3. Utilisation de l'attribut ".value"
51 28 Joël Cuissinat
52 28 Joël Cuissinat
L'attribut ".value" ne devrait plus être utilisé dans les templates 2.4.
53 28 Joël Cuissinat
54 30 Joël Cuissinat
h3. Utilisation de l'attribut ".index"
55 28 Joël Cuissinat
56 28 Joël Cuissinat
L'attribut ".index" ne devrait plus être utilisé dans les templates 2.4.
57 28 Joël Cuissinat
La fonction "enumerate" peut être utilisée pour remplacer le code existant :
58 28 Joël Cuissinat
<pre>
59 28 Joël Cuissinat
%for %%idx, %%val in %%enumerate(%%variable)
60 28 Joël Cuissinat
La valeur %%val possède l'index %%idx
61 28 Joël Cuissinat
%end for
62 28 Joël Cuissinat
</pre>
63 28 Joël Cuissinat
64 4 Joël Cuissinat
h2. Fichier de configuration
65 4 Joël Cuissinat
66 4 Joël Cuissinat
Désormais, seul le fichier */etc/eole/config.eol* fait foi.
67 4 Joël Cuissinat
68 4 Joël Cuissinat
Il est automatiquement chargé par les programmes :
69 4 Joël Cuissinat
* gen_config
70 4 Joël Cuissinat
* instance 
71 4 Joël Cuissinat
* reconfigure
72 4 Joël Cuissinat
73 6 Joël Cuissinat
h2. Nouveaux chemins 
74 6 Joël Cuissinat
75 6 Joël Cuissinat
* */usr/lib/eole* : librairies EOLE (remplacent _FonctionsEoleNg_)
76 6 Joël Cuissinat
* */usr/share/eole/sbin* : scripts EOLE
77 6 Joël Cuissinat
* */usr/share/eole/diagnose* : scripts diagnose (plus de sous-répertoires)
78 6 Joël Cuissinat
79 9 Joël Cuissinat
Au niveau des dépôts de code, ces répertoires sont nativement gérés par "eole-skeletor":http://dev-eole.ac-dijon.fr/projects/eole-skeletor/wiki/Doc-geting-started
80 5 Joël Cuissinat
81 5 Joël Cuissinat
h2. Mise à jour 
82 5 Joël Cuissinat
83 5 Joël Cuissinat
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/MajAuto24
84 11 Joël Cuissinat
85 11 Joël Cuissinat
h2. CreoleLint
86 11 Joël Cuissinat
87 11 Joël Cuissinat
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/CreoleLint24
88 1 Joël Cuissinat
89 32 Fabrice Barconnière
h2. Gestion des Locks
90 20 Emmanuel GARETTE
91 1 Joël Cuissinat
http://dev-eole.ac-dijon.fr/projects/creole/wiki/Lock24
92 32 Fabrice Barconnière
93 32 Fabrice Barconnière
h2. Gestion des schedules (Mises à jour automatiques par exemple)
94 32 Fabrice Barconnière
95 32 Fabrice Barconnière
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/Schedule24
96 32 Fabrice Barconnière
97 32 Fabrice Barconnière
98 20 Emmanuel GARETTE
99 1 Joël Cuissinat
h2. Programmation shell
100 1 Joël Cuissinat
101 1 Joël Cuissinat
h3. CreoleGet
102 1 Joël Cuissinat
103 1 Joël Cuissinat
<pre>
104 1 Joël Cuissinat
.ParseDico
105 1 Joël Cuissinat
echo $mavariable
106 1 Joël Cuissinat
</pre>
107 1 Joël Cuissinat
est remplacé par :
108 1 Joël Cuissinat
<pre>
109 1 Joël Cuissinat
echo $(CreoleGet mavariable)
110 1 Joël Cuissinat
</pre>
111 1 Joël Cuissinat
112 1 Joël Cuissinat
ATTENTION : à ce jour, pour accéder à une variable esclave, il faut connaître la variable maître :
113 1 Joël Cuissinat
<pre>
114 1 Joël Cuissinat
echo $(CreoleGet lamaster.lesclave)
115 1 Joël Cuissinat
</pre>
116 1 Joël Cuissinat
117 34 Joël Cuissinat
Depuis #6075 (alpha2), si on n'est pas sûr que la variable existe ou qu'elle soit active, on peut utiliser :
118 34 Joël Cuissinat
<pre>
119 34 Joël Cuissinat
echo $(CreoleGet mavariable valeurpardefaut)
120 34 Joël Cuissinat
</pre>
121 34 Joël Cuissinat
122 1 Joël Cuissinat
h3. CreoleRun
123 1 Joël Cuissinat
124 1 Joël Cuissinat
<pre>
125 1 Joël Cuissinat
./usr/share/eole/FonctionsEoleNg
126 1 Joël Cuissinat
RunCmd "ma -commande" conteneur
127 1 Joël Cuissinat
</pre>
128 1 Joël Cuissinat
est remplacé par :
129 3 Joël Cuissinat
<pre>
130 1 Joël Cuissinat
CreoleRun "ma -commande" conteneur
131 1 Joël Cuissinat
</pre>
132 7 Joël Cuissinat
133 7 Joël Cuissinat
h3. Interactions avec l'utilisateur
134 7 Joël Cuissinat
135 7 Joël Cuissinat
<pre>
136 7 Joël Cuissinat
. /usr/lib/eole/ihm.sh
137 7 Joël Cuissinat
EchoRouge "Attention"
138 7 Joël Cuissinat
Question_ouinon "Êtes-vous bien sûr de vouloir faire cela ?"
139 7 Joël Cuissinat
</pre>
140 7 Joël Cuissinat
141 7 Joël Cuissinat
h3. Tests système
142 7 Joël Cuissinat
143 7 Joël Cuissinat
<pre>
144 7 Joël Cuissinat
. /usr/lib/eole/diagnose.sh
145 7 Joël Cuissinat
TestService "mon SSH" localhost:22
146 7 Joël Cuissinat
</pre>
147 7 Joël Cuissinat
148 10 Joël Cuissinat
h2. Programmation python
149 10 Joël Cuissinat
150 15 Joël Cuissinat
h3. CreoleClient
151 15 Joël Cuissinat
152 21 Joël Cuissinat
h4. Obtenir la valeur d'une variable
153 21 Joël Cuissinat
154 15 Joël Cuissinat
<pre>
155 15 Joël Cuissinat
from creole import parsedico
156 16 Joël Cuissinat
from creole.eosfunc import load_container_var
157 15 Joël Cuissinat
dico = parsedico.parse_dico() 
158 15 Joël Cuissinat
print dico['nom_machine']
159 16 Joël Cuissinat
conteneurs = load_container_var()
160 16 Joël Cuissinat
print conteneurs['container_path_annuaire']
161 15 Joël Cuissinat
</pre>
162 1 Joël Cuissinat
163 17 Joël Cuissinat
est remplacé par :
164 1 Joël Cuissinat
165 1 Joël Cuissinat
<pre>
166 1 Joël Cuissinat
from creole import client
167 16 Joël Cuissinat
dico = client.CreoleClient()
168 16 Joël Cuissinat
print dico.get_creole('nom_machine')
169 16 Joël Cuissinat
print dico.get_creole('container_path_annuaire')
170 21 Joël Cuissinat
</pre>
171 21 Joël Cuissinat
172 26 Joël Cuissinat
Dans le cas où l'on n'est pas sûr de l'existence de la variable, une valeur par défaut peut être passée en second paramètre :
173 26 Joël Cuissinat
174 26 Joël Cuissinat
<pre>
175 26 Joël Cuissinat
if dico.get_creole('activer_service', 'non') == 'oui':
176 26 Joël Cuissinat
    print "On est sûr que oui"
177 26 Joël Cuissinat
</pre>
178 26 Joël Cuissinat
179 21 Joël Cuissinat
h4. Obtenir le dictionnaire des variables
180 21 Joël Cuissinat
181 21 Joël Cuissinat
L'utilisation de _get_creole_ sans argument, permet d'obtenir un dictionnaire des variables similaire à celui de la 2.3 et ainsi de (re)faire fonctionner d'anciennes applications sans modifications de code majeures (exemple pour l'EAD).
182 21 Joël Cuissinat
183 38 Bruno Boiget
*Attention*, dans le cas des variables de type 'esclave', la clé dans le dictionnaire est au format suivant : 'nom_var_maître.nom_var_esclave'
184 38 Bruno Boiget
185 21 Joël Cuissinat
<pre>
186 22 Joël Cuissinat
from creole.client import CreoleClient
187 21 Joël Cuissinat
dico = CreoleClient().get_creole()
188 21 Joël Cuissinat
ip_locale = dico['adresse_ip_eth0']
189 15 Joël Cuissinat
</pre>
190 1 Joël Cuissinat
191 39 Joël Cuissinat
h3. Exemples en mode avancé 
192 39 Joël Cuissinat
193 39 Joël Cuissinat
* Récupérer les "settings" d'une variable : #7996
194 39 Joël Cuissinat
* Importer une configuration manuellement : 
195 39 Joël Cuissinat
<pre>
196 39 Joël Cuissinat
from creole.loader import creole_loader
197 39 Joël Cuissinat
creole_loader(force_configeol="/tmp/ssh_eth0.eol")
198 39 Joël Cuissinat
</pre>
199 39 Joël Cuissinat
200 39 Joël Cuissinat
201 1 Joël Cuissinat
h2. Migration
202 1 Joël Cuissinat
203 1 Joël Cuissinat
h3. eole-web
204 1 Joël Cuissinat
205 12 Emmanuel GARETTE
* */etc/apache2/sites-enable/scribe* est à supprimer (dans le conteneur)
206 1 Joël Cuissinat
207 13 Joël Cuissinat
h3. eole-common
208 1 Joël Cuissinat
209 18 Emmanuel GARETTE
* 01_network.xml :
210 18 Emmanuel GARETTE
# la valeur "aucun" de la variable *alias_gw_eth?* est remplacée par _None_
211 18 Emmanuel GARETTE
# :%s/adresse_ip_vlan_eth/vlan_ip_eth/g
212 18 Emmanuel GARETTE
# :%s/adresse_netmask_vlan_eth/vlan_netmask_eth/g
213 18 Emmanuel GARETTE
# :%s/adresse_network_vlan_eth/vlan_network_eth/g
214 18 Emmanuel GARETTE
# :%s/adresse_broadcast_vlan_eth/vlan_broadcast_eth/g
215 18 Emmanuel GARETTE
# :%s/adresse_gw_vlan_eth/vlan_gw_eth/g
216 19 Emmanuel GARETTE
# :%s/id_vlan_eth/vlan_id_eth/g
217 18 Emmanuel GARETTE
# la valeur "aucun" de la variable *vlan_gw_eth?* est remplacée par _None_
218 13 Joël Cuissinat
219 23 Joël Cuissinat
h3. eole-dhcp
220 23 Joël Cuissinat
221 23 Joël Cuissinat
* /etc/dhcp3 -> /etc/dhcp
222 23 Joël Cuissinat
* /etc/init.d/dhcp3-server -> /etc/init.d/isc-dhcp-server
223 23 Joël Cuissinat
* mais pas de problème spécifique puisque pour les adresses fixées, c'est toujours */var/lib/eole/config/dhcp.conf* qui fait foi
224 13 Joël Cuissinat
225 37 Joël Cuissinat
h3. Script d'Upgrade 2.3 -> 2.4
226 37 Joël Cuissinat
227 37 Joël Cuissinat
Voir page dédiée : [[Upgrade-Auto-24]]
228 37 Joël Cuissinat
229 13 Joël Cuissinat
h2. Packaging
230 25 Joël Cuissinat
231 25 Joël Cuissinat
h3. Portage des projets vers 2.4 et packaging 2.4
232 13 Joël Cuissinat
233 35 Emmanuel GARETTE
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/eole/wiki/PrepareEOLE24
234 25 Joël Cuissinat
235 25 Joël Cuissinat
h3. Nommage des paquets
236 25 Joël Cuissinat
237 25 Joël Cuissinat
_Premières conclusions issues de la discussion #3096_
238 25 Joël Cuissinat
239 25 Joël Cuissinat
* Paquets de base
240 25 Joël Cuissinat
** module non conteneur : *eole-server* (remplace eole-common)
241 25 Joël Cuissinat
** module conteneur : *eole-lxc-controller* (remplace eole-conteneur)
242 25 Joël Cuissinat
* Paquets de service
243 25 Joël Cuissinat
** dicos/templates : *eole-<service>* 
244 25 Joël Cuissinat
** dépendances : *eole-<service>-pkg* (au lieu de <service>-pkg)
245 27 Joël Cuissinat
* Paquets de module 
246 27 Joël Cuissinat
** méta-paquet de module : *eole-<nom_module>-module* (remplace <nom_module>-pkg)
247 1 Joël Cuissinat
** dicos/templates : *eole-<nom_module>* (remplace conf-<nom_module>)
248 40 Joël Cuissinat
** dépendances (pour modules non conteneur) : *eole-<nom_module>-all*