Projet

Général

Profil

24 » Historique » Version 34

Joël Cuissinat, 03/10/2013 17:11

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