kaz-vagrant/README.md

125 lines
5.3 KiB
Markdown
Raw Permalink Normal View History

2022-11-30 19:43:06 +01:00
# kaz-vagrant
[Kaz](https://kaz.bzh/) est un CHATONS du Morbihan. Nous proposons ici un moyen de le répliquer dans une VM. Il y a des éléments de configuration à définir avant d'initialiser ce simulateur.
Le principe est de faire fonctionner un simulateur de notre CHATONS dans une VirtualBox pour mettre au point nos différents services.
Nous utilisons :
* Vagrant pour automatiser la création de la Machine Virtuelle
2023-01-14 09:11:53 +01:00
* VirtualBox pour une VM isolée
* [SNSTER](https://framagit.org/flesueur/snster) pour créer des services internet tiers et notre serveur
* LXC pour faire tourner ces services dans des conteneurs distincts (ie, kaz-prod est un conteneur LXC)
2022-11-30 19:43:06 +01:00
* Docker pour chaque service de notre serveur
2023-01-14 09:11:53 +01:00
À la fin, nous obtenons une maquette d'un petit internet simulé, avec du DNS, des mails tiers, et notre serveur kaz-prod dans un coin.
2023-01-15 21:03:43 +01:00
![topologie](/doc/images/topologie.png)
2023-01-14 09:11:53 +01:00
2022-11-30 19:43:06 +01:00
## Pré-requis
Vous avez besoin de [vagrant](https://www.vagrantup.com/), [VirtualBox](https://www.virtualbox.org/) et éventuellement git.
2023-02-02 10:26:00 +01:00
UDP/53 ne doit pas être filtré depuis votre poste (par un firewall d'entreprise par exemple). Pour tester:
```bash
# dig @80.67.169.12 www.kaz.bzh
```
2022-11-30 19:43:06 +01:00
## Installation
2023-01-14 09:11:53 +01:00
* Télécharger le dépôt kaz-vagrant, branche develop-snster, ou utilisez la commande git :
2022-11-30 19:43:06 +01:00
```bash
git clone https://git.kaz.bzh/KAZ/kaz-vagrant.git # pour essayer
git clone git+ssh://git@git.kaz.bzh:2202/KAZ/kaz-vagrant.git # pour contribuer
cd kaz-vagrant/
2023-02-06 15:39:32 +01:00
git switch develop-snster # dans les 2 cas
2022-11-30 19:43:06 +01:00
```
* Personalisez votre simulateur avec la commande (au besoin ajustez la mémoire et les cpus utilisés dans Vagrantfile) :
```bash
vagrant plugin install vagrant-disksize
2023-01-13 11:31:00 +01:00
vagrant plugin install vagrant-vbguest
2022-11-30 19:43:06 +01:00
./init.sh # vous pouvez laisser les choix par défaut
```
* Pour créer tout l'univers Kaz il faut se placer dans le répertoire et lancer la commande :
```bash
vagrant up
```
2023-01-14 09:11:53 +01:00
Cette étape peut-être (très) longue. Notamment, la construction de kaz-prod se fait dans un conteneur LXC, dans lequel les overlays docker passent par un filesystem FUSE beaucoup plus lent qu'en natif...
2022-11-30 19:43:06 +01:00
## Mise au point
2023-01-18 12:13:48 +01:00
Il est possible d'interrompre la création à la coquille vide (juste la VM sans les services KAZ) pour des question de mise au point avec la commande :
2022-11-30 19:43:06 +01:00
```bash
NOKAZ="true" vagrant up
```
2023-01-18 12:13:48 +01:00
Dans ce cas, il faudra ensuite lancer dans la VM :
2022-11-30 19:43:06 +01:00
```bash
2023-01-18 12:13:48 +01:00
KAZGUARD="true" /root/vm-install-kaz.sh
2022-11-30 19:43:06 +01:00
```
Pour détruire la VM et recommencer :
```bash
vagrant destroy
```
## Utilisation
Les utilisateurs créés sont
* debian/debian
* root/root.
2023-01-14 09:11:53 +01:00
Si vous avec laissé la création de Kaz, il faut bien attendre la fermeture automatique de la fenêtre et l'apparition de l'écran de connexion (on vous a dit que c'était long).
2022-11-30 19:43:06 +01:00
2023-01-14 09:11:53 +01:00
Lors du démarrage de la VM, il faut lancer SNSTER et éventuellement les conteneurs :
2022-11-30 19:43:06 +01:00
```bash
2023-01-14 09:11:53 +01:00
cd /root/snster-kaz
snster start
2023-01-14 09:16:52 +01:00
```
Normalement, kaz-prod lance automatiquement les dockers (dans son rc.local), mais si ça ne marche pas bien il peut falloir les relancer (que se passe-t-il si on relance container.sh pendant que container.sh n'est pas encore fini ? faut-il l'enlever du rc.local ? Le lancement initial peut rater, probablement si le DNS n'est pas encore fonctionnel lors du lancement, à mettre au point et peut-être enlever du rc.local ?)
```bash
2023-01-14 09:11:53 +01:00
snster attach kaz-prod -x /kaz/bin/container.sh start
2022-11-30 19:43:06 +01:00
```
2023-01-14 09:11:53 +01:00
Vous pouvez alors (toutes les commandes snster doivent être exécutées dans `/root/snster-kaz`) :
* Afficher un bureau graphique sur une machine tierce à Kaz : `snster display isp-a-home`. Sur cette machine, vous pouvez :
* Ouvrir Firefox et naviguer vers :
* `https://www.kaz.sns`, le Kaz interne à la VM
* `https://listes.kaz.sns`, le sympa interne à la VM
* `https://www.kaz.bzh`, le vrai Kaz
* Ouvrir claws-mail et retrouver les comptes mails configurés :
* `contact1@kaz.sns` à `contact4@kaz.sns`, hébergés sur le kaz-prod de la VM
* `email@isp-a.sns`, hébergé dans le conteneur LXC isp-a-infra
* Travailler sur kaz-prod : `snster attach kaz-prod`
* Afficher un plan de réseau : `snster print`
2023-01-31 14:52:38 +01:00
* Le système de fichiers de kaz-prod est accessible directement dans la VM:
* `/kaz-prod/` [VM] correspond à `/` [kaz-prod]
* `/kaz` [VM] correspond à `/kaz` [kaz-prod]
* Il est probablement pratique d'installer son environnement de développement sur la VM, avec ses clés SSH et son éditeur favori.
2023-01-14 09:11:53 +01:00
Il y a un aperçu de l'état des services avec l'url https://kaz.sns/status/allServices.html
2022-11-30 19:43:06 +01:00
![status](/doc/images/allServices.jpg)
Les erreurs 502 correspondent à des fonctions en cours de développement. Les message "Can't open this page" correspond au fait que le services refuse pour des raison de sécurité de de fonctionner embarqué dans une page.
Vous pouvez également démarrer firefox avec les URL suivantes:
2023-01-14 09:11:53 +01:00
* https://www.kaz.sns
* https://tableur.kaz.sns
* https://pad.kaz.sns
* https://depot.kaz.sns
* https://agora.kaz.sns/login (compte contact1@kaz.local créé, mot de passe toto)
* https://cloud.kaz.sns/login (compte contact1@kaz.local créé, mot de passe totototototototo1234 )
* https://sondage.kaz.sns
2022-11-30 19:43:06 +01:00
Il vous faudra accepter les alertes de sécurité pour certificat absent (web et messagerie)
## Installation avancée
L'installation avancée, notamment pour utiliser d'autres miroirs ou des caches APT, est décrite dans le fichier [DETAILS.md](DETAILS.md).