Stage chez Com & Company

Mon stage en tant que DevOps

  • Entreprise : Com & Company
  • Lieu : Lyon
  • Date: 26 Octobre au 18 Décembre 2020
  • Service : Service Infrastructure

Contexte

J’ai pris plaisir à effectuer ce stage dans l’entreprise Com & Company, associée au groupe Valeur et Capital, groupe dont le cœur de métier réside dans la vente d’immobilier neuf et de placements financiers (patrimoine immobilier). Le groupe Valeur et Capital exerce plusieurs métiers tels que :

  • L’investissement immobilier
  • La gestion privée
  • Le courtage de crédit
  • L’administration de biens immobiliers
  • La promotion des biens immobiliers

De cette manière, l’entreprise Com & Company accompagne la croissance de chaque entité et développe des outils adaptés à chaque métier du groupe. Cette entreprise se situe au siège du groupe Valeur et Capital, à Lyon (94 Quai Charles de Gaulle).


Parc Informatique

Schéma du parc informatique de Valeur et Capital

Schéma du parc informatique de Valeur et Capital.


Service

Durant ces 2 mois de stage, j'ai intégré le service qui s’occupe de l’infrastructure de l’entreprise et de son support informatique. Il était composé d’un responsable et de 5 employés dont un alternant.

Ce service s’occupe principalement du parc informatique de l’entreprise, y compris des autres agences présentes ailleurs en France. Il s’occupe aussi de répondre à des appels téléphoniques internes et de régler leurs problèmes.


Mon espace de travail

Le service infrastructure se situe dans une pièce, au 4ème étage du bâtiment. En raison de la crise sanitaire, mon stage s’est effectué à 50% en télétravail, soit un jour sur deux.

Chaque matin à 9h30, le service infrastructure auquel je faisais partie, organisait un stand-up afin de faire un point sur nos projets en cours et sur nos objectifs à réaliser pour la journée.

Bureaux du service infrastructure depuis mon espace de travail

Bureaux du service infrastructure depuis mon espace de travail.

Extérieur (cité international) :


Travail effectué

Ces 2 mois de stage m'ont permis de réaliser de nombreux travaux diversifiés et m'ont aidé à en apprendre davantage sur le métier de DevOps qui mélange réseau et développement.

Voici les différentes tâches qui m'ont été confiées lors de ce stage :

  • Support téléphonique
  • Création et résolution de tickets avec GLPI
  • Dépannage au sein de l’entreprise & à distance
  • Créations de scripts PowerShell
  • Scan et recherches de failles
  • Création d’une application
  • Création de serveurs

J’ai donc pu découvrir et effectué toutes les tâches propres à un employé du service infrastructure, tout en faisant de la programmation.


Mission – Sécurité

Problématique :

La cybersécurité est un enjeu crucial pour toutes les activités des entreprises aujourd’hui. C’est pourquoi, les entreprises doivent obligatoirement mettre en place des politiques de sécurité, implémenter des protections ou encore documenter les procédures. Toutefois, seul le pentest permet de connaître les risques concrets avec une réponse immédiate. Ayant déjà des compétences et des notions dans ce domaine, j'ai effectué un pentest.

Outils utilisés

  • Kali Linux
  • Nmap
  • Nessus

Réalisation

Pour commencer la réalisation du pentest ou du scan, j’ai préalablement installé Kali Linux sur le VSphere interne de l’entreprise. Une fois l’installation finie, j’ai pu lancer un premier scan à l’aide de NMAP, déjà intégré à Kali. Le scan fini, j’ai pu générer un rapport de scan permettant d’identifier les services et ses versions qui tournent derrière les ports ouverts du contrôleur de domaine. Pour pousser le scan encore plus loin, j’ai dû utiliser Nessus.

Nessus, lui, est plus qu’un scanner de ports. C’est un outil de sécurité informatique qui signale les potentielles failles des machines testées. Mais contrairement à Nmap, Nessus n’est pas préalablement installé sur Kali Linux, il faut donc l’installer. Lorsqu'on lance un scan avec Nessus, il retourne un rapport détaillé de toutes les failles potentielles du système en question, de la plus critique à la moins critique.

L’interface de Nessus :

Interface de Nessus

Une fois cette tâche finie, j’ai présenté le rapport à mon maître de stage, montrant qu’il n’y avait aucune faille critique dans le contrôleur de domaine actuel de l’entreprise.


Mission – Administration Active Directory

Problématique

Lors de mon arrivée dans l’entreprise, certaines actions pour administrer l’Active Directory étaient faites manuellement. Comme par exemple le fait d’ajouter un nouvel utilisateur dans l’AD (Active Directory). Et il n’y avait pas d’interface graphique pour lancer ce genre de scripts.

Outils utilisés

  • PowerShell
  • Visual Studio
  • PowerShell Universal
  • Git / Gogs

Réalisation

Dans un premier temps, on m'a demandé de réaliser un script, codé en PowerShell, qui permettrait d’ajouter un nouvel utilisateur dans l’AD. Une fois fini, j’ai dû créer un repos git sur un serveur git local nommé Gogs.

Après avoir fait cela j’ai dû créer plusieurs autres scripts PowerShell pour :

  • Ajouter une licence à un utilisateur
  • Créer un nouveau groupe dans l’AD
  • Déplacer les utilisateurs désactivés dans une OU Historique

A chaque fois que je terminais un script je devais le tester sur un AD de test qui était la copie conforme de celui qui était en fonction.

Lors de la réalisation de mes scripts, j’ai pensé qu’il était mieux de lancer le script pour ajouter un nouvel utilisateur dans l’AD depuis une interface graphique. J’ai donc commencé à coder une application en C# à l’aide de Visual Studio. (Voir la page du projet ici)

Voici l’interface de mon application une fois finie.

Configuration site web sur le serveur IIS pour l’hébergement de PowerShell Universal.

Mon maître de stage a apprécié l'idée de créer une interface graphique pour un script. Comme mon application fonctionnait bien jusqu'ici, il m'a demandé de travailler sur PowerShell Universal. Cet outil crée automatiquement une interface graphique en fonction des scripts ajoutés. Il suffit simplement d'installer PowerShell Universal sur un Windows Server.

La première chose que j’ai dû faire a été de créer un Windows Server 2016, et d’y configurer un service IIS, dans le but d’héberger PowerShell Universal. Pour cela, je me suis aidé de la doc officielle trouvable sur internet.

Une fois les configurations faites, j’ai pu coder en PowerShell le système de connexion sur l’interface web de PowerShell Universal, afin que seuls les administrateurs du domaine puissent s’y connecter.

Voici le rendu final une fois connecté à l’interface web de PowerShell Universal. On peut y voir les différents scripts ajoutés qui peuvent désormais être lancés.


Mission – Automatisation de machines virtuels

Problématique

Lorsque l’on crée une machine virtuelle, il est utile de pouvoir automatiser sa création pour déployer plusieurs machines configurées de la même manière et pouvoir réinstaller une machine virtuelle très facilement.

Outils utilisés

  • Packer
  • Vagrant
  • Visual Studio Code
  • VirtualBox/VSphere

Réalisation

Tout d’abord, j’ai dû créer un serveur de réplication MySQL Master-Slave sur VirtualBox avec Packer. Packer est un outil open source qui permet de créer des images de machines à partir d’un fichier source, au format JSON (format que j’ai choisi dans mon cas). Pour pouvoir configurer le Master-Slave, j’ai codé en Bash et inclut ce fichier à Packer. Après avoir créé mon fichier JSON, j’ai pu lancer une commande Packer, qui me retournait une image VirtualBox.

Sur VirtualBox, il est impossible de déployer directement une machine virtuelle à l’aide de Packer, car il ne crée qu’une image pour VirtualBox. Je me suis donc servi de Vagrant, qui permet le déploiement de machines grâce à une image.

Voici un exemple de ce que font des serveurs de réplication Master-Slave MySQL :

Après cela, j’ai dû reproduire la même chose pour créer et déployer un Windows Server 2016 sur VirtualBox. J’ai donc procédé de la même manière, en créant un nouveau fichier JSON et d'autres fichiers de configuration spécifiques à Windows. Puis, à l’aide de Vagrant, j’ai déployé la machine virtuelle sous VirtualBox.

Une fois que tout fonctionnait, j'ai dû reproduire cette tâche une troisième fois mais cette fois-ci, pour VSphere. Il fallait donc tout reprendre car la configuration des fichiers Packer n'étaient pas les mêmes. Cette fois-ci, l’utilisation de Vagrant n’était pas obligatoire car le déploiement pouvait se faire directement avec Packer pour VSphere. Je n'ai eu aucun problème à déployer Windows Server 2016 sur VSphere. À l’inverse, il m’a été impossible de déployer le Master-Slave sur VSphere, même avec l’aide de plusieurs collègues.

Exemple d’utilisation courante de Packer et Vagrant :


Livrables des missions

Pour chaque tâches effectuées, j’ai dû rendre certaines documentations pour que les autres membres du service infrastructure puissent comprendre au mieux ce que j’ai fait.

Voici les différentes docs effectuées :


Bilan

Après un stage de 8 semaines bien riches, voici ce que je peux en conclure.

Les plus et moins

Points positifs

  • Un très bon encadrement
  • Ma première découverte du monde du travail
  • De nouvelles compétences développées
  • Un entourage très professionnel

Points négatifs

  • Longs trajets
  • Travail plus compliqué à distance

Mes compétences gagnées

Soft Skills

  • Savoir être autonome
  • Intéraction avec les clients
  • Plus de rigueur pour le travail
  • Autodiscipline

Hard Skills

  • Langage PowerShell
  • Administration d’Active Directory
  • Packer & Vagrant
  • Réplication de serveurs MySQL (Master-Slave)
  • Mise en place de documentations
  • PowerShell Universal
  • Création d’un serveur IIS

Dernier jour de stage à Com & Company, aux côtés de Fabien, Yanis & Kilian :