tuto-ansible: deploiement-svc done

This commit is contained in:
nemunaire 2018-03-07 05:54:40 +01:00 committed by Pierre-Olivier Mercier
parent b786830dc8
commit 169cfbd2ff
3 changed files with 152 additions and 30 deletions

View File

@ -3,40 +3,43 @@
Déploiement d'un service via Ansible
====================================
Installation des dépendances
----------------------------
Très bien ! vous semblez avoir compris le fonctionnement de notre
gestionnaire de configuration.
- nginx
- php-fpm
- mysql-server
Après cet échauffement, vous devriez être prêt à créer un *playbook*
dédié à l'installation de [Tiny Tiny RSS](https://tt-rss.org/) :
![TinyTinyRSS](ttrss.png "Le lecteur de flux RSS : Tiny Tiny RSS")
Très utile pour faire de la veille technologique, ce magnifique
lecteur de flux RSS vous permettra de ne plus jamais rien manquer !
Vous trouverez la documentation d'installation précise et détaillée
à : <https://git.tt-rss.org/fox/tt-rss/wiki/InstallationNotes>.
Choisissez judicieusement votre serveur web et votre serveur de base
de données ; ceux-ci ne sont pas imposés.
Vous devrez attacher une importance tout particulière à la sécurité de
la solution que vous déployez : configurations durcies, utilisateur
dédié lorsque c'est possible (pas de `root` !), droits d'accès et
permissions des répertoires, etc.
Profitez des [modules de base de
données](http://docs.ansible.com/ansible/latest/list_of_database_modules.html)
pour l'initialiser correctement. Et bien entendu de l'ensemble des
modules décrits dans la documentation standard !
Configuration des éléments
--------------------------
## Configurations
- hardening nginx
- php
Tous les éléments de configuration (mot de passes de connexion à la
base de données, chemins, etc.) sont à déclarer comme variables dans
le fichier `vars/ttrss-config.yml`, que vous prendrez soin d'importer
dans votre *Playbook*.
Création d'un utilisateur dédié
-------------------------------
## Backup
Création de la base de données
------------------------------
- création de la base de données
- création d'un utilisateur dédié
- initialisation de la DB (si besoin)
Récupération du code
--------------------
- récupération de la tarball
- extraction
- copie et config (chmod/chown)
Création de backup via crontab
------------------------------
Vous ajouterez enfin une tâche hebdomadaire de sauvegarder de la base
de données. Le *dump* obtenu est à placer dans `/var/backups/`.

119
tutorial/ansible/rendu.md Normal file
View File

@ -0,0 +1,119 @@
\newpage
Rendu
=====
## Modalité de rendu
Un service automatique s'occupe de réceptionner vos rendus, de faire des
vérifications élémentaires et de vous envoyer un accusé de réception (ou de
rejet).
Ce service écoute sur l'adresse <adlin@nemunai.re>, c'est donc à cette adresse
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
sera pas pris en compte.
## Tarball
Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
placer dans une tarball (pas d'archive ZIP, RAR, ...).
Voici une arborescence type (vous pourriez avoir des fichiers supplémentaires,
en fonction de votre organisation ou de vos choix) :
<div lang="en-US">
```
login_x-TP2/ttrss.yml
login_x-TP2/pgdump.sh
login_x-TP2/config.php.j2
login_x-TP2/ttrss.nginx.conf
...
```
</div>
Le seul fichier devant impérativement se trouver à la racine de votre tarball
est `ttrss.yml`. Le reste de l'arborescence est laissé à votre discrétion du
moment que vous n'oubliez pas de fichiers.
## Signature du rendu
Deux méthodes sont utilisables pour signer votre rendu :
* signature du courriel ;
* signature de la tarball.
Dans les deux cas, si vous n'en avez pas déjà une, vous devrez créer une clef
PGP à **votre nom et prénom**.
Pour valider la signature, il est nécessaire d'avoir reçu la clef publique
**séparément**. Vous avez le choix de la téléverser sur un serveur de clefs,
soit de me fournir votre clef en main propre, soit de l'envoyer dans un
courriel **distinct**.
### Signature du courriel
[Enigmail](https://enigmail.net) est une extension très bien réputée pour
signer ses courriels depuis Thunderbird.
Utilisez le service automatique <signcheck@nemunai.re> pour savoir si votre
message est correctement signé et que je suis en mesure de vérifier la
signature.
### Astuces
#### No public key
Si vous recevez un rapport avec l'erreur suivante :
<div lang="en-US">
```
[FAIL] Bad signature. Here is the gnupg output:
gpg: Signature made Tue Jan 01 16:42:23 2014 CET
gpg: using RSA key 842807A84573CC96
gpg: requesting key E2CCD99DD37BD32E from hkp server pool.sks-keyservers.net
gpg: Can't check signature: No public key
```
</div>
C'est que votre clef publique n'est pas dans mon trousseau et que les méthodes
de récupération automatique n'ont pas permis de la trouver. Uploadez votre
clef sur un serveur de clefs (et attendez quelques minutes sa propagation) ou
envoyez un courriel au service avec votre clef publique en pièce-jointe, avant
de retenter votre rendu.
#### Not explicit username
Si vous recevez un rapport avec l'erreur suivante :
<div lang="en-US">
```
[FAIL] The username of your key is not explicit, I can't find you.
```
</div>
Votre clef ne contient sans doute pas vos noms et prénoms ou l'adresse
électronique associée à la clef n'est pas celle que j'ai dans ma base de
données.
#### I've decided to skip your e-mail
Si vous recevez un rapport concluant ainsi :
<div lang="en-US">
```
After analyzing your e-mail, I've decided to SKIP it.
```
</div>
Cela signifie que la lecture de votre courriel qui a été préférée n'est pas
celle d'un rendu. Vérifiez que vous n'envoyez pas votre clef publique avec
votre rendu. En effet, lorsqu'une clef publique et un rendu se trouvent dans le
même courriel, seul l'import de la clef est pris en compte ; la tarball de
rendu est laissée de côté.

BIN
tutorial/ansible/ttrss.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB