Projet

Général

Profil

24 » Historique » Version 31

Joël Cuissinat, 02/09/2013 16:32

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