Projet

Général

Profil

24 » Historique » Version 32

Fabrice Barconnière, 02/10/2013 09:50

1 1 Joël Cuissinat
h1. Eole-2.4
2 14 Joël Cuissinat
3 14 Joël Cuissinat
{{>toc}} 
4 1 Joël Cuissinat
5 1 Joël Cuissinat
h2. Dictionnaires
6 1 Joël Cuissinat
7 1 Joël Cuissinat
Les dictionnaires 2.3 sont théoriquement fonctionnels sur 2.4, merci de remonter les éventuels dysfonctionnements rencontrés !
8 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)
9 1 Joël Cuissinat
10 8 Joël Cuissinat
La version 2.4 apporte de nouvelles notions et notamment :
11 8 Joël Cuissinat
* *disabled* : pour des variables désactivées (cf. http://dev-eole.ac-dijon.fr/projects/tiramisu/wiki/RequiredEtDisabled)
12 8 Joël Cuissinat
* *frozen* : pour des variables non modifiables une fois initialisées (cf. #1328)
13 24 Joël Cuissinat
* *host*, *fstab*, *firewall* : gestion avancée des conteneurs (cf. #4666)
14 8 Joël Cuissinat
15 32 Fabrice Barconnière
h3. Les types Creole
16 32 Fabrice Barconnière
17 32 Fabrice Barconnière
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/TypeCreole24
18 32 Fabrice Barconnière
19 32 Fabrice Barconnière
h3. Les conteneurs
20 32 Fabrice Barconnière
21 32 Fabrice Barconnière
Ajouter une balise dans la partie <containers> et <files> des dictionnaires :
22 32 Fabrice Barconnière
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/AjouterUneBaliseContainers24
23 32 Fabrice Barconnière
24 1 Joël Cuissinat
h2. Templates 
25 1 Joël Cuissinat
26 2 Joël Cuissinat
Les templates 2.3 sont théoriquement fonctionnels sur 2.4.
27 2 Joël Cuissinat
Évidemment certains devront certainement être mis à niveau.
28 1 Joël Cuissinat
29 28 Joël Cuissinat
h3. Utilisation de "creole_client"
30 28 Joël Cuissinat
31 28 Joël Cuissinat
Les fonctionnalités de *creole_client* sont utilisables directement dans les templates
32 28 Joël Cuissinat
<pre>
33 28 Joël Cuissinat
%%creole_client.get_creole('activer_truc', 'non')
34 28 Joël Cuissinat
</pre>
35 28 Joël Cuissinat
36 31 Joël Cuissinat
Cependant, en pratique, cet exemple peut avantageusement être remplacé en utilisant la fonction native *%%getVar* :
37 31 Joël Cuissinat
<pre>
38 31 Joël Cuissinat
%%getVar('activer_truc', 'non')
39 31 Joël Cuissinat
</pre>
40 31 Joël Cuissinat
41 31 Joël Cuissinat
42 29 Joël Cuissinat
h3. Utilisation de l'attribut ".value"
43 28 Joël Cuissinat
44 28 Joël Cuissinat
L'attribut ".value" ne devrait plus être utilisé dans les templates 2.4.
45 28 Joël Cuissinat
46 30 Joël Cuissinat
h3. Utilisation de l'attribut ".index"
47 28 Joël Cuissinat
48 28 Joël Cuissinat
L'attribut ".index" ne devrait plus être utilisé dans les templates 2.4.
49 28 Joël Cuissinat
La fonction "enumerate" peut être utilisée pour remplacer le code existant :
50 28 Joël Cuissinat
<pre>
51 28 Joël Cuissinat
%for %%idx, %%val in %%enumerate(%%variable)
52 28 Joël Cuissinat
La valeur %%val possède l'index %%idx
53 28 Joël Cuissinat
%end for
54 28 Joël Cuissinat
</pre>
55 28 Joël Cuissinat
56 4 Joël Cuissinat
h2. Fichier de configuration
57 4 Joël Cuissinat
58 4 Joël Cuissinat
Désormais, seul le fichier */etc/eole/config.eol* fait foi.
59 4 Joël Cuissinat
60 4 Joël Cuissinat
Il est automatiquement chargé par les programmes :
61 4 Joël Cuissinat
* gen_config
62 4 Joël Cuissinat
* instance 
63 4 Joël Cuissinat
* reconfigure
64 4 Joël Cuissinat
65 6 Joël Cuissinat
h2. Nouveaux chemins 
66 6 Joël Cuissinat
67 6 Joël Cuissinat
* */usr/lib/eole* : librairies EOLE (remplacent _FonctionsEoleNg_)
68 6 Joël Cuissinat
* */usr/share/eole/sbin* : scripts EOLE
69 6 Joël Cuissinat
* */usr/share/eole/diagnose* : scripts diagnose (plus de sous-répertoires)
70 6 Joël Cuissinat
71 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
72 5 Joël Cuissinat
73 5 Joël Cuissinat
h2. Mise à jour 
74 5 Joël Cuissinat
75 5 Joël Cuissinat
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/MajAuto24
76 11 Joël Cuissinat
77 11 Joël Cuissinat
h2. CreoleLint
78 11 Joël Cuissinat
79 11 Joël Cuissinat
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/CreoleLint24
80 1 Joël Cuissinat
81 32 Fabrice Barconnière
h2. Gestion des Locks
82 20 Emmanuel GARETTE
83 1 Joël Cuissinat
http://dev-eole.ac-dijon.fr/projects/creole/wiki/Lock24
84 32 Fabrice Barconnière
85 32 Fabrice Barconnière
h2. Gestion des schedules (Mises à jour automatiques par exemple)
86 32 Fabrice Barconnière
87 32 Fabrice Barconnière
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/Schedule24
88 32 Fabrice Barconnière
89 32 Fabrice Barconnière
90 20 Emmanuel GARETTE
91 1 Joël Cuissinat
h2. Programmation shell
92 1 Joël Cuissinat
93 1 Joël Cuissinat
h3. CreoleGet
94 1 Joël Cuissinat
95 1 Joël Cuissinat
<pre>
96 1 Joël Cuissinat
.ParseDico
97 1 Joël Cuissinat
echo $mavariable
98 1 Joël Cuissinat
</pre>
99 1 Joël Cuissinat
est remplacé par :
100 1 Joël Cuissinat
<pre>
101 1 Joël Cuissinat
echo $(CreoleGet mavariable)
102 1 Joël Cuissinat
</pre>
103 1 Joël Cuissinat
104 1 Joël Cuissinat
ATTENTION : à ce jour, pour accéder à une variable esclave, il faut connaître la variable maître :
105 1 Joël Cuissinat
<pre>
106 1 Joël Cuissinat
echo $(CreoleGet lamaster.lesclave)
107 1 Joël Cuissinat
</pre>
108 1 Joël Cuissinat
109 1 Joël Cuissinat
h3. CreoleRun
110 1 Joël Cuissinat
111 1 Joël Cuissinat
<pre>
112 1 Joël Cuissinat
./usr/share/eole/FonctionsEoleNg
113 1 Joël Cuissinat
RunCmd "ma -commande" conteneur
114 1 Joël Cuissinat
</pre>
115 1 Joël Cuissinat
est remplacé par :
116 3 Joël Cuissinat
<pre>
117 1 Joël Cuissinat
CreoleRun "ma -commande" conteneur
118 1 Joël Cuissinat
</pre>
119 7 Joël Cuissinat
120 7 Joël Cuissinat
h3. Interactions avec l'utilisateur
121 7 Joël Cuissinat
122 7 Joël Cuissinat
<pre>
123 7 Joël Cuissinat
. /usr/lib/eole/ihm.sh
124 7 Joël Cuissinat
EchoRouge "Attention"
125 7 Joël Cuissinat
Question_ouinon "Êtes-vous bien sûr de vouloir faire cela ?"
126 7 Joël Cuissinat
</pre>
127 7 Joël Cuissinat
128 7 Joël Cuissinat
h3. Tests système
129 7 Joël Cuissinat
130 7 Joël Cuissinat
<pre>
131 7 Joël Cuissinat
. /usr/lib/eole/diagnose.sh
132 7 Joël Cuissinat
TestService "mon SSH" localhost:22
133 7 Joël Cuissinat
</pre>
134 7 Joël Cuissinat
135 10 Joël Cuissinat
h2. Programmation python
136 10 Joël Cuissinat
137 15 Joël Cuissinat
h3. CreoleClient
138 15 Joël Cuissinat
139 21 Joël Cuissinat
h4. Obtenir la valeur d'une variable
140 21 Joël Cuissinat
141 15 Joël Cuissinat
<pre>
142 15 Joël Cuissinat
from creole import parsedico
143 16 Joël Cuissinat
from creole.eosfunc import load_container_var
144 15 Joël Cuissinat
dico = parsedico.parse_dico() 
145 15 Joël Cuissinat
print dico['nom_machine']
146 16 Joël Cuissinat
conteneurs = load_container_var()
147 16 Joël Cuissinat
print conteneurs['container_path_annuaire']
148 15 Joël Cuissinat
</pre>
149 1 Joël Cuissinat
150 17 Joël Cuissinat
est remplacé par :
151 1 Joël Cuissinat
152 1 Joël Cuissinat
<pre>
153 1 Joël Cuissinat
from creole import client
154 16 Joël Cuissinat
dico = client.CreoleClient()
155 16 Joël Cuissinat
print dico.get_creole('nom_machine')
156 16 Joël Cuissinat
print dico.get_creole('container_path_annuaire')
157 21 Joël Cuissinat
</pre>
158 21 Joël Cuissinat
159 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 :
160 26 Joël Cuissinat
161 26 Joël Cuissinat
<pre>
162 26 Joël Cuissinat
if dico.get_creole('activer_service', 'non') == 'oui':
163 26 Joël Cuissinat
    print "On est sûr que oui"
164 26 Joël Cuissinat
</pre>
165 26 Joël Cuissinat
166 21 Joël Cuissinat
h4. Obtenir le dictionnaire des variables
167 21 Joël Cuissinat
168 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).
169 21 Joël Cuissinat
170 21 Joël Cuissinat
<pre>
171 22 Joël Cuissinat
from creole.client import CreoleClient
172 21 Joël Cuissinat
dico = CreoleClient().get_creole()
173 21 Joël Cuissinat
ip_locale = dico['adresse_ip_eth0']
174 15 Joël Cuissinat
</pre>
175 1 Joël Cuissinat
176 1 Joël Cuissinat
h2. Migration
177 1 Joël Cuissinat
178 1 Joël Cuissinat
h3. eole-web
179 1 Joël Cuissinat
180 12 Emmanuel GARETTE
* */etc/apache2/sites-enable/scribe* est à supprimer (dans le conteneur)
181 1 Joël Cuissinat
182 13 Joël Cuissinat
h3. eole-common
183 1 Joël Cuissinat
184 18 Emmanuel GARETTE
* 01_network.xml :
185 18 Emmanuel GARETTE
# la valeur "aucun" de la variable *alias_gw_eth?* est remplacée par _None_
186 18 Emmanuel GARETTE
# :%s/adresse_ip_vlan_eth/vlan_ip_eth/g
187 18 Emmanuel GARETTE
# :%s/adresse_netmask_vlan_eth/vlan_netmask_eth/g
188 18 Emmanuel GARETTE
# :%s/adresse_network_vlan_eth/vlan_network_eth/g
189 18 Emmanuel GARETTE
# :%s/adresse_broadcast_vlan_eth/vlan_broadcast_eth/g
190 18 Emmanuel GARETTE
# :%s/adresse_gw_vlan_eth/vlan_gw_eth/g
191 19 Emmanuel GARETTE
# :%s/id_vlan_eth/vlan_id_eth/g
192 18 Emmanuel GARETTE
# la valeur "aucun" de la variable *vlan_gw_eth?* est remplacée par _None_
193 13 Joël Cuissinat
194 23 Joël Cuissinat
h3. eole-dhcp
195 23 Joël Cuissinat
196 23 Joël Cuissinat
* /etc/dhcp3 -> /etc/dhcp
197 23 Joël Cuissinat
* /etc/init.d/dhcp3-server -> /etc/init.d/isc-dhcp-server
198 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
199 13 Joël Cuissinat
200 13 Joël Cuissinat
h2. Packaging
201 25 Joël Cuissinat
202 25 Joël Cuissinat
h3. Portage des projets vers 2.4 et packaging 2.4
203 13 Joël Cuissinat
204 25 Joël Cuissinat
cf. page dédiée :  http://dev-eole.ac-dijon.fr/projects/eole/wiki/EoleDebianPackaging24
205 25 Joël Cuissinat
206 25 Joël Cuissinat
h3. Nommage des paquets
207 25 Joël Cuissinat
208 25 Joël Cuissinat
_Premières conclusions issues de la discussion #3096_
209 25 Joël Cuissinat
210 25 Joël Cuissinat
* Paquets de base
211 25 Joël Cuissinat
** module non conteneur : *eole-server* (remplace eole-common)
212 25 Joël Cuissinat
** module conteneur : *eole-lxc-controller* (remplace eole-conteneur)
213 25 Joël Cuissinat
* Paquets de service
214 25 Joël Cuissinat
** dicos/templates : *eole-<service>* 
215 25 Joël Cuissinat
** dépendances : *eole-<service>-pkg* (au lieu de <service>-pkg)
216 27 Joël Cuissinat
* Paquets de module 
217 27 Joël Cuissinat
** méta-paquet de module : *eole-<nom_module>-module* (remplace <nom_module>-pkg)
218 1 Joël Cuissinat
** dicos/templates : *eole-<nom_module>* (remplace conf-<nom_module>)
219 27 Joël Cuissinat
** dépendances (pour modules non conteneur) : ?