%%presentation \documentclass{beamer} \usepackage{beamerthemetree} %%impression %\documentclass[a4paper,9pt]{extarticle} %\usepackage{beamerarticle} %% % class FR \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[frenchb]{babel} % image \usepackage{graphicx} \usecolortheme{crane} \beamertemplatetransparentcovered % le logo %\logo{\includegraphics[height=1cm]{ban.png}} \title{Formation EOLE} \subtitle{Tronc Commun} \author{GARETTE Emmanuel} \institute{Cadoles} \date{\today} \begin{document} \frame{\titlepage} % == INTRO == %\part{la partie} \section{Introduction} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{EOLE} \begin{itemize} \item EOLE : Ensemble Ouvert Libre et Evolutif ; \item projet national de serveur d'établissement scolaires et académiques ; \item depuis 2000 ; \item basé sur Ubuntu depuis 2007 sous forme de module ; \item objectifs : \begin{itemize} \item utilisation de logiciels libres, \item modulaire (évolutif, ouvert, adaptable), \item facile a mettre en oeuvre et a déployer, \item administrable à distance. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Panorama des modules} \begin{itemize} \item Zéphir, gestion du parc des serveurs EOLE : \begin{itemize} \item déployer et gérer un parc de serveurs, \item gestion de la configuration des serveurs, \item la surveillance et le lancement d'action à distance ; \end{itemize} \item Sentinelle, outils graphiques de supervision des serveurs (couplé à Zéphir) : \begin{itemize} \item récupération des statistiques, \item affichage sélectif (avec filtre, ...), \item lancement d'actions ; \end{itemize} \item Amon, la passerelle pare-feu : \begin{itemize} \item partage des sous-réseaux et connexion à internet (pare-feu), \item authentifications des utilisateurs, \item réseau virtuel privé, \item cache web, \item reverse proxy web ; \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Panorama des modules} \begin{itemize} \item Sphynx, concentrateur pour réseau privé virtuel : \begin{itemize} \item relier en réseau vos serveurs (RVP), \item possibilité de haute dispo ; \end{itemize} \item AmonEcole, solution virtuelle basé sur Amon : \begin{itemize} \item virtualisation sur la base de conteneur OpenVZ, \item Amon en serveur maître, \item conteneur possible : Scribe, Horus, Eclair ou EoleBase ; \end{itemize} \item EoleVZ, solution de virtualisation EOLE : \begin{itemize} \item virtualisation sur la base de conteneur OpenVZ, \item conteneur possible : Scribe, Horus, Eclair ou EoleBase ; \end{itemize} \item Horus, serveur administratif et Scribe, serveur pédagogique : \begin{itemize} \item partage de fichiers, \item partage d'imprimantes, \item gestion de comptes utilisateurs et de groupes, \item gestion des accès utilisateurs, \item gestion des postes clients ; \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Panorama des modules} \begin{itemize} \item Eclair, serveur de client léger sous GNU/Linux : \begin{itemize} \item serveur de clients légers, \item compatible partage de fichier Scribe et Horus, \item début de support de ESU, \item gestion de profil GNOME ; \end{itemize} \item clientscribe et clienthorus, client GNU/Linux ; \begin{itemize} \item reprend la partie "cliente" de Eclair, \end{itemize} \item ZéphirLog, concentrateur de fichiers journaux : \begin{itemize} \item remontée des logs, \item stockage des logs, \item archivage des logs ; \end{itemize} \item PreludeManager, console de visualisation de l'IDS Prélude : \begin{itemize} \item suivi détailé de la navigation web, \item detection d'intrusions, \item interface analyse des logs, \item statistiques ; \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Panorama des modules} \begin{itemize} \item Seshat, le relais de messagerie pour les domaine intra-académiques des Scribe : \begin{itemize} \item relai de messagerie académique. \end{itemize} \end{itemize} \end{frame} \section{Les quatre phases} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{La phase d'installation} \begin{itemize} \item Pour installer un module, il suffit de : \begin{itemize} \item démarrer sur le CD-ROM téléchargé sur le site d'EOLE, \item sélectionner le module à installer parmi ceux proposés, \item valider ; \end{itemize} \item cas particuliers : Eolebase ou la présence de deux disques ; \item à la fin de l'installation, cliquer sur "continuer", le système redémarre automatiquement ; \item vous pourrez ouvrir une session avec l'utilisateur "root" et le mot de passe par défaut "eole". \end{itemize} \end{frame} \begin{frame} \frametitle{La phase de configuration} \begin{itemize} \item Il faut une bonne connaissance du réseau ; \item en mode autonome : \begin{itemize} \item lancer la commande gen\_config, \item configurer le serveur, \item sauvegarder le fichier zephir.eol ; \end{itemize} \item en mode Zéphir : \begin{itemize} \item configuration dans l'application Zéphir : https://:8070/ ou via gen\_config, \item enregistrement au Zéphir, \item descente ou monté de la configuration. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{La phase d'instanciation} \begin{itemize} \item Lancer la commande "instance .eol" ; \item renseigner les mots de passe ; \item enregistrement de la base matériel ; \item mise à jour ; \item éventuellement redémarrage. \end{itemize} \end{frame} \begin{frame} \frametitle{Les mots de passe} \begin{itemize} \item Au premier lancement de l'instanciation, il est nécessaire de modifier les mots de passe : \begin{itemize} \item root ; \item l'utilisateur local à droit restreint (scribe, horus, amonecole, ...) ; \item sur amon, en cas d'utilisation d'un réseau pédagogique et au réseau administratif, un second administrateur (amon2) permet d'administrer le réseau pédagogique ; \item admin sur Scribe et Horus ; \item admin\_zephir sur Zéphir. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Les mots de passe} \begin{itemize} \item Par défaut, le système regarde la pertinence des mots de passe. Pour cela, il utilise un système de "classe de caractères" : \begin{itemize} \item les lettres en minuscule, \item les lettres en majuscule, \item les chiffres, \item les caractères spéciaux (Ex : \$*ù\%£, ; : !§/. ?) ; \end{itemize} \item il faut utiliser différentes classes de caractères ; \item par défaut, voici les restrictions : \begin{itemize} \item une seule classe de caractères : impossible, \item deux classes de caractères : 9 caractères, \item trois et quatre classes : 8 caractères ; \end{itemize} \item cette configuration est, bien évidement, modifiable dans gen\_config en mode expert. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique : utilisation de VirtualBox pour EOLE} \begin{itemize} \item Activer PAE/NX dans Préférences/Système/Processeur ; \item choisir "Accès par pont" dans le "Mode d'accès réseau" dans Préférence/Réseau/Carte 1 ; \item créer un instantané. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique : configuration autonome de Zephir1} \begin{itemize} \item Lancer gen\_config ; \item informations utiles : \begin{itemize} \item Adresse ip de la carte eth0, \item passerelle, \item DNS : DNS de la machine hôte. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique : gen\_config en mode texte} \begin{itemize} \item taper gen\_config txt ; \item avoir l'aide help ; \item open zephir.eol ; \item choosegroup ; \begin{itemize} \item 0, \item niveau de mise à jour : passer en "complete" ; \end{itemize} \item save \item entrer le nom zephir.eol \item exit \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique : intanciation de Zephir1} \begin{itemize} \item instance zephir.eol ; \item répondre aux questions : \begin{itemize} \item le mot de passe de l'utilisateur zephir ; \item le mot de passe root ; \item le mot de passe de l'utilisateur de l'application Zéphir admin\_zephir ; \item ne pas créer d'autres utilisateurs ; \item ne pas enregistrer le matériel ; \item ne pas mettre à jour. \end{itemize} \end{itemize} \end{frame} \section{L'application Zéphir} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{Gestion des utilisateurs} \begin{itemize} \item Utilisation d'un serveur LDAP local ou distant \item LDAP local : scripts (/usr/share/zephir/utils) : \begin{itemize} \item add\_user.py \item del\_user.py \item list\_users.py \end{itemize} \item Un utilisateur = des affectations \end{itemize} \end{frame} \begin{frame} \frametitle{Les modules, les établissements et les serveurs} \begin{itemize} \item Module : distribution spécifique + variantes \item Etablissement scolaire : lieu physique \item Serveur : un module dans un établissement \end{itemize} \end{frame} \begin{frame} \frametitle{Enregistrement Zéphir} \begin{itemize} \item Processus obligatoire et manuel \item Création dans la base + lien sécurisé \item Lancer : enregistrement\_zephir \begin{itemize} \item Connexion au réseau \item Connexion à Zéphir \item Création ou choix du serveur \item Gestion des configurations : \begin{itemize} \item nouveau serveur : "récupérer les fichiers de la variante" ; \item serveur configuré en mode autonome : "sauver la configuration actuelle" ; \item serveur configuré en mode Zéphir : "utiliser la configuration définie sur Zéphir". \end{itemize} \end{itemize} \item Sauvegarde de Zéphir : sauvegarde.sh \end{itemize} \end{frame} %%\begin{frame} %% \frametitle{Configuration Zéphir de Scribe1} %% \begin{itemize} %% \item Création d'un nouvel utilisateur ; %% \item affecter tous les droits à l'utilisateur ; %% \item se reconnecter avec ce nouvel utilisateur ; %% \item ajouter un nouvel établissement ; %% \item ajouter un serveur : %% \begin{itemize} %% \item le module : scribe-2.2 ; %% \item descriptif : Scribe1 ; %% \item configurer : état actuel/générer ; %% \item "Sauver sur Zéphir" %% \end{itemize} %% \item enregistrement Zéphir ; %% \item instanciation du serveur (ne pas remonter la configuration et ne pas faire la mise à jour). %% \end{itemize} %%\end{frame} \begin{frame} \frametitle{Pratique : enregistrement Zéphir de Scribe1} \begin{itemize} \item Configuration de Zephir1 : \begin{itemize} \item création d'un nouvel utilisateur ; \item affecter tous les droits à l'utilisateur ; \item se reconnecter avec ce nouvel utilisateur ; \item ajouter un nouvel établissement ; \end{itemize} \item lancer gen\_config sur Scribe1 et configurer ; \item enregistrement Zéphir sur Scribe1 ; \item instanciation du serveur (ne pas remonter la configuration et ne pas faire la mise à jour). \end{itemize} \end{frame} \section{Administration} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{La phase d'administration} \begin{itemize} \item Correspond à l'exploitation du serveur ; \item Chaque module possède des fonctionnalités propres, souvent complémentaires. \item Diverses interfaces permettent la mise en œuvre de ces fonctionnalités et en facilitent l'usage : \begin{itemize} \item l'interface d'administration EOLE : EAD ; \item l'interface semi-graphique ; \item divers interface d'administration (Zéphir-web, CUPS, Sympa, ...) ; \item différents outils (Era, ...). \end{itemize} \item Gestion des mises à jour. \end{itemize} \end{frame} \begin{frame} \frametitle{Les mises à jour} \begin{itemize} \item Les différents dépôts : \begin{itemize} \item la version stable, \item la version candidate, \item la version dev ; \end{itemize} \item procédure : \begin{itemize} \item par l'EAD, \item par l'interface semi-graphique, \item par Zéphir, \item à la ligne de commande : \begin{itemize} \item Query-Auto : liste les mises à jour, \item Maj-Auto : lance la mise à jour sans question, \item Maj-CD : mise à jour grâce à un CD, \item Upgrade-Auto : mise à jour version une version supérieur, \end{itemize} \item mise à jour automatique : de 01h à 6h un jour par semaine. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Diagnostic} \begin{itemize} \item La commande "diagnose" permet de tester différent point du serveur ; \item La commande "diagnose -L" propose un diagnostic étendu. \end{itemize} \end{frame} \begin{frame} \frametitle{Instance ou Reconfigure} \begin{itemize} \item L'instance doit être lancé 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{Pratique : diagnostic} \begin{itemize} \item Lancer un diagnostic et un diagnostic étendu sur les serveurs. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique : mise à jour} \begin{itemize} \item Mettre à jour le serveur Scribe1 et Zephir1 ; \item faire un reconfigure ; \item mettre à jour en candidat le serveur Scribe1. \item faire un reconfigure. \end{itemize} \end{frame} \section{Découverte de GNU/Linux} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{Filesystem Hierarchy Standard (FHS)} \begin{itemize} \item / racine de l'arborescence sur laquelle sont raccrochés tous les sous-répertoires et fichiers. \end{itemize} \end{frame} \begin{frame} \frametitle{Filesystem Hierarchy Standard (FHS)} \begin{itemize} \item (s)bin/ : commandes liées au système ; \item boot/ : noyau et initrd nécessaires au démarrage ; \item dev/ : fichiers spéciaux effectuant le lien noyau / périphérique ; \item etc/ : fichiers de configuration ; \item home|root/ : répertoires de connexion ; \item lib/ : librairies essentielles au démarrage et modules du noyau ; \item mnt/ : contient les montages des périphériques ; \item proc|sys/ : pseudo système de fichier représentant le noyau à un instant T|les processus ; \item tmp/ : répertoire temporaire accessible à tous ; \item usr/ : commandes utilisées par les utilisateurs (bin), l'administrateur (sbin), mais aussi ensemble du système graphique ; \item var/ : ensemble des données variables du système (spools, logs, web, base de donnée, ...). \end{itemize} \end{frame} \begin{frame} \frametitle{Adresse absolue / adresse relative} \begin{itemize} \item Un fichier ou un répertoire peut être défini : \begin{itemize} \item soit par un chemin relatif à l'endroit où vous vous positionnez au moment T. \item soit par un chemin absolu à partir de la racine de l'arborescence. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Les différents types de fichier} \begin{itemize} \item - : fichier classique \item d : répertoire \item l : lien symbolique \item c : périphérique de type caractère \item b : périphérique de type bloc \item p : pile fifo \item s : socket \end{itemize} \end{frame} \begin{frame} \frametitle{Les droits unix} \begin{itemize} \item Les droits standards : \begin{itemize} \item r : lecture \item w : écriture \item x : exécution \end{itemize} \item Autres droits : \begin{itemize} \item t/T : sticky bit : il interdit la suppression des fichiers qu'il contient à tout utilisateur autre que le propriétaire \item s/S : setuid et setgid bits : permet d'exécuté avec les droits du propriétaire ou du groupe \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Description d'un fichier} \begin{semiverbatim} ls -li formation.pdf \end{semiverbatim} \begin{semiverbatim} 3794089 -rw-r--r-- 1 emmanuel eole 252151 2009-11-13 09:56 formation.pdf \end{semiverbatim} \begin{itemize} \item inode \item droit \item compteur de lien physique \item propriétaire \item groupe \item taille \item date de dernière modification \item nom du fichier \end{itemize} \end{frame} \begin{frame} \frametitle{Les ACLs} \begin{itemize} \item Les ACLs s'ajoutent aux droits standards ; \item possibilité de droit par défaut. \end{itemize} \end{frame} \begin{frame} \frametitle{La gestion des processus} \begin{itemize} \item Tous processus à : \begin{itemize} \item un PID ; \item un PPID ; \item un UID ; \item un état : Actif, Exécutable, Endormi, Zombi. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Quelques commandes} \begin{itemize} \item se déplacer : pwd, cd ; \item lister : ls, getfacl ; \item créer/supprimer un répertoire : mkdir, rmdir ; \item copier/renommer/déplacer : cp, mv ; \item lien : ln ; \item les droits : chmod, chown, chgrp, setfacl ; \item processus actif : ps, top ; \item tuer un processus : kill ; \item changer le mot de passe : passwd ; \item lire le manuel : man . \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique : quelques commandes} \begin{itemize} \item sur Scribe1, se logguer en root ; \item changer le mot de passe de l'utilisateur scribe ; \item créer le répertoire /home/test ; \item renommer le en /home/eole ; \item mettre les droits de rwx pour l'utilisateur et le groupe mais --- pour autre ; \item vérifier les droits ; \item lire le man de setfacl ; \item ajouter la "lecture" de type ACLs pour le groupe "scribe" ; \item lister les droits ; \item lister la liste des processus ; \item tuer le processus "proftpd". \end{itemize} \end{frame} \section{Lire/éditer des fichiers} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{Lire un fichier} \begin{itemize} \item Lire un fichier complet : less, cat ; \item lire le début d'un fichier : head ; \item lire la fin d'un fichier : tail (avec option -f) ; \end{itemize} \end{frame} \begin{frame} \frametitle{Editer un fichier : vim} \begin{itemize} \item Les modes : \begin{itemize} \item le mode normal : Esc ; \item le mode insertion : i ; \item le mode visuel : v. \end{itemize} \item Les fichiers : \begin{itemize} \item :e fichier.txt : editer le fichier ; \item :w : ecrire dans le fichier ; \item :q : quitter le fichier. \end{itemize} \item Autre : \begin{itemize} \item annuler, refaire : u; ctrl r ; \item couper, copier, coller : d, y, p ; \item caractère, mot, ligne : l, w, 1. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item lire la fin du fichier /var/log/syslog ; \item lire le début du fichier /var/log/messages ; \begin{itemize} \item passage de mode à un autre ; \item taper un peu de texte ; \item faire des couper/copier/coller ; \item annuler/refaire. \end{itemize} \end{itemize} \end{frame} \section{Les commandes à distances} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{Le protocole ssh} \begin{itemize} \item protocole de communication sécurisé ; \item ouvrir une connexion : ssh utilisateur@ip\_serveur ; \item ouvrir une connexion pour commande graphique : ssh -X utilisateur@ip\_serveur ; \item transfert de fichier : scp fichier.txt utilisateur@ip\_serveur:. \end{itemize} \end{frame} \begin{frame} \frametitle{Screen} \begin{itemize} \item si la connexion se coupe, impossible de récupérer la session ; \item screen permet de détacher un shell et le récupérer ; \item pour le lancer : screen ; \item pour détacher : ctrl a d ; \item attention déconnexion automatique : unset TMOUT ; \item pour reprendre un screen : screen -rd \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique : connexion ssh} \begin{itemize} \item Se connecter sur le serveur Scribe1 en ssh ; \item copier un fichier ; \item lancer gen\_config à travers ssh ; \item utiliser screen. \end{itemize} \end{frame} \section{Résolution des problèmes} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{Trouver de l'information sur le serveur} \begin{itemize} \item Lecture des journaux d'activité : \begin{itemize} \item /var/log/messages : contient tous les messages d'ordre général concernant la plupart des services et démons ; \item /var/log/syslog : est plus complet que /var/log/messages, il contient tous les messages, hormis les connexions des utilisateurs ; \item /var/log/auth : contient les connexions des utilisateurs ; \item /var/log/mail.log : contient les envois et réception de mails ; \item /var/log/cron : fichier log du service cron (planificateur système). \end{itemize} \item diagnose ; \item gen\_rpt. \end{itemize} \end{frame} \begin{frame} \frametitle{Trouver des informations sur Internet} \begin{itemize} \item la documentation ; \item les FAQ ; \item les archives des listes de diffusion ; \item le Wiki EOLE ; \item recherche sur Internet ; \item équipes d'assistance académiques. \end{itemize} \end{frame} \section{L'application Zéphir 2} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{Préférence des utilisateurs} \begin{itemize} \item Contient les informations sur l'utilisateur (nom, prénom et mail) ; \item activer les alertes par mail ; \item envoyer un clef ssh. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item Configurer l'utilisateur "eole" ; \item créé une clef ssh : \begin{itemize} \item ssh-keygen -t rsa \item récupérer le fichier /.ssh/id\_rsa.pub \end{itemize} \item ajouter la clef à l'utilisateur. \end{itemize} \end{frame} \begin{frame} \frametitle{Surveillance des serveurs} \begin{itemize} \item Sur la page d'accueil ; \item sur chaque serveur : page Etat ; \item surveillance des serveurs ; \item état d'un groupe de serveur. \end{itemize} \end{frame} \begin{frame} \frametitle{Les alertes} \begin{itemize} \item Envoi d'un mail en cas de détection d'un problème : \begin{itemize} \item remontée par le serveur d'un erreur ; \item un serveur n'a pas contacté Zéphir ; \item une opération s'est mal déroulée \end{itemize} \item A la selection d'un groupe enregistré : cocher "surveiller ce groupe" \end{itemize} \end{frame} \begin{frame} \frametitle{Actions} \begin{itemize} \item Zéphir agit à distance par des actions \item Elles sont mises en file d'attente \item C'est le serveur qui se connecte au Zéphir \item Exemple d'action : envoi de la configuration, mise à jour, sauvegarde l'état \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item Lancer l'action de remonté de la configuration ; \item forcer la synchronisation : synchro\_zephir ; \item restaurer Scribe1. \end{itemize} \end{frame} \begin{frame} \frametitle{Groupe de serveurs} \begin{itemize} \item Les variantes ne servent qu'à la configuration initial ; \item changement sur plusieurs serveurs : groupe de serveurs ; \item sélectionner les serveurs suivants différents critères ; \item sauvegarde du groupe ; \item possibilité d'ajout ultérieur de machine ; \item actions supplémentaires. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item Créer un groupe de serveur ; \item autoriser l'utilisation à se connecté par clef SSH. \end{itemize} \end{frame} \section{L'interface d'administration semi-graphique} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{L'interface semi-graphique} \begin{itemize} \item L'interface semi-graphique est disponible sur différent module ; \item permet d'exécuter quelques tâches simple d'administration du serveur. \end{itemize} \end{frame} \section{L'interface d'administration EAD} \begin{frame}{Plan} \begin{columns}[t] \begin{column}{5cm} \tableofcontents[sections={1-6},currentsection, hideothersubsections] \end{column} \begin{column}{5cm} \tableofcontents[sections={7-11},currentsection,hideothersubsections] \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{Présentation général} \begin{itemize} \item serveur de commande ead-server (activé et non désactivable) : \item interface ead-web : https://:4200/ (activé et désactivable) : \begin{itemize} \item gondole d'administration, \item menu action, \item les onglets, \item la partie centrale. \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Se connecter} \begin{itemize} \item Ajouter ou supprimer des onglets pour communiquer avec d'autres serveurs de commande ; \item authentification locale ; \item authentification SSO. \end{itemize} \end{frame} \begin{frame} \frametitle{Fonction de base} \begin{itemize} \item Redémarrer, arrêter et reconfigurer ; \item mise à jour ; \item arrêt et redémarrage de service : \begin{itemize} \item mode expert, \item mode normal ; \end{itemize} \item listing matériel ; \item bande passante. \end{itemize} \end{frame} \begin{frame} \frametitle{Gestion des rôles} \begin{itemize} \item Rôle par défaut (administrateur sur tous les modules, professeur/eleve/administrateur de classe sur Scribe, administrateur du réseau pédagogique sur Amon) ; \item création de rôle personnalisé ; \item association de rôle : \begin{itemize} \item pour l'authentification locale : sur le login, \item pour l'authentification SSO : \begin{itemize} \item groupe d'utilisateur ; \item valeur de la clef typeadmin (professeur principal) ; \item login de l'utilisateur. \end{itemize} \end{itemize} \end{itemize} \end{frame} \section{Personnalisation du serveur à l'aide de Creole} \begin{frame}{Plan} \small \tableofcontents[currentsection, hideothersubsections] \end{frame} \begin{frame} \frametitle{Création de patch} \begin{itemize} \item Génération normal : /etc/eole/distrib => /etc \item Génération avec patch : /etc/eole/distrib + /etc/eole/patch => /etc/eole/templates => /etc \item Créer un patch : \begin{itemize} \item copie du fichier original /etc/eole/distrib => /etc/eole/modif ; \item modification du fichier dans /etc/eole/modif ; \item exécution "gen\_patch" ; \item reconfiguration. \end{itemize} \item Désactiver un patch : supprimer le fichier dans /etc/eole/patch. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item ClamAV à le paramètre suivant : LogFileMaxSize 2M ; \item il faut la valeur 10M. \end{itemize} \end{frame} \begin{frame} \frametitle{Ajout de dictionnaires locaux} \begin{itemize} \item Permet d'ajouter des spécificités ou de nouveau template ; \item les dictionnaires locaux sont dans /etc/eole/dicos/local/ ; \item les templates locaux sont dans /etc/eole/distrib/ ; \item un dictionnaire est un fichier XML Creole ; \item un template utilise le langage de template Creole. \end{itemize} \end{frame} \begin{frame} \frametitle{Syntaxe XML Creole} \begin{itemize} \item Entête XML : ; \item Première balise \begin{itemize} \item Inclusion de fichiers templates : : \begin{itemize} \item name (obligatoire) : nom du fichier template ; \item source : si le nom de fichier source est différent de la destination ; \item mode, owner, group : droits sur fichier appliquer au fichier ; \item mkdir : création du répertoire de destination si nécessaire. \end{itemize} \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Syntaxe XML Creole : les variables} \begin{itemize} \item Ensemble de famille et séparateur : ; \begin{itemize} \item Famille de variables : : \begin{itemize} \item Les variables : \item Les variables ... : \end{itemize} \item Les séparateurs : \begin{itemize} \item name : nom de variable en dessous du séparateur ; \item description affiché à l'intérieur de la balise. \end{itemize} \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Syntaxe XML Creole : les contraintes} \begin{itemize} \item Le contraintes : : pour tester/remplir/grouper/conditionner des variables ; \begin{itemize} \item calcul automatique avec fonction personnalisé : ... ; \item calcul automatique non modifiable ; \item choix de réponse ... ; \item cacher des variables suivant des contraintes ... : \begin{itemize} \item valeur de la variable testé : ... ; \item affecte nom : \end{itemize} \item Lien entre variable : ... : \begin{itemize} \item si le maître à une valeur, les autres aussi ; \item si le maître est multi-évalué, les autres aussi ; \item les esclaves : . \end{itemize} \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Syntaxe XML Creole : l'aide} \begin{itemize} \item Afficher de l'aide dans l'interface : . \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item Installer le paquet ircd-irc2 ; \item créer un dicos pour générer le fichier /etc/sysconfig/eole/services/4\_ircd.srv ; \item dans la famille "services" ajouter la variable "activate\_ircd" ayant pour valeur possible "oui" et "non" ; \item tester gen\_config. \end{itemize} \end{frame} \begin{frame} \frametitle{Langague de template Creole} \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{Les services Creole} \begin{itemize} \item les services non-gérés : les services non référencés dans le système de gestion des services ; \item les services désactivés : retiré du démarrage et arrêté à l'instance/reconfigure : /etc/sysconfig/eole/disabled.srv ; \item les services activés : mis au démarrage et redémarré à l'instance/reconfigure : /etc/sysconfig/eole/services/*.srv. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique 1} \begin{itemize} \item Faire le template /etc/sysconfig/eole/services/4\_ircd.srv ; \item tester les différentes valeurs et faire reconfigure. \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique 2} \begin{itemize} \item Installer phpldapadmin ; \item créer un dicos pour demander l'activation ou non (variable "activate\_phpldapadmin") ; \item si oui, activer une nouvelle famille "phpldapadmin" ; \item demander l'adresse IP (phpldapadmin\_host) et le nom du serveur (phpldapadmin\_name) ; \item copier les templates /etc/phpldapadmin/config.php et /etc/phpldapadmin/apache.conf dans /etc/eole/distrib/ ; \item le template config.php sera renommé en phpldapadmin.php ; \item si le nom n'est pas spécifié, le serveur : "Serveur LDAP" ; \item supprimer la configuration du TLS dans phpldapadmin ; \item tester sans reconfigurer : /usr/share/creole/creolecat.py -i /etc/eole/config.eol -o config.php /etc/eole/distrib/phpldapadmin.php \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique 3} \begin{itemize} \item Ajouter la possibilité d'activer ou non le TLS ; \item possibilité d'ajouter plusieurs serveurs. \end{itemize} \end{frame} \section{Zéphir} \begin{frame}{Plan} \small \tableofcontents[currentsection, hideothersubsections] \end{frame} \begin{frame} \frametitle{Personnalisation d'un serveur} \begin{itemize} \item Liste des fichiers sauvegardés : \begin{itemize} \item dictionnaires additionnels \item fichier appartenant aux dictionnaires additionnels \item fichier spécifique (exemple généré par EAD) \item les patches \item les paquets additionnels \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item Ajouter les fichiers personnalisés dans l'application Zéphir pour Scribe2 ; \item ajouter la dépendance pour les paquets ; \item envoyer la configuration. \end{itemize} \end{frame} \begin{frame} \frametitle{Les variantes} \begin{itemize} \item Variante : configuration identique applicable à plusieurs serveurs \item Par défaut chaque module est dans la variante "standard" \item Création des templates, patchs et dicos éventuels \item Déplacement dans /etc/eole/patch/variante et /etc/eole/dicos/variante \item Fichiers ou paquets pas référencés : /usr/share/zephir/zephir\_conf/fichiers\_variante \item Dans /usr/share/zephir/scripts : ./creation\_variante \item Mettre à jour une variante : ./maj\_variante \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item Créer une variante ; \item mettre Scribe2 dans la variante ; \item enregistrer Scribe2 dans Zéphir. \end{itemize} \end{frame} \begin{frame} \frametitle{Exécuter un script sur le client} \begin{itemize} \item Exécution sur un serveur ou un groupe de serveurs ; \item les scripts doivent être dans /usr/share/zephir/scripts/ ; \item ils doivent avoir l'extension .zephir ; \item ne pas spécifier l'extension lors de l'exécuxion ; \item fonctionseole.init\_proc : permet de vérifier si l'action est bloqué ; \item fonctionseole.zephir(, , ) : log envoyer au Zéphir ; \item les scripts sont lancés en tant que uucp, si besoin utiliser sudo\_script('monscript.zephir'). \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item Créer un script personnalisé permettant un supprimer un fichier dont le nom est en paramètre. \end{itemize} \end{frame} \end{document}