virli/tutorial/devops/what.md

64 lines
2.1 KiB
Markdown
Raw Normal View History

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
réaliser une solution complète de intégration/déploiement continu (le fameux
CI/CD, pour *Continuous Integration* et *Continuous Delivery*).
Le résultat attendu d'ici la fin du TP sera de mettre en place toutes les
briques décrite dans la section précédente.
\
2020-10-28 22:16:34 +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.
Il est également attendu que vous rendiez un playbook Ansible, permettant de
retrouver un environnement similaire. Car on se reservira de cette installation
dans un prochain TP.
\
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
automatiquement l'image Docker assocciée. C'est à partir de cette image Docker
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
cette ligne à votre fichier `/etc/hosts` :
<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.