• À propos
  • Archives
  • Categories
  • Archive for the ‘Informatique’ Category

    Son petit cloud chez soi


    2015 - 04.29

    L’histoire débute le jour où on m’a demandé de comparer des solutions de groupware (travail collaboratif) pour en choisir une et la mettre en production au boulot….

    Le cahier des charges

    Les obligations étaient simples : des agendas personnels et partagés et si possible pouvoir se transmettre des fichiers entre deux réseaux différents via un upload en php et un téléchargement ensuite par un autre utilisateur. Derniers points, cette solution doit pouvoir être maintenue et administrée en interne par le service informatique et être installée sur un serveur qui faisait déjà tourner des sites web en php-mysql.

    Une liste de diverses solutions a atterrie sur mon bureau et après analyse des différentes solutions, tu gros tri a été fait et des solutions comme exchange on vite était écartées (serveur dédié + lourdeur pour la gestion des licences + incompatible avec les normes ISO)…

    Des solutions sympas comme Zarafa ou OBM, BlueMind et d’autres, très complètes, demandaient aussi un serveur dédié.

    La finale c’est jouée entre Egroupware et Ovidentia.

    Les deux étaient au coude à coude et il restait à faire un choix. Les deux tournent sur un serveur Apache2 et avec PHP5, le service informatique sait maintenir les bases de données en MySQL, et comme nous avions vraiment trop le nez dedans, le service informatique était vraiment le plus mal placé pour les départager. Ni une ni deux, Ovidentia et Egroupware ont été installés sur mon serveur perso, derrière ma connexion internet de campagne et des comptes pour les copains, la famille, les voisins… ont été ouverts et c’est eux qui les ont testés.

    Ovidentia a gagné !

    Au bout de quelques mois, les beta testeurs ont tranché : Ovidentia avec son installation de base (sans modules) était la solution la plus complète et la préférée des testeurs.

    Les débuts du délire

    Voila donc que je lance le chantier Ovidentia au boulot : Création d’une maquette sur un petit serveur virtuel à base de Debian, puis migration effectuée par l’éditeur (Cantico) sur un serveur loué chez un célèbre hébergeur Européen et présentation de  la solution à mes collègues et collaborateurs.

    Ovidentia est en production !

    Pendant ce temps, mes beta testeur étaient tombés accros de la version installée sur le serveur de la maison. Quelques uns qui étaient admin avaient créé des forums pour s’échanger des recettes de cuisine, se passer des astuces de jardinage, et des agendas de ressources étaient même apparus pour se prêter disqueuses, tronçonneuse et autres tondeuses.

    Puis est venue la mode des smartphones

    Les agenda partagés ont été très bien accueillis au boulot comme à la maison. Mais je devais remplir le mien en double entre les deux versions d’Ovidentia (pro et perso). Un module d’Ovidentia permet de synchroniser les agenda sur un serveur caldav. Me voici donc à la recherche du truc qui va bien comme serveur et là, je découvre owncloud. Installation deowncloud à la maison et la syncrhonisation de mon agenda d’Ovidentia version perso ne pose aucun soucis. Allons plus loin : synchronisation de mon agenda pro sur le owncloud de la maison, tout se passe toujours bien. Accessoirement, je découvre que owncloud peut permettre de partager des fichiers avec d’autres utilisateurs de la solution ou des tiers n’ayant aucun compte.

    C’est exactement un outil qu’il nous manque au boulot. J’ai donc installé owncloud sur le serveur du boulot, il dépanne plein de services qui doivent échanger des fichiers et des gros dossiers trop lourds pour partir par courriel. Tout le monde est heureux. Mais quelques irréductibles municipaux utilisent l’agenda de google car ils peuvent l’avoir sur leurs smartphone.

    Au hasard d’une conversation lors d’une formation, on me parle de solcalendar, qui permet de synchroniser son smartphone sur un serveur caldav. Les tests sont hyper-concluants et voici une véritable usine à gaz en production.

    Installation des pré-requis

    Il faut donc s’installer un petit serveur web, ici nous ferons avec du Debian, mais ça fonctionne bien aussi avec Ubuntu ou Mandriva, CentOS, Red-Hat, Mageia, Gentoo, …

    Une fois le système de base installé, on ouvre un terminal en root et c’est parti !!!

    aptitude install apache2 mysql-client mysql-server phpmyadmin

    Là on commence a avoir une bonne base.

    Via phpmyadmin ou via le terminal on créé deux bases de données : une pour ovidentia et une pour owncloud.

    Installation d’Ovidentia

    On va chercher les sources de Ovidentia qu’on va déziper  dans le répertoire souhaité, par défault dans /var/www mais ont peut aussi se créer des virtualhost avec Apache pour monter son site dans /home/utilisateur/.

    Une fois l’archive décompressée, on lance l’installation en se connectant sur le serveur depuis navigateur internet (iceweasel par exemple).

    Il suffit de renseigner la base de donnée, l’utilisateur de cette base, le mot de passe, et la magie s’opère. Pour bien maîtriser Ovidentia, je vous invite à aller chercher les tutoriels sur le site communautaire de l’application, les possibilités sont énormes.

    Installation de owncloud

    Deux solutions : soit la version depuis les dépôts pour avoir les mises à jour automatiques, soit depuis les sources mais les mises à jour seront manuelles.

    Depuis les dépôts : il suffit de récupérer les adresse sur la page suivante : http://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud et de les rajouter à la fin de votre fichier /etc/apt/sources.list.

    Puis on fait un petit aptitude update suivi de aptitude install owncloud et c’est parti !

    Là il faut aussi prendre owncloud en main, mais c’est relativement intuitif.

    La synchronisation Ovidentia-owncloud

    on ajoute dans Ovidentia depuis le menu administrateur le module LibCaldav, on lui règle les droits pour que les utilisateurs ou les groupes d’utilisateurs puissent l’utiliser. Et on configure le lien vers le serveur owncloud.

    Owncloud est bien fait, il donne pour chaque utilisateur ou chaque agenda le lien caldav à copier coller dans le module de Ovidentia.

    Il reste ensuite à installer SolCalendar sur son téléphone et à lui renseigner le même lien caldav pour tout se synchronise.

    QUE DU BONHEUR !!!

    Si vous avez des questions n’hésitez pas à poster des commentaires.

    (ça m’aidera à faire évoluer cet article, là je suis à cours d’idée…)

    Le libre progresse !


    2014 - 08.14

    De plus en plus de collectivités territoriales font le choix d’utiliser des logiciels libres au lieu de logiciels « privateurs ». Les raisons ?

    Souvent budgétaires au départ, les choix se portent aussi sur une indépendance technologique : les logiciels privateurs du type traitement de texte ou tableur de l’éditeur le plus connu au monde voient leur « standards » changer et évoluer tous les quatre ans environ. De ce fait, il est nécessaire de changer de version de ces produits régulièrement et d’investir dans de nouvelles licences. Comme la dernière version ne fonctionnera qu’avec le dernier système d’exploitation qui ne fonctionnera que sur les dernières machines sorties (toujours besoin de plus de puissance…), l’investissement n’est pas anodin..

    De plus, en travaillant en réseau, il faut aussi la dernière version du serveur pour pouvoir connecter tout ce monde dans un souci de sécurité avec les derniers correctifs. Ce qui nous emmène aussi  à changer le serveur car le besoin en ressources explose pour faire tourner la dernière version.

    Ce matériel est ensuite jeté au recyclage pour être désossé alors qu’il est encore en état de fonctionnement.

    En ce moment, les annonces de migration vers des solutions libres concernant des ministères, des gouvernements entiers, des collectivités … , se suivent à un rythme effréné (environ trois par semaine).

    L’avantage des logiciels libres ?

    Ils sont basés sur des normes (normes ISO) et non pas des standards commerciaux susceptibles de changer régulièrement pour prendre l’utilisateur en otage. Les logiciels libres assurent la pérennité des données sur plusieurs dizaines d’années comparés aux formats propriétaires. Les bugs et failles de sécurité sont plus rapidement découverts et corrigés dans les logiciels libres : leur code étant lisible par tous, ce sont des milliers de personnes capables de corriger les problèmes au lieu de quelques dizaines. Les correctifs sont mis à disposition sous 48 heures en général au lieu de deux ou trois mois pour des solutions propriétaires (il parait même que certains bugs n’ont jamais été corrigés depuis 1995).

    Un jour, un commercial m’a dit que le libre n’était pas au point, vu le nombre de mises à jour publié par mois. Ils sont très forst dans cette société, ce sont de piètres développeurs, mais les meilleurs commerciaux du monde capables de vendre des versions de test en cours de développement.

    Bref, les solutions libres ont de l’avenir, sont l’avenir, et sauveront notre avenir.

    Pour en revenir à la progression des solutions libres, le ministère du travail est en train de migrer sa messagerie et ses outils bureautiques, la mairie de Toulouse fait de même, le ministère de l’agriculture utilise déjà des solutions libres, la gendarmerie est sous Ubuntu depuis plusieurs années, des serveurs sous Linux s’implantent de plus en plus et facilitent la mise en sécurité avec l’arrivée de la e-administration (Il n’y a pas photo entre Apache et IIS).

    Un jour, le monde sera libre et le changement est en marche !!!

    Serveur web avec Debian


    2012 - 09.15

    Ce tutoriel est un premier jet et servira d’exercice pour créer un serveur rapidement.

    ATTENTION !!! : Ce tutoriel donne un exemple pour l’apprentissage, les conditions de sécurité ne seront pas respectées pour un mise en production et surtout ce serveur ne devra pas être visible d’internet, c’est un exercice à faire dans un réseau local.

    - 1 – On se procure le cd netinstall de Debian sur le site de la distribution et on choisi la version en fonction de l’ordinateur qui servira de serveur (en général amd64 pour les processeurs Intel et AMD 64 bits ou la version i386 pour les vieux ordinateurs du style Pentium II, III, P4, AMD Duron, Athlon, Athlon XP …).
    Pour l’exemple, un ordinateur de récupération fait très bien l’affaire, mon dernier serveur qui est mort pour cause d’intempéries était un Pentium III
    600 MHz avec 380 Mo de mémoire vive (RAM).

    - 2 – On démarre l’ordinateur en insérant le cd puis on lance l’installation. Il faut répondre à quelques questions au sujet de la langue de l’interface, à la disposition du clavier, valider la connexion au réseau, paramétrer le réseau si on souhaite une adresse fixe pour le serveur (la configuration du réseau fera l’objet d’un autre tutoriel.), un peu plus tard on renseigne un mot de passe de super utilisateur (root) puis le nom et le mot de passe d’un utilisateur basique.

    - 3 -

    Le partitionnement

    Le partitionnement est la manière dont on va découper le disque dur (ceux du fond de la salle doivent ranger leurs scies et leurs tronçonneuses, on fait ça avec un logiciel !!!).
    On choisira un partitionnement personnalisé, mais les débutants peuvent choisir la manière automatique, ils re-installeront leurs serveur plus tard en s’appliquant un peu plus.
    Pour un poste de travail, on choisira de créer une partition racine « / » entre 12 et 16 Gio (pour installer un maximum de programmes et plugins par la suite), une partition swap (mémoire virtuelle) d’environs 2 à 3fois la mémoire RAM (pour les machines qui ont moins de 1Go) et le reste du disque sera monté en tant que « /home », l’espace des utilisateurs. Avantage, si on casse le système, on ré-installe juste la base dans « / » et on ne perd pas les données utilisateurs.
    Pour un serveur basique (un seul utilisateur et son site internet) on ajoutera une partition « /var » pour garder en vie ses bases de données et ses logs de connexion.

    - 3 -

    Choix des programmes

    Une interface barbare nous propose de cocher (avec la barre espace) plusieurs choix. « Interface graphique » est coché par défaut, on le laisse que pour un poste de travail, dans le cas de notre serveur sur un ordinosaure on le décoche. Pour gagner du temps, on choisi « serveur web » et « serveur ssh » et bien sûr, on veille à laisser « système de base » qui est coché par défaut. On valide le choix par une belle et élégante pression sur la touche « Entrée ».

    - 4 -

    Installer le programme d’amorçage

    A la fin d’un temps plus ou moins long (tout dépend de la bande passante de votre connexion internet), l’installation du sytème de base et de nos choix de programme et terminée et la question du programme d’amorçage se pose. On confirme qu’on souhaite l’installer par défaut.

    - 5 -

    Reboot !!!

    J’insiste sur ce reboot car le CD est éjecté et c’est notre serveur qui prend vie. Une autre raison pour laquelle j’insiste sur ce redémarrage c’est c’est le seul qui est nécessaire pour que le serveur soit en production après installation. Il parait que certain systèmes d’exploitation qui coûtent une fortune demandent plusieurs redémarrages !
    Au bout de ce redémarrage, l’écran est noir et quelque lettres blanches demandent un login. Votre serveur fonctionne et on peut l’utiliser dessuite.
    Si vous n’avez pas configurer d’adresse IP fixe lors de l’installation, il faut maintenant aller trouver quelle adresse le routeur ou serveur DHCP du réseau lui a attribuée.
    Pour cela on tape « root » puis on presse la touche « Entrée ». Là il faut un mot de passe. Tapez le mot de passe super utilisateur renseigné lors de l’installation, mais ATTENTION rien ne s’affichera, c’est pour tromper l’ennemi qui lit par dessus votre épaule.
    Une fois connecté, taper la commande « ifconfig » et repérez l’adresse de votre serveur.

    Le choix de lui donner une adresse flottante est pratique lors de l’apprentissage, on peut trimbaler le serveur d’un réseau à un autre sans être obligé de le reconfigurer à tout bout de champ.

    Une fois que vous avez noté l’adresse, tapez « exit » et là, vous pouvez débrancher l’écran et le clavier, ils ne servent plus à rien.

    - 6 -

    Première connexion sur le serveur web

    AVERTISSEMENT : si vous êtes arrivé là, il y a maintenant deux solutions : vous êtes Linuxien et tout les outils nécessaires sont déjà sur votre poste de travail, ou vous êtes windowsiens et là c’est MAL !!!
    Les windowsiens devront aller faire un petit tour sur Framapack pour télécharger le kit de survie composé de Firefox, Putty,… (tout le reste c’est pour se faire plaisir).
    On commence par ouvrir le navigateur internet et dans la barre d’adresse, on entre l’adresse IP du serveur.
    Une page en anglais doit apparaître et indiquer « It work ! », il travaille !
    Nous disposont bien d’un serveur web en état de fonctionnement.
    Testons la connexion via « ssh » (telnet pour les windowsiens de la grande époque). Pour cela on ouvre un terminal et on tape « ssh root@192.168.x.x » (les « x » sont à remplacer pour compléter l’IP du serveur).
    Tout d’un coup, le terminal indique qu’il est connecté au serveur. Et sur le coup de la colère, on va installer quelques application utiles en ligne de commande.

    - 7 -

    Installation de la base de donnée MySQL

    Pourquoi MySQL ?
    Elle est très utilisée pour les CMS (gestion de contenu, sites web préfabriqués) et ce tutoriel s’adresse aux débutants qui veulent découvrir Linux en montant un serveur (Il y en à qui en veulent quand même !!!); accessoirement, j’ai suivi des formations sur MySQL et je n’ai pas encore eu le temps et le courage de me pencher sur d’autres solution (Oracle va peut être m’y pousser…).
    On est donc connecté en ssh sur le serveur et la commande magique est :
    « aptitude install mysql-server mysql-client phpmyadmin ».
    Le serveur va mouliner un peu puis demander un mot de passe pour l’administrateur de la base de donnée, qui peut être différent ou identique au mot de passe du super utilisateur (root). Mais attention à la multiplication des mots de passe, il faut les retenir après. Cette différenciation est mise en pratique dans les fermes de données (google, facebook, twitter, OVH…) où on va trouver des administrateurs systèmes qui ne touchent pas aux bases de données et des administrateurs de bases de données qui ne touchent pas au système.
    Ensuite phpmyadmin s’installe et demande le mot de passe de l’administrateur de la base de donnée pour créer sa propre base, puis il demande un mot de passe pour la connexion à la base par son interface web (c’est pour qu’un utilisateur distant puisse administrer la base de donnée par interface web).

    On teste la connexion depuis le navigateur de son poste de travail en entrant dans la barre d’adresse l’IP du serveur puis « /phpmyadmin ». Pour la première connexion on va utiliser le login « root » et le mot de passe de l’administrateur de phpmyadmin. Vous pouvez maintenant créer toutes les bases de données que vous souhaitez et tous les utilisateurs dont vous avez besoin pour vos futurs projets de développement web.

    Pour aller plus loin :

    Pour apprendre, comprendre, voir les commandes Linux dans un terminal = http://www.linuxguide.it/command_line/linux_commands_fr.html

    Pour en savoir plus sur MySQL = http://www.mysql.fr/

    Pour en savoir plus sur phpmyadmin = http://www.phpmyadmin.net/localized_docs/fr/

    Sans oublier le site de Debian = http://www.debian.org/index.fr.html

    Et un très bon site avec le meilleur forum du monde, QuebecOS = http://www.quebecos.com/

    Je répète que ce tutoriel est destiné aux débutants pour s’entraîner sur un réseau local, les conditions de sécurité ne sont pas remplies pour passer le serveur en production.

    Dans un prochain tutoriel, nous verrons comment préparer le serveur pour que des utilisateurs distants puissent créer leurs sites.



    Warning: Unknown(): open(/mnt/116/sdb/d/7/jpsanfree/sessions/sess_4a6cc0bf1f454f067bd5a31f0b15d070, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

    Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/116/sdb/d/7/jpsanfree/sessions) in Unknown on line 0