tuto-ansible: deploiement-svc done
This commit is contained in:
parent
b786830dc8
commit
169cfbd2ff
@ -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
119
tutorial/ansible/rendu.md
Normal 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
BIN
tutorial/ansible/ttrss.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
Reference in New Issue
Block a user