Compare commits

..

4 Commits

Author SHA1 Message Date
Francois Lesueur
e9ee502ae4 ajout doc proxy upstream 2023-03-02 10:49:20 +01:00
Francois Lesueur
8569a47c03 augmentation taille cache squid 2023-03-01 17:44:49 +01:00
Francois Lesueur
326f6d7871 typo sur le switch branch inutile 2023-03-01 15:41:10 +01:00
bdd7f98379 Merge pull request 'Migration de la VM vers SNSTER' (#1) from develop-snster into master
Reviewed-on: #1
2023-03-01 15:28:07 +01:00
4 changed files with 40 additions and 20 deletions

View File

@ -28,7 +28,6 @@ Vous avez besoin de [vagrant](https://www.vagrantup.com/), [VirtualBox](https://
git clone https://git.kaz.bzh/KAZ/kaz-vagrant.git # pour essayer 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 git clone git+ssh://git@git.kaz.bzh:2202/KAZ/kaz-vagrant.git # pour contribuer
cd kaz-vagrant/ cd kaz-vagrant/
git switch develop-snster # dans les 2 cas
``` ```
* (Optionnel) Ajustez éventuellement la mémoire et les cpus utilisés dans Vagrantfile (par défaut 4GB et 2 vCPUs) * (Optionnel) Ajustez éventuellement la mémoire et les cpus utilisés dans Vagrantfile (par défaut 4GB et 2 vCPUs)
@ -40,23 +39,6 @@ vagrant up
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 plus lent qu'en natif... Comptez entre 40 minutes et quelques heures, selon la connexion réseau et les performances de la machine. 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 plus lent qu'en natif... Comptez entre 40 minutes et quelques heures, selon la connexion réseau et les performances de la machine.
## Mise au point
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 :
```bash
NOKAZ="true" vagrant up
```
Dans ce cas, il faudra ensuite lancer dans la VM :
```bash
KAZGUARD="true" /root/vm-install-kaz.sh
```
Pour détruire la VM et recommencer :
```bash
vagrant destroy
```
## Utilisation ## Utilisation
@ -109,7 +91,30 @@ Vous pouvez également démarrer firefox avec les URL suivantes:
* https://cloud.kaz.sns/login (compte contact1@kaz.local créé, mot de passe totototototototo1234 ) * https://cloud.kaz.sns/login (compte contact1@kaz.local créé, mot de passe totototototototo1234 )
* https://sondage.kaz.sns * https://sondage.kaz.sns
Il vous faudra accepter les alertes de sécurité pour certificat absent (web et messagerie) Il vous faudra accepter les éventuelles alertes de sécurité pour certificat absent (web et messagerie)
## Mise au point
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 :
```bash
NOKAZ="true" vagrant up
```
Dans ce cas, il faudra ensuite lancer dans la VM :
```bash
KAZGUARD="true" /root/vm-install-kaz.sh
```
Pour détruire la VM et recommencer :
```bash
vagrant destroy
```
## Accélération de la construction avec un proxy cache local
Au tout début de la construction de la VM, un proxy Squid est installé au niveau de la VM. Il fait du cache et est ensuite utilisé lors des apt-get du provisionning de la VM puis lors des constructions des conteneurs LXC et des dockers. Certains téléchargements ne sont pas encore mis en cache (soit parce que certains téléchargements se font hors de ce proxy, soit par l'utilisation du HTTPS qui n'est pas (encore) intercepté pour faire ce cache), mais cela diminue déjà beaucoup le trafic réseau lors de la construction et lors des reconstructions partielles ensuite.
Il est possible de configurer ce proxy pour utiliser un proxy du réseau local à son tour. L'intérêt est d'avoir un cache persistant lors de la reconstruction de la VM, ou de pouvoir rediriger certaines requêtes (dépôts Debian ou Alpine) vers des miroirs locaux. Pour cela, il faut un fichier `files/customVM.sh`. Un fichier `files/customVM.sh.dist` est fourni en exemple : il suffit de le renommer en `customVM.sh`, puis de modifier l'IP du proxy upstream dans la ligne `cache_peer`.
## Installation avancée ## Installation avancée

14
files/customVM.sh.dist Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
# Upstream proxy
echo "cache_peer 192.168.0.121 parent 3128 0 no-query default
acl all src 0.0.0.0/0.0.0.0
http_access allow all
never_direct allow all" >> /etc/squid/squid.conf
service squid restart
# Un peu de customisation
DEBIAN_FRONTEND=noninteractive apt-get install -y vim rsync
rsync -a /vagrant/files/.emacs* /root/

View File

@ -93,7 +93,7 @@ echo "{
{ {
\"httpProxy\": \"http://$proxy:3142\", \"httpProxy\": \"http://$proxy:3142\",
\"httpsProxy\": \"http://$proxy:3142\", \"httpsProxy\": \"http://$proxy:3142\",
\"noProxy\": \"*.sns,127.0.0.0/8\" \"noProxy\": \"*.sns,127.0.0.0/8,100.64.0.0/10\"
} }
} }
}" > /root/.docker/config.json }" > /root/.docker/config.json

View File

@ -31,6 +31,7 @@ export DebugLog="${VAGRANT_SRC_DIR}/log/log-vagrant-$(date +%y-%m-%d-%T)-"
DEBIAN_FRONTEND=noninteractive apt-get install -y squid DEBIAN_FRONTEND=noninteractive apt-get install -y squid
sed -i -e "s/#http_access allow localnet/http_access allow localnet/" /etc/squid/squid.conf sed -i -e "s/#http_access allow localnet/http_access allow localnet/" /etc/squid/squid.conf
echo "cache_dir aufs /var/spool/squid 5000 14 256 echo "cache_dir aufs /var/spool/squid 5000 14 256
maximum_object_size 4000 MB
http_port 3142" >> /etc/squid/squid.conf http_port 3142" >> /etc/squid/squid.conf
service squid restart service squid restart
echo "Acquire::http::Proxy \"http://127.0.0.1:3142\";" > /etc/apt/apt.conf.d/01proxy; # utilisation de apt-cacher-ng echo "Acquire::http::Proxy \"http://127.0.0.1:3142\";" > /etc/apt/apt.conf.d/01proxy; # utilisation de apt-cacher-ng