24 » Historique » Version 35
« Précédent -
Version 35/40
(diff) -
Suivant » -
Version actuelle
Emmanuel GARETTE, 27/11/2013 11:24
Eole-2.4¶
- Eole-2.4
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)
- 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)
Les types Creole¶
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/TypeCreole24
Les conteneurs¶
Ajouter une balise dans la partie <containers> et <files> des dictionnaires :
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/AjouterUneBaliseContainers24
Gestion du firewall¶
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/firewall24
Templates¶
Les templates 2.3 sont théoriquement fonctionnels sur 2.4.
Évidemment certains devront certainement être mis à niveau.
Utilisation de "creole_client"¶
Les fonctionnalités de creole_client sont utilisables directement dans les templates
%%creole_client.get_creole('activer_truc', 'non')
Cependant, en pratique, cet exemple peut avantageusement être remplacé en utilisant la fonction native %%getVar :
%%getVar('activer_truc', 'non')
Utilisation de l'attribut ".value"¶
L'attribut ".value" ne devrait plus être utilisé dans les templates 2.4.
Utilisation de l'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 :
%for %%idx, %%val in %%enumerate(%%variable) La valeur %%val possède l'index %%idx %end for
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
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
Mise à jour¶
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/MajAuto24
CreoleLint¶
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/CreoleLint24
Gestion des Locks¶
http://dev-eole.ac-dijon.fr/projects/creole/wiki/Lock24
Gestion des schedules (Mises à jour automatiques par exemple)¶
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/creole/wiki/Schedule24
Programmation shell¶
CreoleGet¶
.ParseDico echo $mavariable
est remplacé par :
echo $(CreoleGet mavariable)
ATTENTION : à ce jour, pour accéder à une variable esclave, il faut connaître la variable maître :
echo $(CreoleGet lamaster.lesclave)
Depuis #6075 (alpha2), si on n'est pas sûr que la variable existe ou qu'elle soit active, on peut utiliser :
echo $(CreoleGet mavariable valeurpardefaut)
CreoleRun¶
./usr/share/eole/FonctionsEoleNg RunCmd "ma -commande" conteneur
est remplacé par :
CreoleRun "ma -commande" conteneur
Interactions avec l'utilisateur¶
. /usr/lib/eole/ihm.sh EchoRouge "Attention" Question_ouinon "Êtes-vous bien sûr de vouloir faire cela ?"
Tests système¶
. /usr/lib/eole/diagnose.sh TestService "mon SSH" localhost:22
Programmation python¶
CreoleClient¶
Obtenir la valeur d'une variable¶
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']
est remplacé par :
from creole import client dico = client.CreoleClient() print dico.get_creole('nom_machine') print dico.get_creole('container_path_annuaire')
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 :
if dico.get_creole('activer_service', 'non') == 'oui': print "On est sûr que oui"
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).
from creole.client import CreoleClient dico = CreoleClient().get_creole() ip_locale = dico['adresse_ip_eth0']
Migration¶
eole-web¶
- /etc/apache2/sites-enable/scribe est à supprimer (dans le conteneur)
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
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
Packaging¶
Portage des projets vers 2.4 et packaging 2.4¶
cf. page dédiée : http://dev-eole.ac-dijon.fr/projects/eole/wiki/PrepareEOLE24
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) : ?