Projet

Général

Profil

24 » Historique » Version 38

Bruno Boiget, 17/01/2014 14:42

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 1 Joël Cuissinat
h2. Migration
192 1 Joël Cuissinat
193 1 Joël Cuissinat
h3. eole-web
194 1 Joël Cuissinat
195 12 Emmanuel GARETTE
* */etc/apache2/sites-enable/scribe* est à supprimer (dans le conteneur)
196 1 Joël Cuissinat
197 13 Joël Cuissinat
h3. eole-common
198 1 Joël Cuissinat
199 18 Emmanuel GARETTE
* 01_network.xml :
200 18 Emmanuel GARETTE
# la valeur "aucun" de la variable *alias_gw_eth?* est remplacée par _None_
201 18 Emmanuel GARETTE
# :%s/adresse_ip_vlan_eth/vlan_ip_eth/g
202 18 Emmanuel GARETTE
# :%s/adresse_netmask_vlan_eth/vlan_netmask_eth/g
203 18 Emmanuel GARETTE
# :%s/adresse_network_vlan_eth/vlan_network_eth/g
204 18 Emmanuel GARETTE
# :%s/adresse_broadcast_vlan_eth/vlan_broadcast_eth/g
205 18 Emmanuel GARETTE
# :%s/adresse_gw_vlan_eth/vlan_gw_eth/g
206 19 Emmanuel GARETTE
# :%s/id_vlan_eth/vlan_id_eth/g
207 18 Emmanuel GARETTE
# la valeur "aucun" de la variable *vlan_gw_eth?* est remplacée par _None_
208 13 Joël Cuissinat
209 23 Joël Cuissinat
h3. eole-dhcp
210 23 Joël Cuissinat
211 23 Joël Cuissinat
* /etc/dhcp3 -> /etc/dhcp
212 23 Joël Cuissinat
* /etc/init.d/dhcp3-server -> /etc/init.d/isc-dhcp-server
213 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
214 13 Joël Cuissinat
215 37 Joël Cuissinat
h3. Script d'Upgrade 2.3 -> 2.4
216 37 Joël Cuissinat
217 37 Joël Cuissinat
Voir page dédiée : [[Upgrade-Auto-24]]
218 37 Joël Cuissinat
219 13 Joël Cuissinat
h2. Packaging
220 25 Joël Cuissinat
221 25 Joël Cuissinat
h3. Portage des projets vers 2.4 et packaging 2.4
222 13 Joël Cuissinat
223 35 Emmanuel GARETTE
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/eole/wiki/PrepareEOLE24
224 25 Joël Cuissinat
225 25 Joël Cuissinat
h3. Nommage des paquets
226 25 Joël Cuissinat
227 25 Joël Cuissinat
_Premières conclusions issues de la discussion #3096_
228 25 Joël Cuissinat
229 25 Joël Cuissinat
* Paquets de base
230 25 Joël Cuissinat
** module non conteneur : *eole-server* (remplace eole-common)
231 25 Joël Cuissinat
** module conteneur : *eole-lxc-controller* (remplace eole-conteneur)
232 25 Joël Cuissinat
* Paquets de service
233 25 Joël Cuissinat
** dicos/templates : *eole-<service>* 
234 25 Joël Cuissinat
** dépendances : *eole-<service>-pkg* (au lieu de <service>-pkg)
235 27 Joël Cuissinat
* Paquets de module 
236 27 Joël Cuissinat
** méta-paquet de module : *eole-<nom_module>-module* (remplace <nom_module>-pkg)
237 1 Joël Cuissinat
** dicos/templates : *eole-<nom_module>* (remplace conf-<nom_module>)
238 27 Joël Cuissinat
** dépendances (pour modules non conteneur) : ?