diff --git a/modules_EOLE_envole/amon-sphynx.tex b/modules_EOLE_envole/amon-sphynx.tex index 05ba450..0979196 100644 --- a/modules_EOLE_envole/amon-sphynx.tex +++ b/modules_EOLE_envole/amon-sphynx.tex @@ -36,6 +36,10 @@ \include{amon/00-commun} \include{commun/03-configuration} \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/21-schedule.tex} \include{commun/22-pratique.tex} diff --git a/modules_EOLE_envole/commun/02-administration.tex b/modules_EOLE_envole/commun/02-administration.tex index 0a694a6..6e61378 100644 --- a/modules_EOLE_envole/commun/02-administration.tex +++ b/modules_EOLE_envole/commun/02-administration.tex @@ -37,46 +37,3 @@ \end{itemize} \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} diff --git a/modules_EOLE_envole/commun/02-administration2.tex b/modules_EOLE_envole/commun/02-administration2.tex new file mode 100644 index 0000000..1626230 --- /dev/null +++ b/modules_EOLE_envole/commun/02-administration2.tex @@ -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} + diff --git a/modules_EOLE_envole/commun/02-administration3.tex b/modules_EOLE_envole/commun/02-administration3.tex new file mode 100644 index 0000000..303b309 --- /dev/null +++ b/modules_EOLE_envole/commun/02-administration3.tex @@ -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} + + + diff --git a/modules_EOLE_envole/commun/02-conteneurs.tex b/modules_EOLE_envole/commun/02-conteneurs.tex new file mode 100644 index 0000000..6e96a9b --- /dev/null +++ b/modules_EOLE_envole/commun/02-conteneurs.tex @@ -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} diff --git a/modules_EOLE_envole/commun/02-instance-reconfigure.tex b/modules_EOLE_envole/commun/02-instance-reconfigure.tex new file mode 100644 index 0000000..9a104df --- /dev/null +++ b/modules_EOLE_envole/commun/02-instance-reconfigure.tex @@ -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} + + diff --git a/modules_EOLE_envole/documents/dotclear.iso b/modules_EOLE_envole/documents/dotclear.iso new file mode 100644 index 0000000..9db0618 Binary files /dev/null and b/modules_EOLE_envole/documents/dotclear.iso differ diff --git a/modules_EOLE_envole/documents/exercice4/supprimer_fichier.zephir b/modules_EOLE_envole/documents/exercice4/supprimer_fichier.zephir index 7aae1a4..a637934 100644 --- a/modules_EOLE_envole/documents/exercice4/supprimer_fichier.zephir +++ b/modules_EOLE_envole/documents/exercice4/supprimer_fichier.zephir @@ -1,18 +1,7 @@ #!/usr/bin/env python # -*- 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 creole import fonctionseole @@ -28,10 +17,10 @@ try: sudo_script('supprimer_fichier_sudo.zephir %s' % filename) except: fonctionseole.zephir("ERR" , "supprimer_fichier lancé sans argument", "PERSO") - exit(1) + sys.exit(1) if is_locked(['reconfigure']): fonctionseole.zephir("ERR" , "supprimer_fichier stoppé : reconfigure en cours", "PERSO") - exit(1) + sys.exit(1) else: fonctionseole.zephir("FIN" , "supprimer_fichier : OK", "PERSO") diff --git a/modules_EOLE_envole/envole/00-introduction.tex b/modules_EOLE_envole/envole/00-introduction.tex index 6fe4784..bb70196 100644 --- a/modules_EOLE_envole/envole/00-introduction.tex +++ b/modules_EOLE_envole/envole/00-introduction.tex @@ -10,148 +10,3 @@ \end{columns} \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:///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} diff --git a/modules_EOLE_envole/envole/01-ajout.tex b/modules_EOLE_envole/envole/01-ajout.tex new file mode 100644 index 0000000..5c98362 --- /dev/null +++ b/modules_EOLE_envole/envole/01-ajout.tex @@ -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:///admin/install/. + \end{itemize} +\end{frame} + + diff --git a/modules_EOLE_envole/envole/01-applications.tex b/modules_EOLE_envole/envole/02-applications.tex similarity index 100% rename from modules_EOLE_envole/envole/01-applications.tex rename to modules_EOLE_envole/envole/02-applications.tex diff --git a/modules_EOLE_envole/envole/02-posh.tex b/modules_EOLE_envole/envole/02-posh.tex new file mode 100644 index 0000000..b237118 --- /dev/null +++ b/modules_EOLE_envole/envole/02-posh.tex @@ -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} + diff --git a/modules_EOLE_envole/scribe-horus.tex b/modules_EOLE_envole/scribe-horus.tex index d9f078a..87a6364 100644 --- a/modules_EOLE_envole/scribe-horus.tex +++ b/modules_EOLE_envole/scribe-horus.tex @@ -37,6 +37,10 @@ \include{scribe/00-commun} \include{commun/03-configuration} \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/21-schedule.tex} \include{commun/22-pratique.tex} @@ -56,7 +60,9 @@ \include{commun/20-ead} \include{envole/00-introduction} -\include{envole/01-applications} +\include{envole/01-ajout} +\include{envole/02-applications} +\include{envole/02-posh} \end{document} diff --git a/modules_EOLE_envole/tronc-commun-1.tex b/modules_EOLE_envole/tronc-commun-1.tex index d72e6dc..5106ef2 100644 --- a/modules_EOLE_envole/tronc-commun-1.tex +++ b/modules_EOLE_envole/tronc-commun-1.tex @@ -36,6 +36,10 @@ \include{scribe/00-commun} \include{commun/03-configuration} \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/21-schedule.tex} \include{commun/22-pratique.tex} diff --git a/modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole.tex b/modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole.tex index a7a7b5e..ed4b23a 100644 --- a/modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole.tex +++ b/modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole.tex @@ -92,7 +92,7 @@ \item cacher des variables suivant des contraintes ... : \begin{itemize} \item valeur de la variable testé : ... ; - \item affecte nom : + \item affecte nom : \end{itemize} \item Lien entre variable : ... : \begin{itemize} @@ -126,12 +126,20 @@ \begin{itemize} \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 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 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{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} \frametitle{Pratique 1} \begin{itemize} diff --git a/modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole2.tex b/modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole2.tex new file mode 100644 index 0000000..355d91d --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole2.tex @@ -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} diff --git a/modules_EOLE_envole/tronc-commun-2/03-zephir_script.tex b/modules_EOLE_envole/tronc-commun-2/03-zephir_script.tex index 90bc3f6..f507b92 100644 --- a/modules_EOLE_envole/tronc-commun-2/03-zephir_script.tex +++ b/modules_EOLE_envole/tronc-commun-2/03-zephir_script.tex @@ -1,5 +1,5 @@ \begin{frame} - \frametitle{Exécuter un script} + \frametitle{Exécuter un script Zéphir} \begin{itemize} \item Exécution sur un serveur ou un groupe de serveurs ; \item les scripts doivent être dans /usr/share/zephir/scripts/ ; diff --git a/modules_EOLE_envole/tronc-commun-2/04-diagnose.tex b/modules_EOLE_envole/tronc-commun-2/04-diagnose.tex new file mode 100644 index 0000000..7f2d73b --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/04-diagnose.tex @@ -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} diff --git a/modules_EOLE_envole/tronc-commun-2/05-script-instance-reconfigure.tex b/modules_EOLE_envole/tronc-commun-2/05-script-instance-reconfigure.tex new file mode 100644 index 0000000..0140e59 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/05-script-instance-reconfigure.tex @@ -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} + diff --git a/modules_EOLE_envole/tronc-commun-2/06-montage-conteneur.tex b/modules_EOLE_envole/tronc-commun-2/06-montage-conteneur.tex new file mode 100644 index 0000000..76d1431 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/06-montage-conteneur.tex @@ -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} diff --git a/modules_EOLE_envole/tronc-commun-2/07-eole-firewall.tex b/modules_EOLE_envole/tronc-commun-2/07-eole-firewall.tex new file mode 100644 index 0000000..fd292f8 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/07-eole-firewall.tex @@ -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} diff --git a/modules_EOLE_envole/tronc-commun-2/08-schedule.tex b/modules_EOLE_envole/tronc-commun-2/08-schedule.tex new file mode 100644 index 0000000..a06e278 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/08-schedule.tex @@ -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} diff --git a/modules_EOLE_envole/tronc-commun-2/09-host.tex b/modules_EOLE_envole/tronc-commun-2/09-host.tex new file mode 100644 index 0000000..e3a3fd3 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/09-host.tex @@ -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} + diff --git a/modules_EOLE_envole/tronc-commun-2/11-mysql.tex b/modules_EOLE_envole/tronc-commun-2/11-mysql.tex new file mode 100644 index 0000000..d8a789a --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/11-mysql.tex @@ -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} + + diff --git a/modules_EOLE_envole/tronc-commun-2/12-interface.tex b/modules_EOLE_envole/tronc-commun-2/12-interface.tex new file mode 100644 index 0000000..aab7625 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/12-interface.tex @@ -0,0 +1,7 @@ +\begin{frame} + \frametitle{Interface supplémentaire} + \begin{itemize} + \item Pour les services sur le même réseau ; + \item balise : . + \end{itemize} +\end{frame} diff --git a/modules_EOLE_envole/tronc-commun-2/13-disknod.tex b/modules_EOLE_envole/tronc-commun-2/13-disknod.tex new file mode 100644 index 0000000..d8a5805 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/13-disknod.tex @@ -0,0 +1,6 @@ +\begin{frame} + \frametitle{Disknod} + \begin{itemize} + \item Accès direct au device (ACL, attribut étendu, ...). + \end{itemize} +\end{frame} diff --git a/modules_EOLE_envole/tronc-commun-2/14-sso.tex b/modules_EOLE_envole/tronc-commun-2/14-sso.tex new file mode 100644 index 0000000..4d97251 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/14-sso.tex @@ -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} + diff --git a/modules_EOLE_envole/tronc-commun-2/15-script-ead.tex b/modules_EOLE_envole/tronc-commun-2/15-script-ead.tex new file mode 100644 index 0000000..591c962 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/15-script-ead.tex @@ -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} diff --git a/modules_EOLE_envole/tronc-commun-2/16-sauvegarde.tex b/modules_EOLE_envole/tronc-commun-2/16-sauvegarde.tex new file mode 100644 index 0000000..0aacdf5 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/16-sauvegarde.tex @@ -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} + diff --git a/modules_EOLE_envole/tronc-commun-2/17-conteneur_groupe_conteneur.tex b/modules_EOLE_envole/tronc-commun-2/17-conteneur_groupe_conteneur.tex new file mode 100644 index 0000000..45e048d --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/17-conteneur_groupe_conteneur.tex @@ -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} diff --git a/modules_EOLE_envole/tronc-commun-2/18-cert.tex b/modules_EOLE_envole/tronc-commun-2/18-cert.tex new file mode 100644 index 0000000..3016097 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/18-cert.tex @@ -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} diff --git a/modules_EOLE_envole/tronc-commun-2/20-api.tex b/modules_EOLE_envole/tronc-commun-2/20-api.tex new file mode 100644 index 0000000..daeeb99 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/20-api.tex @@ -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} + diff --git a/modules_EOLE_envole/tronc-commun-2/30-api_bash.tex b/modules_EOLE_envole/tronc-commun-2/30-api_bash.tex new file mode 100644 index 0000000..47e3446 --- /dev/null +++ b/modules_EOLE_envole/tronc-commun-2/30-api_bash.tex @@ -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} +