logo

Suite de logiciels pour gérer des serveurs Ubuntu.

Ce projet est pour me permettre d’offrir plusieurs services partagés.

Scripts d’administration:

  • Installation et configuration d’Apache HTTPD, de MySql, de Postfix et de Dovecot.
  • Ajout et suppression:
    • De site Apache HTTPD en PHP ou en proxy à une application (Rails, Tomcat, …) en HTTP et HTTPS.
    • De tâches cron.
    • De bases de données et d’utilisateurs MySql.
    • De bases de données et d’utilisateurs PostgreSQL.
    • De services upstart.
    • De comptes utilisateurs.
    • De certificats SSL.
  • Ségrégation des sites web par utilisateur en utilisant suPHP.

Applications de base installées sur tous les serveurs:

  • Page de maintenance commune lorsqu’un site est retiré.
  • Surveillance des services (httpd, mysql, …) pour qu’ils soient automatiquement redémarrés s’ils plantent.
  • phpMyAdmin
  • roundcube
  • Application de sauvegarde quotidienne de tous les utilisateurs, bases de données, job cron et services upstart.

Recettes et livre de recettes pour Chef:

  • Gère
    • les utilisateurs,
    • les certificats et clés SSL,
    • les sites web,
    • les bases de données,
    • les services upstart,
    • les tâches cron.

Logiciels complémentaires:

  • Système d’envoi d’entrées DNS au serveur DNS
    • Association automatique de l’adresse IP de la machine qui contient le site.
    • Création automatique des entrées DNS basées sur les sites Apache configurés et les adresses courriel utilisées.
    • Permet de facilement migrer un site sur un nouveau serveur sans avoir à manuellement changer le DNS.
    • Permet de distribuer la charge d’un site sur plusieurs machines: ajout et retrait automatique si une machine s’ajoute ou quitte.
  • Site web pour gérer les comptes par l’administrateur et les utilisateurs
    • Gérer les sites.
    • Gérer les courriels.
  • Redirection des connexions locales à MySQL vers un autre serveur MySQL centralisé
    • Permet de déployer le même code sur plusieurs machines en conservant localhost comme base de données.
    • La connexion est cryptée entre les serveurs.
Technologies: , , , , , , , , ,

Dans le cadre de mon travail chez CGI, j’ai participé à la création d’une application web pour permettre aux étudiants gradués de postuler à la maîtrise ou au doctorat.

La version 2 couvre tout le processus:

  • Permettre aux administrateurs de créer des formulaires à remplir par les applicants selon le programme
  • Permettre aux applicants de créer leur profil et de soumettre des applications
  • Permettre à des personnes d’appuyer la candidature d’un appliquant en téléversant un fichier
  • Permettre aux réviseurs d’applications internes à McGill et aussi externes de faire des recherches et de visualiser les applications selon leurs permissions
  • Permettre aux administrateurs de McGill de gérer les permissions

Responsabilités:

  • À l’occasion
    • Créer les fichiers pour l’installation de la base de données, les configurations et le paquet à déployer
    • Déployer l’application sur les environnements de tests
    • Guider et répondre aux questions des testeurs

Spécificités:

  • Application Grails
  • Créer et accéder à des services web avec CXF et Groovy wslite
  • Créer des tâches quotidiennes de maintenances activables par un appel à un service web
  • Coder des points d’intégrations:
    • Avec des services web
    • Avec des stored proc dans la base de données Oracle
    • En créant des vues dans la base de données Oracle
    • Créer des stubs à utiliser pour le développement et l’environnement de tests
    • Avec CAS via SAML pour obtenir des attributs de l’utilisateur connecté
  • Générer des PDF avec Flying Saucer
  • Créer des pages applicatives avec ZKUI
    • Gestion des modèles de courriels et de documents PDF contenant des variables
    • Gestion des règles pour l’approbation automatique d’une application
  • Créer des scripts SQL pour faire une migration de la structure et des données de la version 1 à la version 2 de l’application
  • Créer un filtre pour vérifier qu’un administrateur a la permission requise pour effectuer certaines tâches. Chaque contrôleur et action peut choisir sa permission avec une annotation
Technologies: , , , , , , , , , ,

Dans le cadre de mon travail chez CGI, j’ai participé à la création d’une application web pour permettre aux étudiants gradués de postuler à la maîtrise ou au doctorat.

La version 0 est un développement rapide pour couvrir quelques parties du processus:

  • Permettre à des personnes d’appuyer la candidature d’un appliquant en téléversant un fichier
  • Permettre aux réviseurs d’applications internes à McGill et aussi externes de faire des recherches et de visualiser les applications selon leurs permissions
  • Permettre aux coordinateurs de McGill de gérer les permissions

Responsabilités:

  • Gérer et faire le suivit des tâches pour l’équipe
  • Créer les fichiers pour l’installation de la base de données, les configurations et le paquet à déployer
  • Déployer l’application sur les environnements de tests
  • Guider et répondre aux questions des testeurs

Spécificités:

  • Application Grails
  • Sécuriser l’accès à l’application en utilisant Spring security (base de données locale et LDAP pour les réviseurs internes)
  • Implémenter un système qui bloque les gens qui essayent de se connecter avec plusieurs mots de passe invalides de suite. Ils sont bloqués pendant une heure
  • Crypter tous les mots de passe dans le fichier de configuration
  • Permettre de gérer des réviseurs externes (créer, assigner des applications à regarder, changer leur mot de passe)
  • Communiquer avec un service web SOAP pour sauvegarder les documents téléversés à Documentum
  • Tâches exécutées quotidiennement pour notifier et rappeler les personnes références pour des applications par courriels que le système attend leur réponse
  • Les réviseurs internes et externes peuvent chercher et afficher les applications qui leurs sont assignées par département et par liste d’applications

Le site web (besoin de se connecter)

Technologies: , , , , , , , , , , , , ,

Dans le cadre de mon travail chez CGI, j’ai participé à la création d’une application web pour permettre à des utilisateurs externes à McGill de créer des comptes pour accéder à plusieurs systèmes de McGill.

McGill avait besoin d’un système qui permet de se connecter à plusieurs applications web avec un compte local, LDAP, OpenId et autres. C’est pourquoi ils ont choisi d’utiliser CAS qui permet d’utiliser beaucoup de comptes de différents services.

Responsabilités:

  • Gérer et faire le suivit des tâches pour l’équipe
  • Créer les fichiers pour l’installation de la base de données, les configurations et le paquet à déployer
  • Déployer l’application sur les environnements de tests
  • Guider et répondre aux questions des testeurs

Spécificités:

  • Système de connexion
    • Personnalisation du logiciel CAS
    • Intégration du design en HTML et CSS
    • Créer une configuration de base pour permettre la connexion d’utilisateurs dans une base de données locale et d’utilisateurs internes à McGill
  • Système de gestion d’utilisateurs dans la base de données locale
    • Application Grails
    • Intégration du design en HTML et CSS
    • Sécuriser l’accès à l’application en utilisant Spring security
    • Section administration
      • Visualiser les utilisateurs et les activer/désactiver
      • Faire une recherche dans les évènements (audit)
    • Section de création de comptes
      • Enregistrement
      • Oublie de mot de passe
    • Section de gestion d’un compte
      • Modifier son nom, courriel et mot de passe
  • Créer des tâches quotidiennes de maintenances activables par un appel à un service web
  • Permettre de se connecter avec des « providers » différents du plugin Spring Security selon la page accédée
    • Selon la page, soit LDAP est utilisé ou CAS
    • Les pages de connections sont différentes selon le cas
Technologies: , , , , , , , , , , , ,