tuto2: Update for 2023 students

This commit is contained in:
nemunaire 2022-03-08 21:17:08 +01:00
commit 0ebf69f4cd
9 changed files with 200 additions and 76 deletions

View file

@ -39,18 +39,25 @@ ne risquez pas de vous retrouver avec une usine à gaz impossible à retirer.
Résultat attendu
----------------
À la fin de cette partie, vous devez être en mesure de pouvoir déployer une
nouvelle machine, identique à celle que vous venez de configurer, à partir
d'une ISO et d'un nouveau disque.
À la fin de cette partie, vous devez être en mesure de déployer une nouvelle
machine, identique à celle que vous venez de configurer, à partir d'une ISO et
d'un nouveau disque.
Le fichier à rendre est un playbook `login-x-TP2/basis.yml`, accompagné de
Le fichier à rendre est un *playbook* `login-x-TP2/basis.yml`, accompagné de
toutes ses dépendances : celui-ci doit faire les configurations basiques du
système et des utilisateurs.
Un deuxième playbook est à rendre : `login-x-TP2/vitrine.yml`, celui-ci doit
permettre de déployer (en parallèle de tous les autres), une page vitrine
typique d'une entreprise (cf. la 4e question de cours ;)). Cette page doit être
accessible depuis votre domaine <https://login-x.adlin2022.p0m.fr/>.
permettre de déployer, une page vitrine typique d'une entreprise (cf. la 4e
question de cours ;)). Cette page doit être accessible depuis votre domaine
<https://login-x.adlin2023.example.tld/>.\
::::: {.warning}
Il est attendu que la vitrine soit générée avec [Hugo](https://gohugo.io/), sur
la machine exécutant Ansible (et non pas sur la machine où elle sera hébergée).
:::::
Mon première commande
@ -73,11 +80,15 @@ all:
```
</div>
::::: {.more}
Vous pouvez lancer une autre machine virtuelle à ce stade et ajouter son IP sur
une nouvelle ligne du fichier `hosts`.
:::::
Plus tard, c'est dans ce fichier que vous pourrez créer des groupes de machines
(par exemple pour regrouper les serveurs web, les bases de données, etc.) ou
(pour, par exemple, regrouper les serveurs web, les bases de données, etc.) ou
donner des caractéristiques spécifiques à vos machines.
@ -97,12 +108,15 @@ Lancez ensuite la commande suivante :
Vous devriez avoir un retour similaire à celui-ci, indiquant simplement que la
connexion a bien été effectuée et que le nécessaire est bien installé sur la
machine distance.
machine distance.\
::::: {.question}
Si votre clef SSH n'a pas été récupérée depuis le CRI, vous pouvez rajouter
l'option `--ask-pass`, afin de pouvoir indiquer le mot de passe de connexion au
compte, sinon vous obtiendrez une erreur plutôt incrompréhensible.
compte, sinon vous obtiendrez une erreur plutôt incompréhensible.
:::::
### Confort
@ -145,7 +159,7 @@ exister. À l'application de cette nouvelle recette, si un tel utilisateur est
trouvé, il sera donc supprimé.
### Collecte du lundi
### Collecte ~~du lundi~~ d'informations
Parmi les modules de base, le module `setup` permet de récupérer un grand
nombre de caractéristiques de la machine distance, voyez plutôt :
@ -156,7 +170,7 @@ ansible -i hosts all -m setup
```
</div>
Les informations récupérées (quelque soit le module), sont ensuite accessible
Les informations récupérées (quelque soit le module), sont ensuite accessibles
dans des variables afin de permettre de compléter des modèles ou pour faire de
l'exécution conditionnelle d'état (par exemple on pourra utiliser la variable
`ansible_facts.ansible_distribution` pour distinguer les gestionnaires de
@ -238,10 +252,10 @@ Voici à quoi ressemblerait votre premier playbook créant l'utilisateur
</div>
La création de l'utilisateur se fait à l'aide du module
[`user`](http://docs.ansible.com/ansible/latest/user_module.html).
[`user`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html).
À vous maintenant, à l'aide [des modules à votre
disposition](http://docs.ansible.com/ansible/latest/modules_by_category.html)
À vous maintenant, à l'aide [des collections de modules à votre
disposition](https://docs.ansible.com/ansible/latest/collections/index.html)
de copier vos fichiers de configuration à leur place et avec les bons droits
(`authorized_keys`, `.bashrc`, ...). Installez également les paquets que vous
aviez installé à la main (client DHCP, `htop`, ...).
@ -281,13 +295,14 @@ Il est attendu que le nom de la notification corresponde à l'attribut `name`
d'un handler.
Voir [la
documentation](http://docs.ansible.com/ansible/latest/playbooks_intro.html#handlers-running-operations-on-change)
documentation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_handlers.html)
pour davantage de détails et d'exemples.
La configuration de votre serveur SSH laisse à désirer. Corriger les problèmes
énoncés par ces deux articles :
- <https://linuxhandbook.com/ssh-hardening-tips/> ;
- <https://www.ssi.gouv.fr/guide/recommandations-pour-un-usage-securise-dopenssh/> ;
- <https://stribika.github.io/2015/01/04/secure-secure-shell.html>.
Mettez en place un *handler* pour relancer votre serveur SSH en cas de