subject/1: update the subject with latest FIC release

This commit is contained in:
nemunaire 2018-02-19 13:35:08 +01:00
parent 27e6dc7863
commit d6d2fa5282
1 changed files with 38 additions and 21 deletions

View File

@ -22,7 +22,9 @@ Voici les notes retrouvées dans les derniers échanges avec le sous-traitant :
> go build -o $GOPATH/src/srs.epita.fr/fic-server/fic-frontend srs.epita.fr/fic-server/frontend
>
> # Configuration de la base de données : par défaut tous les composants vont se connecter à
> # fic:fic@localhost/fic, voir l'option -dsn pour d'autres paramètres
> # fic:fic@localhost/fic, voir l'option -dsn pour d'autres paramètres. Les variables
> # d'environnement MYSQL_HOST, MYSQL_PASSWORD, MYSQL_USER et MYSQL_DATABASE permettent
> # également de construire le DSN.
> mysql -u root -p <<EOF
> CREATE DATABASE fic;
> CREATE USER fic@localhost IDENTIFIED BY 'fic';
@ -30,6 +32,8 @@ Voici les notes retrouvées dans les derniers échanges avec le sous-traitant :
> EOF
>
> cd $GOPATH/src/srs.epita.fr/fic-server/
> mkdir SETTINGS
> # Ce dossier va contenir les paramètres du challenge
> ./fic-admin &
> # À ce stade http://localhost:8081/ permet d'accéder à l'interface d'admin
>
@ -47,7 +51,7 @@ Voici les notes retrouvées dans les derniers échanges avec le sous-traitant :
> # vulnérabilités.
> # Un nginx est nécessaire au dessus pour gérer l'authentification.
>
> Un exemple de conf nginx est disponible dans la branche f/ansible :
> Un exemple de conf nginx est disponible dans la branche `f/ansible` :
>
> - la version utilisant un simple `htpasswd` :
> <https://git.nemunai.re/?p=fic/server.git;a=blob;hb=refs/heads/f/ansible;f=playbooks/roles/fic-frontend/files/nginx-frontend-htpasswd.conf>
@ -56,8 +60,7 @@ Voici les notes retrouvées dans les derniers échanges avec le sous-traitant :
> l'environnement de préproduction, on se base sur le LDAP de la boîte)
> <https://git.nemunai.re/?p=fic/server.git;a=blob;f=playbooks/roles/fic-frontend/files/nginx-frontend-pam.conf;hb=refs/heads/f/ansible>
>
> - la version utilisant les certificats clients : qui n'a pas été
> commitée encore.
> - la version utilisant les certificats clients : `configs/nginx-prod.conf`
>
> Il faut ajouter un binding certificat/remote_user -> team, dans le
> fichier `/etc/nginx/auth.conf`.
@ -66,10 +69,24 @@ Voici les notes retrouvées dans les derniers échanges avec le sous-traitant :
> - pour l'auth HTTP : <http://localhost:8081/api/teams-nginx-members>.
>
> En production, le frontend est déporté sur une autre machine et un `rsync`
> s'occupe de synchroniser les dossiers submissions et TEAMS des deux
> s'occupe de synchroniser les dossiers `submissions` et `TEAMS` des deux
> machines. Ainsi, la machine validant les solutions et contenant toutes
> les données n'est jamais accessible du réseau local, c'est elle qui
> initie les rsync de manière régulière.
> initie les `rsync` de manière régulière (`configs/synchro.sh`)
>
> Un mécanisme de synchronisation permet d'importer le challenge à partir d'un
> WebDAV : il faut pour cela utiliser les options `-clouddav`, `-clouduser` et
> `-cloudpass`. Par exemple :
>
> [ -z "${FICCLOUD_PASS}" ] && read -p 'FICCLOUD_PASS: ' -s FICCLOUD_PASS; \
> ./fic-admin -clouddav "https://owncloud.srs.epita.fr/remote.php/webdav/FIC 2018" \
> -clouduser login_x -cloudpass "${FICCLOUD_PASS}"
>
> Il est également possible, après avoir monté le webDAV avec FUSE ou en ayant
> téléchargé son contenu dans un répertoire, d'utiliser un répertoire local,
> via l'option `-localimport` :
>
> ./fic-admin -localimport /mnt/fic/ -localimportsymlink
</div>
![Vue d'ensemble des échanges de données entre les services](FIC-overview.png)
@ -93,12 +110,12 @@ et/ou exposent.
Vous devriez pouvoir lancer `docker container run nemunaire/fic-IMAGE --help`
sur les images.
Durant la durée du projet, les images seront peut-être amenés à être mis à
Durant la durée du projet, les images seront peut-être amenées à être mises à
jour, si vous vous trouvez bloqué, commencez par vérifier que vous avez bien la
dernière version disponible de l'image :
```shell
docker pull nemunaire/fic-admin nemunaire/fic-backend nemunaire/fic-frontend
docker pull nemunaire/fic-admin nemunaire/fic-backend nemunaire/fic-frontend
```
@ -109,11 +126,11 @@ inscrivant tout ça dans un fichier YAML, compréhensible par `docker-compose` !
Vous devriez avoir ces services :
* `mariadb` (ou `mysql`)
* `admin`
* `backend`
* `frontend`
* `nginx` (ou `apache`, ...)
* `mariadb` (ou `mysql`),
* `admin`,
* `backend`,
* `frontend`,
* `nginx` (ou `apache`, ...).
### Palier 2 : retrouver les `Dockerfile`
@ -124,9 +141,9 @@ plus dépendre d'une image que l'on ne peut plus modifier facilement.
Pour ce palier, vous allez devoir réécrire les trois fichiers `Dockerfile`,
pour chacun des service :
* admin
* backend
* frontend
* `admin`,
* `backend`,
* `frontend`.
Arriverez-vous à générer des images plus propres que celles du prestataire
disparu ?!
@ -141,17 +158,17 @@ l'équivalent de bibliothèques). Vous allez sans doute vouloir placer les trois
`Dockerfile` à la racine pour simplifier les étapes de construction des images :
```shell
docker image build --file Dockerfile-admin .
docker image build --file Dockerfile-admin .
```
Les
[*multi-stage builds*](https://docs.docker.com/engine/userguide/eng-image/multistage-build/)
vous seront d'une grande aide.
Si vous n'avez pas le choix d'utiliser une vieille version de Docker qui ne
supporte pas la syntaxe au sein d'un seul fichier, vous pouvez ajouter des
scripts et autant de `Dockerfile` que nécessaire à la tarball (mais vous
devriez considérer l'option de mettre à jour votre Docker).
Si vous n'avez pas la possibilité d'utiliser une version récente de Docker qui
supporte cette syntaxe, vous pouvez ajouter des scripts et autant de
`Dockerfile` que nécessaire à votre rendu (mais vous devriez considérer
l'option de mettre à jour votre Docker !).
### Palier 3 : `fic-server.yml` prêt pour le déploiement