kaz-vagrant/CACHING.md
Francois Lesueur bed3b4490e update doc
2023-03-06 10:38:30 +01:00

44 lines
2.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Utilisation d'un cache local
Au tout début de la construction de la VM, un proxy Squid et un proxy Dockerhub (docker-registry) sont installés au niveau de la VM. Ils font du cache et sont ensuite utilisé lors des apt-get du provisionning de la VM puis lors des constructions des conteneurs LXC et des dockers. Quelques 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 les IP du proxy et du registry Docker upstreams dans les premières lignes. Il est évidemment possible de n'activer que l'une des 2 fonctionnalités (soit que le proxy http externe, soit que le docker registry externe) en commentant les lignes associées.
## Installation d'un proxy squid sur l'hôte
Pour installer un squid sur l'hôte :
* `apt install squid`
* Éditer `/etc/squid/squid.conf` :
* Décommenter la ligne `#http_access allow localnet` (ATTENTION ! Il faut bien décommenter cette ligne existante, et non l'ajouter à la fin, sa place dans le fichier de conf est importante)
* Ajouter à la fin :
```
cache_dir aufs /var/spool/squid 5000 14 256
maximum_object_size 4000 MB
http_port 3142
```
## Installation d'un docker-registry sur l'hôte
Pour installer un docker-registry sur l'hôte :
* `apt install docker-registry`
* Éditer `/etc/docker/registry/config.yml` :
* Enlever la section `auth`
* Ajouter à la fin :
```yaml
proxy:
remoteurl: https://registry-1.docker.io
```
## Configurer une IP pérenne
Si vous utilisez un ordinateur portable, votre adresse IP changera sûrement au grè de vos connexions à l'Internet. Dans ce cas il est préférable d'utiliser une adresse stable pour designer votre mandataire. Après vous êtes connecté, il faudra ajouter une adresse à la carte réseaux qui est active.
Dans l'exemple suivant, nous imaginons que la connexion utilise le wifi `wlo1̀`, que nous utilisons une classe privée locale `192.168.128.0/24` et que notre machine utilisera la première adresse.
```bash
/sbin/ifconfig
/sbin/ifconfig wlo1:0 192.168.128.1/24
/sbin/ifconfig wlo1:0 up
```