develop-snster #2
2
.gitignore
vendored
2
.gitignore
vendored
@ -9,4 +9,4 @@ DEADJOE
|
||||
/files/kaz/git
|
||||
/files/kaz/log
|
||||
/files/customVM.sh
|
||||
/files/snster-kaz/kaz/prod/customKaz.SH
|
||||
/files/snster-kaz/kaz/prod/customKaz.sh
|
||||
|
11
README.md
11
README.md
@ -112,9 +112,16 @@ 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.
|
||||
Au tout début de la construction de la VM, un proxy Squid et un proxy Dockerhub 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. 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`.
|
||||
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`. Il s'adressera par exemple à un squid sur le réseau local.
|
||||
* Un fichier `files/snster-kaz/kaz/prod/customKaz.sh`. Un fichier `files/snster-kaz/kaz/prod/customKaz.sh.dist` est fourni en exemple : il suffit de le renommer en `customKaz.sh`, puis de modifier l'IP du registre docker sur le réseau local. Pour installer ce registre sur une Debian :
|
||||
* `apt install docker-registry`
|
||||
* Éditer `/etc/docker/registry/config.yml` :
|
||||
* Enlever la section `auth`
|
||||
* Ajouter `proxy:
|
||||
remoteurl: https://registry-1.docker.io`
|
||||
|
||||
## Installation avancée
|
||||
|
||||
|
7
files/snster-kaz/kaz/prod/customKaz.sh.dist
Normal file
7
files/snster-kaz/kaz/prod/customKaz.sh.dist
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Upstream registry
|
||||
cat > /etc/docker/daemon.json <<EOF
|
||||
{ "storage-driver": "btrfs",
|
||||
"registry-mirrors": ["http://192.168.0.121:5000"] }
|
||||
EOF
|
@ -47,25 +47,6 @@ fi
|
||||
# On met le GUARD pour la mise au point
|
||||
echo "export SNSTERGUARD='true'" >> /root/.bashrc
|
||||
|
||||
# On active fuse-overlayfs pour docker
|
||||
cat >> /etc/docker/daemon.json <<EOF
|
||||
{ "storage-driver": "btrfs" }
|
||||
EOF
|
||||
service docker restart
|
||||
|
||||
#mknod -m 666 /dev/fuse c 10 229
|
||||
#echo -e '#!/bin/sh\nmknod -m 666 /dev/fuse c 10 229' >> /etc/rc.local
|
||||
#chmod +x /etc/rc.local
|
||||
|
||||
# lxc.cgroup2.devices.allow = b 7:* rwm
|
||||
# lxc.cgroup2.devices.allow = c 10:237 rwm
|
||||
#
|
||||
# mknod -m 666 /dev/loop0 b 7 0
|
||||
# mknod -m 666 /dev/loop-control c 10 237
|
||||
# truncate -s 30G /root/varlibdocker.img
|
||||
# mkfs.btrfs /root/varlibdocker.img
|
||||
# losetup -f /root/varlibdocker.img
|
||||
# mount /dev/loop0 /var/lib/docker
|
||||
|
||||
# On place les certifs
|
||||
if [ -d letsencrypt ]; then
|
||||
@ -101,6 +82,32 @@ echo "http_proxy=\"http://$proxy:3142\"
|
||||
https_proxy=\"http://$proxy:3142\"
|
||||
" >> /etc/default/docker
|
||||
|
||||
# On active btrfs+proxy pour docker
|
||||
cat >> /etc/docker/daemon.json <<EOF
|
||||
{ "storage-driver": "btrfs",
|
||||
"registry-mirrors": ["http://$proxy:5000"] }
|
||||
EOF
|
||||
service docker restart
|
||||
|
||||
# clear apt cache
|
||||
DEBIAN_FRONTEND=noninteractive apt-get autoremove -y
|
||||
DEBIAN_FRONTEND=noninteractive apt-get clean
|
||||
|
||||
if [ -f "${DIR}/customKaz.sh" ]; then
|
||||
bash "${DIR}/customKaz.sh"
|
||||
fi
|
||||
|
||||
# notes fuse-overlayfs :
|
||||
#mknod -m 666 /dev/fuse c 10 229
|
||||
#echo -e '#!/bin/sh\nmknod -m 666 /dev/fuse c 10 229' >> /etc/rc.local
|
||||
#chmod +x /etc/rc.local
|
||||
|
||||
# lxc.cgroup2.devices.allow = b 7:* rwm
|
||||
# lxc.cgroup2.devices.allow = c 10:237 rwm
|
||||
#
|
||||
# mknod -m 666 /dev/loop0 b 7 0
|
||||
# mknod -m 666 /dev/loop-control c 10 237
|
||||
# truncate -s 30G /root/varlibdocker.img
|
||||
# mkfs.btrfs /root/varlibdocker.img
|
||||
# losetup -f /root/varlibdocker.img
|
||||
# mount /dev/loop0 /var/lib/docker
|
||||
|
@ -45,7 +45,7 @@ http_port 3142" >> /etc/squid/squid.conf
|
||||
# MAJ et Install
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y upgrade
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y apg curl git sudo unzip rsync firefox-esr tcpdump net-tools mousepad wireshark swapspace whois python3-lxc lxc python3-pygraphviz python3-pil python3-yaml imagemagick btrfs-progs # could be with --no-install-recommends
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y apg curl git sudo unzip rsync firefox-esr tcpdump net-tools mousepad wireshark swapspace whois python3-lxc lxc python3-pygraphviz python3-pil python3-yaml imagemagick btrfs-progs docker-registry # could be with --no-install-recommends
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y xfce4 lightdm xfce4-terminal xserver-xorg gitk # needs to install recommends
|
||||
|
||||
ssh-keygen -t rsa -b 4096 -N '' <<<$'\ny'
|
||||
@ -155,6 +155,14 @@ EOF
|
||||
ln -s ../../local/_wildcard.kaz.sns-key.pem /etc/letsencrypt/live/kaz.sns/privkey.pem
|
||||
fi
|
||||
|
||||
# Cache docker registry
|
||||
echo "proxy:
|
||||
remoteurl: https://registry-1.docker.io
|
||||
auth:
|
||||
none:
|
||||
" >> /etc/docker/registry/config.yml
|
||||
|
||||
|
||||
# clear apt cache
|
||||
DEBIAN_FRONTEND=noninteractive apt-get autoremove -y
|
||||
DEBIAN_FRONTEND=noninteractive apt-get clean
|
||||
@ -212,3 +220,11 @@ reboot
|
||||
# KAZPROD="snster -c /root/snster-kaz -t /root/templates attach kaz-prod -x"
|
||||
# ${KAZPROD} "docker cp /etc/letsencrypt/local/rootCA.pem sympaServ:/usr/local/share/ca-certificates/rootCA.crt"
|
||||
# ${KAZPROD} "docker exec -it sympaServ update-ca-certificates"
|
||||
|
||||
# Interception https avec squid-openssl (nok pour dockerhub) :
|
||||
# http_port 3142 tcpkeepalive=60,30,3 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB tls-cert=/etc/letsencrypt/local/rootCA.pem tls-key=/etc/letsencrypt/local/rootCA-key.pem tls-dh=prime256v1:/etc/letsencrypt/local/dhparam.pem
|
||||
# sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/ssl_db -M 4MB
|
||||
# sslcrtd_children 5
|
||||
# ssl_bump server-first all
|
||||
# ssl_bump stare all
|
||||
# sslproxy_cert_error deny all
|
||||
|
Loading…
Reference in New Issue
Block a user