Projet

Général

Profil

24 » Historique » Version 28

Version 27 (Joël Cuissinat, 26/02/2013 10:48) → Version 28/40 (Joël Cuissinat, 12/06/2013 18:07)

h1. Eole-2.4

{{>toc}}

h2. Dictionnaires

Les dictionnaires 2.3 sont théoriquement fonctionnels sur 2.4, merci de remonter les éventuels dysfonctionnements rencontrés !
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)

La version 2.4 apporte de nouvelles notions et notamment :
* *disabled* : pour des variables désactivées (cf. http://dev-eole.ac-dijon.fr/projects/tiramisu/wiki/RequiredEtDisabled)
* *frozen* : pour des variables non modifiables une fois initialisées (cf. #1328)
* *host*, *fstab*, *firewall* : gestion avancée des conteneurs (cf. #4666)



h2. Templates

Les templates 2.3 sont théoriquement fonctionnels sur 2.4.
Évidemment certains devront certainement être mis à niveau.

h3. Utilisation de "creole_client"

Les fonctionnalités de *creole_client* sont utilisables directement dans les templates
<pre>
%%creole_client.get_creole('activer_truc', 'non')
</pre>

h3. Utilisation d'attribut ".value"

L'attribut ".value" ne devrait plus être utilisé dans les templates 2.4.

h3. Utilisation d'attribut ".index"

L'attribut ".index" ne devrait plus être utilisé dans les templates 2.4.
La fonction "enumerate" peut être utilisée pour remplacer le code existant :
<pre>
%for %%idx, %%val in %%enumerate(%%variable)
La valeur %%val possède l'index %%idx
%end for
</pre>

h2. Fichier de configuration

Désormais, seul le fichier */etc/eole/config.eol* fait foi.

Il est automatiquement chargé par les programmes :
* gen_config
* instance
* reconfigure

h2. Nouveaux chemins

* */usr/lib/eole* : librairies EOLE (remplacent _FonctionsEoleNg_)
* */usr/share/eole/sbin* : scripts EOLE
* */usr/share/eole/diagnose* : scripts diagnose (plus de sous-répertoires)

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

h2. Mise à jour

cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/MajAuto24

h2. CreoleLint

cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/CreoleLint24

h3. Gestion des Locks

http://dev-eole.ac-dijon.fr/projects/creole/wiki/Lock24

h2. Programmation shell

h3. CreoleGet

<pre>
.ParseDico
echo $mavariable
</pre>
est remplacé par :
<pre>
echo $(CreoleGet mavariable)
</pre>

ATTENTION : à ce jour, pour accéder à une variable esclave, il faut connaître la variable maître :
<pre>
echo $(CreoleGet lamaster.lesclave)
</pre>

h3. CreoleRun

<pre>
./usr/share/eole/FonctionsEoleNg
RunCmd "ma -commande" conteneur
</pre>
est remplacé par :
<pre>
CreoleRun "ma -commande" conteneur
</pre>

h3. Interactions avec l'utilisateur

<pre>
. /usr/lib/eole/ihm.sh
EchoRouge "Attention"
Question_ouinon "Êtes-vous bien sûr de vouloir faire cela ?"
</pre>

h3. Tests système

<pre>
. /usr/lib/eole/diagnose.sh
TestService "mon SSH" localhost:22
</pre>

h2. Programmation python

h3. CreoleClient

h4. Obtenir la valeur d'une variable

<pre>
from creole import parsedico
from creole.eosfunc import load_container_var
dico = parsedico.parse_dico()
print dico['nom_machine']
conteneurs = load_container_var()
print conteneurs['container_path_annuaire']
</pre>

est remplacé par :

<pre>
from creole import client
dico = client.CreoleClient()
print dico.get_creole('nom_machine')
print dico.get_creole('container_path_annuaire')
</pre>

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 :

<pre>
if dico.get_creole('activer_service', 'non') == 'oui':
print "On est sûr que oui"
</pre>

h4. Obtenir le dictionnaire des variables

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).

<pre>
from creole.client import CreoleClient
dico = CreoleClient().get_creole()
ip_locale = dico['adresse_ip_eth0']
</pre>

h2. Migration

h3. eole-web

* */etc/apache2/sites-enable/scribe* est à supprimer (dans le conteneur)

h3. eole-common

* 01_network.xml :
# la valeur "aucun" de la variable *alias_gw_eth?* est remplacée par _None_
# :%s/adresse_ip_vlan_eth/vlan_ip_eth/g
# :%s/adresse_netmask_vlan_eth/vlan_netmask_eth/g
# :%s/adresse_network_vlan_eth/vlan_network_eth/g
# :%s/adresse_broadcast_vlan_eth/vlan_broadcast_eth/g
# :%s/adresse_gw_vlan_eth/vlan_gw_eth/g
# :%s/id_vlan_eth/vlan_id_eth/g
# la valeur "aucun" de la variable *vlan_gw_eth?* est remplacée par _None_

h3. eole-dhcp

* /etc/dhcp3 -> /etc/dhcp
* /etc/init.d/dhcp3-server -> /etc/init.d/isc-dhcp-server
* 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

h2. Packaging

h3. Portage des projets vers 2.4 et packaging 2.4

cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/eole/wiki/EoleDebianPackaging24

h3. Nommage des paquets

_Premières conclusions issues de la discussion #3096_

* Paquets de base
** module non conteneur : *eole-server* (remplace eole-common)
** module conteneur : *eole-lxc-controller* (remplace eole-conteneur)
* Paquets de service
** dicos/templates : *eole-<service>*
** dépendances : *eole-<service>-pkg* (au lieu de <service>-pkg)
* Paquets de module
** méta-paquet de module : *eole-<nom_module>-module* (remplace <nom_module>-pkg)
** dicos/templates : *eole-<nom_module>* (remplace conf-<nom_module>)
** dépendances (pour modules non conteneur) : ?