tuto2: Update for 2023 students
This commit is contained in:
parent
7925fd8a65
commit
0ebf69f4cd
9 changed files with 200 additions and 76 deletions
|
|
@ -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
|
||||
|
|
|
|||
Reference in a new issue