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
|
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
|
Après cet échauffement, vous devriez être prêt à créer un *playbook*
|
||||||
- php-fpm
|
dédié à l'installation de [Tiny Tiny RSS](https://tt-rss.org/) :
|
||||||
- mysql-server
|
|
||||||
|
![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
|
Tous les éléments de configuration (mot de passes de connexion à la
|
||||||
- php
|
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
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
|
Vous ajouterez enfin une tâche hebdomadaire de sauvegarder de la base
|
||||||
Création de la base de données
|
de données. Le *dump* obtenu est à placer dans `/var/backups/`.
|
||||||
------------------------------
|
|
||||||
|
|
||||||
- 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
|
|
||||||
------------------------------
|
|
||||||
|
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