modification des formations pour nantes

This commit is contained in:
Emmanuel Garette 2013-03-09 21:16:31 +01:00
parent c9ff45b060
commit 4be04cd9e7
33 changed files with 825 additions and 206 deletions

View File

@ -36,6 +36,10 @@
\include{amon/00-commun} \include{amon/00-commun}
\include{commun/03-configuration} \include{commun/03-configuration}
\include{commun/02-administration} \include{commun/02-administration}
\include{commun/02-instance-reconfigure}
\include{commun/02-administration2}
\include{commun/02-conteneurs}
\include{commun/02-administration3}
\include{commun/20-firewall.tex} \include{commun/20-firewall.tex}
\include{commun/21-schedule.tex} \include{commun/21-schedule.tex}
\include{commun/22-pratique.tex} \include{commun/22-pratique.tex}

View File

@ -37,46 +37,3 @@
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}
\frametitle{Instance ou reconfigure}
\begin{itemize}
\item L'instance ne doit être lancée qu'une seule fois sur les modules ;
\item en cas de mise à jour, d'installation de paquet ou de changement de paramétrage : reconfigure.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Diagnostic}
\begin{itemize}
\item La commande "diagnose" permet de tester différents points du serveur ;
\item La commande "diagnose -L" propose un diagnostic étendu.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un reconfigure ;
\item lancer un diagnostic ;
\item lancer un diagnostic étendu.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Administration des conteneurs}
\begin{itemize}
\item Status des conteneurs : lxc-status ;
\item gestion d'un service : CreoleService nom\_service start|stop|status ;
\item entrer dans le conteneur : ssh nom\_conteneur.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Vérifier le status des conteneurs ;
\item redémarrer le service smbd ;
\item redémarrer le service ntp ;
\item entrer dans le conteneur fichier.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,17 @@
\begin{frame}
\frametitle{Diagnostic}
\begin{itemize}
\item La commande "diagnose" permet de tester différents points du serveur ;
\item La commande "diagnose -L" propose un diagnostic étendu.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un reconfigure ;
\item lancer un diagnostic ;
\item lancer un diagnostic étendu.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,12 @@
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Vérifier le status des conteneurs ;
\item redémarrer le service smbd ;
\item redémarrer le service ntp ;
\item entrer dans le conteneur fichier.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,8 @@
\begin{frame}
\frametitle{Administration des conteneurs}
\begin{itemize}
\item Status des conteneurs : lxc-status ;
\item gestion d'un service : CreoleService nom\_service start|stop|status ;
\item entrer dans le conteneur : ssh nom\_conteneur.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,9 @@
\begin{frame}
\frametitle{Instance ou reconfigure}
\begin{itemize}
\item L'instance ne doit être lancée qu'une seule fois sur les modules ;
\item en cas de mise à jour, d'installation de paquet ou de changement de paramétrage : reconfigure.
\end{itemize}
\end{frame}

Binary file not shown.

View File

@ -1,18 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
###########################################################################
# Eole NG - 2007
# Copyright Pole de Competence Eole (Ministere Education - Academie Dijon)
# Licence CeCill cf /root/LicenceEole.txt
# eole@ac-dijon.fr
#
# test_perso.zephir
#
# exemple de script personnalisé pour le client zephir
#
###########################################################################
import os, sys import sys
from zephir.lib_zephir import * from zephir.lib_zephir import *
from creole import fonctionseole from creole import fonctionseole
@ -28,10 +17,10 @@ try:
sudo_script('supprimer_fichier_sudo.zephir %s' % filename) sudo_script('supprimer_fichier_sudo.zephir %s' % filename)
except: except:
fonctionseole.zephir("ERR" , "supprimer_fichier lancé sans argument", "PERSO") fonctionseole.zephir("ERR" , "supprimer_fichier lancé sans argument", "PERSO")
exit(1) sys.exit(1)
if is_locked(['reconfigure']): if is_locked(['reconfigure']):
fonctionseole.zephir("ERR" , "supprimer_fichier stoppé : reconfigure en cours", "PERSO") fonctionseole.zephir("ERR" , "supprimer_fichier stoppé : reconfigure en cours", "PERSO")
exit(1) sys.exit(1)
else: else:
fonctionseole.zephir("FIN" , "supprimer_fichier : OK", "PERSO") fonctionseole.zephir("FIN" , "supprimer_fichier : OK", "PERSO")

View File

@ -10,148 +10,3 @@
\end{columns} \end{columns}
\end{frame} \end{frame}
\begin{frame}
\frametitle{Ajouter un service web sur Scribe}
\begin{itemize}
\item Mise en place des fichiers :
\begin{itemize}
\item décompresser les fichiers dans /var/www/html/,
\item modifier l'utilisateur en www-data seulement pour les répertoires nécessaires ;
\end{itemize}
\item configuration Apache :
\begin{itemize}
\item dans l'onglet apache en mode expert,
\item ajouter le chemin complet et l'alias,
\end{itemize}
\item configuration Mysql :
\begin{itemize}
\item création d'un utilisateur distinct par application,
\item utiliser le script /usr/share/eole/mysql\_add.py ;
\end{itemize}
\item configuration du logiciel.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Installer Dotclear ;
\item accès en écrire pour les répertoires cache/ et public/ ;
\item http://<ip>/admin/install/.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Envole}
\begin{itemize}
\item Envole : système d'intégration de services web ;
\item personnalisable par l'utilisateur ;
\item historique :
\begin{itemize}
\item 1 : cartable en ligne de Créteil,
\item 1.5 : mis à disposition de tous,
\item 2.0 : projet mutualisé entre Créteil et Dijon : modulaire ;
\end{itemize}
\item authentification grâce au SSO ;
\item besoin d'un nom de domaine.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Réseau social}
\begin{itemize}
\item Boîte à outil ;
\item marques-pages ;
\item intégrer les applications ;
\item gestion des groupe ;
\item suivi d'activité ;
\item partage d'informations ;
\item désactivable dans Envole.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Réseau social}
\begin{itemize}
\item groupe : actualité au groupe ;
\item réseau : utilisateur ;
\item alert : inscription aux réseaux | commentaire
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Profil}
\begin{itemize}
\item Visible par tout le monde ;
\item photo ;
\item tag ;
\item description.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Contributions}
\begin{itemize}
\item Ensemble des publications d'un utilisateur ;
\item status : visible par tout le monde;
\item articles.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Articles}
\begin{itemize}
\item Ecrire un article
\item Titre (toujours visible)
\item Tags (pour la recherche)
\item ACL : Tout le monde, Mon réseau, Juste moi
\item boîte à outils
\item Contenu de l'article
\item commentaire :
\begin{itemize}
\item visible par son réseau
\item peut supprimer ces commentaires
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Synchronisation des groupes}
\begin{itemize}
\item Depuis l'EAD (si Envole est activé) ;
\item Envole / Synchronisation ;
\item création d'une sélection de groupe (pas forcement tous).
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Widgets}
\begin{itemize}
\item Partage de widget ;
\item création :
\begin{itemize}
\item Widget / Mes widgets / Créer un widget,
\item suivre la procédure.
\item nécessite validation de l'administrateur
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Gestion des profils}
\begin{itemize}
\item Création des profils pour les utilisateurs ;
\item gestion des onglets par défaut ;
\item gestion des icônes de bureau.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Charte}
\begin{itemize}
\item Activation du plugin ;
\item création dans l'onget "charte informatique";
\item liste validé ;
\item peut utiliser sans valider.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,32 @@
\begin{frame}
\frametitle{Ajouter un service web sur Scribe}
\begin{itemize}
\item Mise en place des fichiers :
\begin{itemize}
\item décompresser les fichiers dans /var/www/html/,
\item modifier l'utilisateur en www-data seulement pour les répertoires nécessaires ;
\end{itemize}
\item configuration Apache :
\begin{itemize}
\item dans l'onglet apache en mode expert,
\item ajouter le chemin complet et l'alias,
\end{itemize}
\item configuration Mysql :
\begin{itemize}
\item création d'un utilisateur distinct par application,
\item utiliser le script /usr/share/eole/mysql\_add.py ;
\end{itemize}
\item configuration du logiciel.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Installer Dotclear ;
\item accès en écrire pour les répertoires cache/ et public/ ;
\item http://<ip>/admin/install/.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,115 @@
\begin{frame}
\frametitle{Envole}
\begin{itemize}
\item Envole : système d'intégration de services web ;
\item personnalisable par l'utilisateur ;
\item historique :
\begin{itemize}
\item 1 : cartable en ligne de Créteil,
\item 1.5 : mis à disposition de tous,
\item 2.0 : projet mutualisé entre Créteil et Dijon : modulaire ;
\end{itemize}
\item authentification grâce au SSO ;
\item besoin d'un nom de domaine.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Réseau social}
\begin{itemize}
\item Boîte à outil ;
\item marques-pages ;
\item intégrer les applications ;
\item gestion des groupe ;
\item suivi d'activité ;
\item partage d'informations ;
\item désactivable dans Envole.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Réseau social}
\begin{itemize}
\item groupe : actualité au groupe ;
\item réseau : utilisateur ;
\item alert : inscription aux réseaux | commentaire
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Profil}
\begin{itemize}
\item Visible par tout le monde ;
\item photo ;
\item tag ;
\item description.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Contributions}
\begin{itemize}
\item Ensemble des publications d'un utilisateur ;
\item status : visible par tout le monde;
\item articles.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Articles}
\begin{itemize}
\item Ecrire un article
\item Titre (toujours visible)
\item Tags (pour la recherche)
\item ACL : Tout le monde, Mon réseau, Juste moi
\item boîte à outils
\item Contenu de l'article
\item commentaire :
\begin{itemize}
\item visible par son réseau
\item peut supprimer ces commentaires
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Synchronisation des groupes}
\begin{itemize}
\item Depuis l'EAD (si Envole est activé) ;
\item Envole / Synchronisation ;
\item création d'une sélection de groupe (pas forcement tous).
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Widgets}
\begin{itemize}
\item Partage de widget ;
\item création :
\begin{itemize}
\item Widget / Mes widgets / Créer un widget,
\item suivre la procédure.
\item nécessite validation de l'administrateur
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Gestion des profils}
\begin{itemize}
\item Création des profils pour les utilisateurs ;
\item gestion des onglets par défaut ;
\item gestion des icônes de bureau.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Charte}
\begin{itemize}
\item Activation du plugin ;
\item création dans l'onget "charte informatique";
\item liste validé ;
\item peut utiliser sans valider.
\end{itemize}
\end{frame}

View File

@ -37,6 +37,10 @@
\include{scribe/00-commun} \include{scribe/00-commun}
\include{commun/03-configuration} \include{commun/03-configuration}
\include{commun/02-administration} \include{commun/02-administration}
\include{commun/02-instance-reconfigure}
\include{commun/02-administration2}
\include{commun/02-conteneurs}
\include{commun/02-administration3}
\include{commun/20-firewall.tex} \include{commun/20-firewall.tex}
\include{commun/21-schedule.tex} \include{commun/21-schedule.tex}
\include{commun/22-pratique.tex} \include{commun/22-pratique.tex}
@ -56,7 +60,9 @@
\include{commun/20-ead} \include{commun/20-ead}
\include{envole/00-introduction} \include{envole/00-introduction}
\include{envole/01-applications} \include{envole/01-ajout}
\include{envole/02-applications}
\include{envole/02-posh}
\end{document} \end{document}

View File

@ -36,6 +36,10 @@
\include{scribe/00-commun} \include{scribe/00-commun}
\include{commun/03-configuration} \include{commun/03-configuration}
\include{commun/02-administration} \include{commun/02-administration}
\include{commun/02-instance-reconfigure}
\include{commun/02-administration2}
\include{commun/02-conteneurs}
\include{commun/02-administration3}
\include{commun/20-firewall.tex} \include{commun/20-firewall.tex}
\include{commun/21-schedule.tex} \include{commun/21-schedule.tex}
\include{commun/22-pratique.tex} \include{commun/22-pratique.tex}

View File

@ -92,7 +92,7 @@
\item cacher des variables suivant des contraintes <condition name='hidden\_if\_in|hidden\_if\_not\_in' source='var'>...</condition> : \item cacher des variables suivant des contraintes <condition name='hidden\_if\_in|hidden\_if\_not\_in' source='var'>...</condition> :
\begin{itemize} \begin{itemize}
\item valeur de la variable testé : <param>...</param> ; \item valeur de la variable testé : <param>...</param> ;
\item affecte <target type='family|filelist'>nom</target> : \item affecte <target type='family|filelist|servicelist|...'>nom</target> :
\end{itemize} \end{itemize}
\item Lien entre variable : <group master='var'>...</group> : \item Lien entre variable : <group master='var'>...</group> :
\begin{itemize} \begin{itemize}
@ -126,12 +126,20 @@
\begin{itemize} \begin{itemize}
\item Variable Creole préfixé par \begin{semiverbatim}\%\%\end{semiverbatim} \item Variable Creole préfixé par \begin{semiverbatim}\%\%\end{semiverbatim}
\item Test : \begin{semiverbatim}\%if EXPRESSION code if \%else code else \%end if\end{semiverbatim} \item Test : \begin{semiverbatim}\%if EXPRESSION code if \%else code else \%end if\end{semiverbatim}
\item Test existance : \begin{semiverbatim}\%if \%\%is\_defined('variable') code if \%end if\end{semiverbatim}
\item Boucle : \begin{semiverbatim}\%for \%\%i in EXPRESSION hello \%\%i \%end for\end{semiverbatim} \item Boucle : \begin{semiverbatim}\%for \%\%i in EXPRESSION hello \%\%i \%end for\end{semiverbatim}
\item Boucle pour variable multi évolué avec esclave : \begin{semiverbatim}\%for \%\%var in \%\%variablemaitre\end{semiverbatim}\begin{semiverbatim}\%\%var, \%\%var.esclave1, \%\%var.esclave2\end{semiverbatim}\begin{semiverbatim}\%end if\end{semiverbatim} \item Boucle pour variable multi évolué avec esclave : \begin{semiverbatim}\%for \%\%var in \%\%variablemaitre\end{semiverbatim}\begin{semiverbatim}\%\%var, \%\%var.esclave1, \%\%var.esclave2\end{semiverbatim}\begin{semiverbatim}\%end if\end{semiverbatim}
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}
\frametitle{Langague de template Creole}
\begin{itemize}
\item Test existance : \begin{semiverbatim}\%if \%\%is\_defined('variable') code if \%end if\end{semiverbatim}
\item valeur vide : \begin{semiverbatim}\%if \%\%is\_empty(\%\%variable) code if \%end if\end{semiverbatim}
\item nom de variable dans une variable : \begin{semiverbatim}\%set \%\%var='adresse\_ip\_eth0' \%\%getVar(\%\%var)\end{semiverbatim}
\end{itemize}
\end{frame}
\begin{frame} \begin{frame}
\frametitle{Pratique 1} \frametitle{Pratique 1}
\begin{itemize} \begin{itemize}

View File

@ -0,0 +1,27 @@
\begin{frame}
\frametitle{Redéfinition}
\begin{itemize}
\item Permet de redéfinir des attributs et caractéristiques :
\begin{itemize}
\item service
\item variable
\end{itemize}
\item remove\_check : supprimer les "check" déjà définit de la variable.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Existance d'un variable}
\begin{itemize}
\item Créé la variable si elle n'existe pas encore.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Caché multi-condition}
\begin{itemize}
\item Créé une variable "test\_xxxx" caché ;
\item ajouter une "auto" avec calcul "calc\_multi\_condition" ;
\item faire une condition "hidden\_if\_in" sur la variable.
\end{itemize}
\end{frame}

View File

@ -1,5 +1,5 @@
\begin{frame} \begin{frame}
\frametitle{Exécuter un script} \frametitle{Exécuter un script Zéphir}
\begin{itemize} \begin{itemize}
\item Exécution sur un serveur ou un groupe de serveurs ; \item Exécution sur un serveur ou un groupe de serveurs ;
\item les scripts doivent être dans /usr/share/zephir/scripts/ ; \item les scripts doivent être dans /usr/share/zephir/scripts/ ;

View File

@ -0,0 +1,40 @@
\begin{frame}
\frametitle{Création d'un script diagnose}
\begin{itemize}
\item Diagnose sert à tester le service d'un serveur ;
\item si possible, doit tester le bon fonctionnement de l'application ;
\item script bash ;
\item script commun : /usr/share/eole/diagnose/eole ;
\item script par service : /usr/share/eole/diagnose/module.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Fonction diagnose standard}
\begin{itemize}
\item Certains nombres de fonction dans /usr/share/eole/FonctionEoleNg :
\begin{itemize}
\item TestIP2 : test une IP via paquet ICMP ECHO\_REQUEST ;
\item TestARP : requète ARP (évite les problèmes de firewall) ;
\item TestService : test une connexion TCP ;
\item TestUDP : vérifie l'écoute d'un service UDP ;
\item TestPid : test de la présence d'un processus via pidof ;
\item TestHTTPPage : test une page web particulière ;
\end{itemize}
\item fonctions d'affichage :
\begin{itemize}
\item EchoGras : titre de section ;
\item printf ". \%\${len\_pf}s => " "Test a afficher" ;
\item EchoVert|EchoRouge : succès ou échec ;
\item Inactif : si un service est inactif volontairement ;
\item NoConfig : service non configuré.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un fichier diagnose pour IRCD
\end{itemize}
\end{frame}

View File

@ -0,0 +1,42 @@
\begin{frame}
\frametitle{Script instance ou reconfigure}
\begin{itemize}
\item Utilité :
\begin{itemize}
\item tout ce qui n'est pas possible via les dictionnaires,
\item création de répertoire/changement de droit,
\item copie de fichier, suppression de fichier, déplacement de fichier,
\item création de base,
\item ... ;
\end{itemize}
\item principe :
\begin{itemize}
\item même script exécuter à l'instance et reconfigure,
\item ne doit pas poser de question au reconfigure !
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Script instance ou reconfigure}
\begin{itemize}
\item emplacement des scripts :
\begin{itemize}
\item /usr/share/eole/pretemplate/ : avant la templatisation,
\item /usr/share/eole/posttemplate/ : entre la templétisation et redémarrage des services,
\item /usr/share/eole/postservice/ : après redémarrage des services ;
\end{itemize}
\item script bash ou python ;
\item premier argument : instance|reconfigure
\item doivent toujours retourner le code de sortie "0" sauf si problème.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un script qui créé le répertoire /tmp/repertoire ;
\item si le répertoire existe, proposer de le supprimer à l'instance.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,10 @@
\begin{frame}
\frametitle{Montage des conteneurs}
\begin{itemize}
\item Mode conteneur doit être plus proche du mode non conteneur ;
\item répertoire où donnée utilisateur ;
\item dans le répertoire /usr/share/eole/lxc/fstab/ ;
\item fichier avec le nom du conteneur ou groupe de conteneur ;
\item /home {{ROOTFS}}/home none bind 0 0
\end{itemize}
\end{frame}

View File

@ -0,0 +1,29 @@
\begin{frame}
\frametitle{Règle eole-firewall}
\begin{itemize}
\item Nom du fichier : 00\_extremite1\_commentaire.fw
\item allow\_src() : extermite1 est la destination
\item allow\_dst() : extermite1 est la source
\item paramètres :
\begin{itemize}
\item interface : interface du maître
\item container\_interface : interface dans le conteneur
\item ip|container : extermite2
\item port :
\begin{itemize}
\item num
\item num:num
\end{itemize}
\item tcpwrapper
\item protocol : udp|icmp
\item si icmp : typ='echo-request'
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire une règle de firewall pour autoriser l'accès à IRCD.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,19 @@
\begin{frame}
\frametitle{Schedule}
\begin{itemize}
\item Script principalement bash ;
\item . /usr/share/eole/schedule/config.sh ;
\item DESC="..." ;
\item code retour 0 ;
\item executable ;
\item pas d'extension.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un Schedule qui stop IRCD avant la sauvegarde ;
\item faire un script qui démarre IRCD après la sauvegarde.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,10 @@
\begin{frame}
\frametitle{Résolution de nom local}
\begin{itemize}
\item /usr/share/eole/lxc/hosts ;
\item nom du fichier correspond au nom du conteneur ;
\item fichier template ;
\item adresse\_ip nom\_de\_domaine.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,39 @@
\begin{frame}
\frametitle{Gestion des bases de données}
\begin{itemize}
\item Import initial de la base ;
\item gère les mises à jour (changement d'une option) ;
\item /usr/share/eole/applications/{gen|updates}/xxx.py :
\begin{itemize}
\item conf\_dict = dict(filenames=[...], {test|test\_active}=test)
\item emplacement des fichiers SQL : /usr/share/eole/mysql/xxx/{gen|updates}/xxxx.sql
\end{itemize}
\item eolesql.db\_test
\item importation et modification de la base :
\begin{itemize}
\item db\_exists(database)
\item test\_var(variable, value='oui')
\item table\_exists(database, table)
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Gestion des bases de donnée}
\begin{itemize}
\item Change les mots de passe dans les fichiers de configuration ;
\item /usr/share/eole/applications/passwords/xxx.ini :
\begin{itemize}
\item [xxx] : section
\item username : nom d'utilisateur mysql à modifier
\item template : clef à modifier (ex 'define("pass", "'
\item end\_template : fin de la clef = '");'
\item filename : chemin du fichier à modifier
\item owner : utilisateur et groupe du fichier
\item chmod : droit du fichier
\item {pre|post}\_cmd : script exécuter avant|après la modification (NEWPASS est remplacé par le mot de passe).
\end{itemize}
\end{itemize}
\end{frame}

View File

@ -0,0 +1,7 @@
\begin{frame}
\frametitle{Interface supplémentaire}
\begin{itemize}
\item Pour les services sur le même réseau ;
\item balise : <interface interfacelist='...' linkto='...' ip='\%\%...' mask='\%\%...' bcast='\%\%...'/>.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,6 @@
\begin{frame}
\frametitle{Disknod}
\begin{itemize}
\item Accès direct au device (ACL, attribut étendu, ...).
\end{itemize}
\end{frame}

View File

@ -0,0 +1,9 @@
\begin{frame}
\frametitle{Attribut SSO}
\begin{itemize}
\item étendre les données disponibles en définissant des attributs calculés
\item créer des filtres définissant quels attributs seront disponibles ;
\item décrire des URL afin de différencier les applications et leur appliquer un filtre
\end{itemize}
\end{frame}

View File

@ -0,0 +1,19 @@
\begin{frame}
\frametitle{Console EAD}
\begin{itemize}
\item Permet de rendre des scripts accessible dans l'EAD ;
\item pas d'option possible ;
\item dans l'EAD : Système/Console ;
\item /usr/share/ead2/backend/actions/cmd\_xxx.py : code de la commande ;
\item /usr/share/ead2/backend/config/cmds/xxx.cmd : enregistrement de la commande ;
\item /usr/share/ead2/backend/config/actions/actions\_xxx.cfg : enregistrement de l'action ;
\item /usr/share/ead2/backend/config/perms/perm\_xxx.ini : association de rôle.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item Faire un script avec "ls /tmp".
\end{itemize}
\end{frame}

View File

@ -0,0 +1,8 @@
\begin{frame}
\frametitle{Fichier/répertoire dans la sauvegarde}
\begin{itemize}
\item Prévoir les extractions ;
\item fichier/répertoire spécifié dans /etc/bacula/baculafichiers.d/.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,9 @@
\begin{frame}
\frametitle{Groupe de conteneur}
\begin{itemize}
\item Différents conteneurs peuvent être rassemblés ;
\item le même path ;
\item le même IP ;
\item le même nom.
\end{itemize}
\end{frame}

View File

@ -0,0 +1,15 @@
\begin{frame}
\frametitle{Génération certificat}
\begin{itemize}
\item Fichier dans /usr/share/eole/certs/ ;
\item fichier avec extension gen\_cert ;
\item fonction gen\_certif() :
\begin{itemize}
\item certfile : nom du fichier crt ;
\item keyfile : nom de la clef ;
\item {cert|key}\_user, {cert|key}\_grp, {cert|key}\_chmod ;
\item regen=regen ;
\item container : nom du conteneur.
\end{itemize}
\end{itemize}
\end{frame}

View File

@ -0,0 +1,179 @@
\section{API EOLE python}
\begin{frame}{Plan}
\small \tableofcontents[currentsection, hideothersubsections]
\end{frame}
\begin{frame}
\frametitle{Ecrire en couleur}
\begin{itemize}
\item pyeole.ansiprint
\item print\_red
\item print\_green
\item print\_orange
\item ...
\item print\_title
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Question}
\begin{itemize}
\item pyeole.ihm
\item question\_ouinon
\begin{itemize}
\item question : contenu de la question de type oui/non
\item default : valeur par défaut (défaut non)
\item level : info|warn|err (défaut info)
\item return oui ou non
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item print\_orange('couleur orange')
\item print\_title('le titre')
\item a=question\_ouinon('voulez vous vraiment faire cette action')
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Gestion des services}
\begin{itemize}
\item pyeole.service
\item service\_out|service\_code
\begin{itemize}
\item service : nom du service
\item action : start|stop|restart|status
\item container : nom du conteneur (défaut root)
\end{itemize}
\item service\_code\_no\_container : démarrage d'un service dans tous les conteneurs avec le service
\begin{itemize}
\item service : nom du service
\item action : start|stop|restart|status
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item a=service\_out('ntp', 'stop')
\item a=service\_code('smbd', 'stop', 'fichier')
\item a=service\_code\_no\_container('apache2', 'restart')
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Execution de commande}
\begin{itemize}
\item pyeole.process
\item system\_code : exécution de commande, stdout et stderr dans la console
\item system\_out : rien dans la console
\begin{itemize}
\item cmd : commande (list) ;
\item stdin : valeur de STDIN ;
\item container : nom du conteneur (root par défaut) ;
\item env : variable d'environnement ;
\item *context : ssh ou chroot (True par défaut) ;
\item *pty : créé un pseudo terminal (False par défaut).
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Execution de commande}
\begin{itemize}
\item pyeole.process
\item is\_installed
\begin{itemize}
\item package
\item container : (défaut root)
\item *context : (défaut True)
\end{itemize}
\item tcpcheck
\begin{itemize}
\item ip\_address : adresse IP
\item port : port a tester
\item timeout : temps d'attente maximum (défaut 1)
\end{itemize}
\item test\_conteneur : test si un conteneur est démarré
\begin{itemize}
\item container : nom du conteneur
\item *ip\_address : adresse IP du conteneur (défaut None)
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item a=system\_code(['echo', 'mot'])
\item a=system\_out(['echo', 'mot'])
\item stdin : a=system\_code('cat', stdin="mot")
\item env : a=system\_code('env', env={'mot': 'mot'})
\item container : a=system\_code(['ls', '/etc/samba/'], container='fichier')
\item installé : is\_installed('samba-common')
\item non installé : is\_installed('samba')
\item conteneur : is\_installed('samba', container='fichier')
\item test service : tcpcheck('192.0.2.52', '139')
\item test\_conteneur('fichier')
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Gestion des locks}
\begin{itemize}
\item creole.eolelock
\item add\_lock : ajout d'un lock
\item del\_lock : supprimer un lock
\item check\_lock : vérifier la présence d'un fichier lock
\begin{itemize}
\item lock\_name : nom du fichier lock
\end{itemize}
\item check\_all\_locks : vérifier la présence des locks systèmes
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item add\_lock('test')
\item check\_lock('test')
\item del\_lock('test')
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Valeur du dictionnaire}
\begin{itemize}
\item creole.parsedico
\item parse\_dico() : chargement des dictionnaires
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item conf\_eole = parse\_dico()
\item print conf\_eole['adresse\_ip\_eth0']
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Valeur du dictionnaire conteneur}
\begin{itemize}
\item creole.eosfunc
\item load\_conteneur\_var() : chargement des configurations conteneurs
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item container\_var = load\_container\_var()
\item print container\_var['container\_ip\_fichier']
\end{itemize}
\end{frame}

View File

@ -0,0 +1,135 @@
\section{API EOLE bash}
\begin{frame}{Plan}
\small \tableofcontents[currentsection, hideothersubsections]
\end{frame}
\begin{frame}
\frametitle{Ecrire en couleur}
\begin{itemize}
\item . /usr/share/eole/FonctionsEoleNg
\item EchoRouge
\item EchoVert
\item EchoOrange
\item ...
\item EchoGras
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Question}
\begin{itemize}
\item Question\_ouinon
\item \$1 : contenu de la question de type oui/non
\item \$2 : valeur par défaut (défaut non)
\item \$3 : info|warn|err (défaut info)
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item EchoOrange 'couleur orange'
\item EchoGras 'le titre'
\item Question\_ouinon 'voulez vous vraiment faire cette action'
\item echo \$?
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Gestion des services}
\begin{itemize}
\item CreoleService
\begin{itemize}
\item \$1 : nom du service
\item \$2 : start|stop|restart|status
\item -c conteneur : pour un unique conteneur
\end{itemize}
\item redémarrer tous les services : StartAll
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item CreoleService ntp stop
\item CreoleService smbd stop
\item CreoleService apache2 restart
\item CreoleService apache2 restart -c web
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Execution de commande}
\begin{itemize}
\item RunCmd
\item \$1 : commande
\item \$2 : conteneur
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Execution de commande}
\begin{itemize}
\item tcpcheck
\item \$1 : timeout
\item \$2 : ip:port
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item RunCmd "echo mot" fichier
\item test service : tcpcheck 2 192.0.2.52:80
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Gestion des locks}
\begin{itemize}
\item AddLock : ajout d'un lock
\item DelLock : suppression d'un lock
\item CheckAllLocks : vérifie la présence de lock système
\begin{itemize}
\item \$1 : nom du lock
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item AddLock test
\item DelLock test
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Valeur du dictionnaire}
\begin{itemize}
\item . ParseDico
\item dans l'environnement de l'utilisateur
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item echo \$adresse\_ip\_eth0
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Valeur du dictionnaire conteneur}
\begin{itemize}
\item . /etc/eole/containers.conf
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Pratique}
\begin{itemize}
\item echo \$container\_ip\_fichier
\end{itemize}
\end{frame}