This repository has been archived on 2024-03-03. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
adlin/tutorial/ansible/project.md

4 KiB
Raw Blame History


title: Administration Linux avancée -- Projet author: Pierre-Olivier nemunaire [Mercier]{.smallcaps} institute: EPITA date: Jeudi 13 avril 2023 abstract: | Nous allons maintenant développer nos savoirs et connaissances d'Ansible en faisant le tour de quelques bonnes pratiques et en les appliquant à nos actuels playbooks.

\vspace{1em}

Ce projet est à rendre pour le dimanche30avril 2023 à 23h42. ...

\

En prenant appui sur la base des playbooks que vous avez commencés durant les précédents TP, vous devez fiabiliser votre travail et appliquer un certain nombre de bonnes pratiques courantes.\

Éléments supplémentaires

Par rapport au sujet précédent, vous devez :

  • Faire usage des rôles Ansible autant que possible : que ce soit les votres dans un dossier roles ou la communauté. À ce stade, sont au moins attendu sous forme de rôle : le pare-feu, l'installation et la configuration des serveurs installés, la gestion des certificat (idéalement vos playbook ne devraient qu'appeler des rôles, avec les bonnes variables).\

  • Le playbook name-server.yml doit également installer et configurer happyDomain au moyen de la collection Ansible mise à disposition par le projet (sans Docker, en écoute sur tous les ports 8081, selon la configuration par défaut, pensez à ouvrir le port du pare-feu).\

  • Le contenu de votre clef SSH publique doit se trouver dans la variable ssh_key. Cette variable doit avoir une précédence lui permettant de pouvoir être écrasée par une surcharge sur la ligne de commande (ansible-playbook -e ssh_key="ssh-ed25519 ABCDEF..."). Votre clef DOIT bien être présente dans une variable et être utilisée si la variable n'est pas précisée sur la ligne de commande.\

  • De même, une variable acme_directory doit pouvoir vous permettre de passer facilement de l'infrastructure de production (par défaut), à l'environnement staging de votre fournisseur de certificats. (Vous devez impérativement utiliser l'environnement staging durant vos tests.) Le contenu par défaut est : https://acme-v02.api.letsencrypt.org/directory\

  • Utiliser le secret 4dL1n! pour chiffrer le contenu de vos ansible-vault.\

  • KICS ne doit pas trouver de problème significatif.\

  • En bonus, utilisez happyDomain (au travers des modules disponibles) pour créer le sous-domaine de votre vitrine.\

  • N'oubliez pas de relire les guides de l'ANSSI pour vérifier que votre playbook securing.yml prend en compte un maximum de remarques pertinentes.\

Arborescence attendue

Tous les fichiers identifiés comme étant à rendre sont à placer dans un dépôt Git privé, que vous partagerez avec votre professeur.

Voici une arborescence type (vous pourriez avoir des fichiers supplémentaires, cela dépendra de votre avancée dans le projet) :

``` ./basis.yml ./securing.yml ./vitrine.yml ./name-server.yml ./collections/requirements.yml ./roles/requirements.yml ... ```

Votre rendu sera pris en compte en faisant un tag signé par votre clef PGP ou SSH. Consultez les détails du rendu (nom du tag, ...) sur la page dédiée au projet sur la plateforme de rendu.

Les fichiers requirements.yml sont standardisés : pour les collections et pour les rôles, placez-y toutes vos dépendances.