64 lines
2.2 KiB
Markdown
64 lines
2.2 KiB
Markdown
|
\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.
|
||
|
\newline
|
||
|
|
||
|
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.
|
||
|
\newline
|
||
|
|
||
|
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.
|