subject/1: update the subject with latest FIC release
This commit is contained in:
parent
27e6dc7863
commit
d6d2fa5282
1 changed files with 38 additions and 21 deletions
|
@ -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>
|
||||
|
||||

|
||||
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue