2020-10-28 22:16:34 +00:00
|
|
|
\newpage
|
|
|
|
|
|
|
|
But du TP
|
|
|
|
=========
|
|
|
|
|
|
|
|
Nous allons nous mettre aujourd'hui dans la peau d'une équipe DevOps et
|
2021-11-19 23:00:30 +00:00
|
|
|
réaliser une solution complète d'intégration/déploiement continu (le fameux
|
2020-10-28 22:16:34 +00:00
|
|
|
CI/CD, pour *Continuous Integration* et *Continuous Delivery*).
|
|
|
|
|
2021-11-19 23:00:30 +00:00
|
|
|
Le résultat attendu d'ici la fin de cette partie sera de mettre en place toutes
|
|
|
|
les briques décrites dans la section précédente.
|
2021-09-21 09:43:21 +00:00
|
|
|
\
|
2020-10-28 22:16:34 +00:00
|
|
|
|
2021-11-19 23:00:30 +00:00
|
|
|
Nous allons commencer par automatiser le projet `youp0m`, plus simple, ~~puis
|
|
|
|
la plate-forme du FIC dans son ensemble, ce qui représente un petit challenge~~
|
|
|
|
(merci Nabih !).
|
2020-10-28 22:16:34 +00:00
|
|
|
|
|
|
|
Il est également attendu que vous rendiez un playbook Ansible, permettant de
|
2021-11-19 23:00:30 +00:00
|
|
|
retrouver un environnement similaire. Car on pourra s'en resservir par la suite.
|
2021-09-21 09:43:21 +00:00
|
|
|
\
|
2020-10-28 22:16:34 +00:00
|
|
|
|
|
|
|
Dans un premier temps, on voudra juste compiler notre projet, pour s'assurer
|
|
|
|
que chaque commit poussé ne contient pas d'erreur de compilation, dans
|
|
|
|
l'environnement défini comme étant celui de production. Ensuite, on ajoutera
|
|
|
|
quelques tests automatiques. Puis nous publierons automatiquement le binaire
|
|
|
|
`youp0m` comme fichier associé à un tag au sein de l'interface web du
|
|
|
|
gestionnaire de versions.
|
|
|
|
|
|
|
|
Enfin, nous mettrons en place un registre Docker qui nous permettra de publier
|
2021-11-19 23:00:30 +00:00
|
|
|
automatiquement l'image Docker associée. C'est à partir de cette image Docker
|
2020-10-28 22:16:34 +00:00
|
|
|
que l'on va commencer à déployer automatiquement...
|
|
|
|
|
|
|
|
|
|
|
|
## Préparer le terrain
|
|
|
|
|
|
|
|
Tous les déploiements sont à faire sur votre machine en utilisant des
|
|
|
|
conteneurs Docker, qui seront regroupés au sein de réseaux Docker. Cela vous
|
|
|
|
permettra d'utiliser la résolution de noms entre vos conteneurs.
|
|
|
|
|
|
|
|
Dans votre playbook Ansible, vous pourrez procéder ainsi :
|
|
|
|
|
|
|
|
<div lang="en-US">
|
|
|
|
```yaml
|
|
|
|
- name: Create virli network
|
|
|
|
docker_network:
|
|
|
|
name: virli3
|
|
|
|
```
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
Étant donné que votre machine ne dispose pas de domaine sur Internet et que
|
|
|
|
l'on va essayer de simplifier au maximum l'installation, vous devriez ajouter
|
2021-11-19 23:00:30 +00:00
|
|
|
cette ligne à votre fichier `/etc/hosts` (ou
|
|
|
|
`\Windows\System32\drivers\etc\hosts`) :
|
2020-10-28 22:16:34 +00:00
|
|
|
|
|
|
|
<div lang="en-US">
|
|
|
|
```conf
|
|
|
|
127.0.0.1 gitea droneci
|
|
|
|
```
|
|
|
|
</div>
|
|
|
|
|
|
|
|
Cette ligne va vous permettre de résoudre les noms des conteneurs. Cela
|
|
|
|
permettra aux requêtes OAuth de se faire de manière transparente pour vous
|
|
|
|
lorsque vous serez dans votre navigateur.
|