From e9ee502ae495d176ea8fa72898ffbc2878051a66 Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Thu, 2 Mar 2023 10:49:20 +0100 Subject: [PATCH 01/10] ajout doc proxy upstream --- README.md | 42 +++++++++++++++----------- files/customVM.sh.dist | 14 +++++++++ files/snster-kaz/kaz/prod/provision.sh | 2 +- 3 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 files/customVM.sh.dist diff --git a/README.md b/README.md index e6c41a4..fcb8274 100644 --- a/README.md +++ b/README.md @@ -39,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. -## 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 @@ -108,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://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 diff --git a/files/customVM.sh.dist b/files/customVM.sh.dist new file mode 100644 index 0000000..3915239 --- /dev/null +++ b/files/customVM.sh.dist @@ -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/ diff --git a/files/snster-kaz/kaz/prod/provision.sh b/files/snster-kaz/kaz/prod/provision.sh index 182fb9c..6447744 100644 --- a/files/snster-kaz/kaz/prod/provision.sh +++ b/files/snster-kaz/kaz/prod/provision.sh @@ -93,7 +93,7 @@ echo "{ { \"httpProxy\": \"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 From 3974c20a8452ed8dedac01f040d655b1eff6b073 Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Thu, 2 Mar 2023 12:37:32 +0100 Subject: [PATCH 02/10] update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6261880..1a79501 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ DEADJOE /files/kaz/git /files/kaz/log /files/customVM.sh +/files/snster-kaz/kaz/prod/customKaz.SH From 4c1e7bde3359aad7181f68b9cb087d7ca15decf1 Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Thu, 2 Mar 2023 12:38:30 +0100 Subject: [PATCH 03/10] plus de caches --- .gitignore | 2 +- README.md | 13 ++++-- files/snster-kaz/kaz/prod/customKaz.sh.dist | 7 ++++ files/snster-kaz/kaz/prod/provision.sh | 45 ++++++++++++--------- files/vm-provision.sh | 18 ++++++++- 5 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 files/snster-kaz/kaz/prod/customKaz.sh.dist diff --git a/.gitignore b/.gitignore index 1a79501..819a9c0 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/README.md b/README.md index fcb8274..5a79830 100644 --- a/README.md +++ b/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. - -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`. +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 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 diff --git a/files/snster-kaz/kaz/prod/customKaz.sh.dist b/files/snster-kaz/kaz/prod/customKaz.sh.dist new file mode 100644 index 0000000..a20ba45 --- /dev/null +++ b/files/snster-kaz/kaz/prod/customKaz.sh.dist @@ -0,0 +1,7 @@ +#!/bin/bash + +# Upstream registry +cat > /etc/docker/daemon.json <> /root/.bashrc -# On active fuse-overlayfs pour docker -cat >> /etc/docker/daemon.json <> /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 <> /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 diff --git a/files/vm-provision.sh b/files/vm-provision.sh index b7b9f19..ab9e31d 100755 --- a/files/vm-provision.sh +++ b/files/vm-provision.sh @@ -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 From aa3c77c29ae32925f969904be7b91e3a7c5d11df Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Thu, 2 Mar 2023 16:48:10 +0100 Subject: [PATCH 04/10] cache docker + squid vm ou externe --- README.md | 23 ++++++++------- files/customVM.sh.dist | 40 ++++++++++++++++++++++---- files/snster-kaz/kaz/prod/provision.sh | 15 ++++++---- files/vm-provision.sh | 3 ++ 4 files changed, 60 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 5a79830..ba09cf3 100644 --- a/README.md +++ b/README.md @@ -112,16 +112,19 @@ 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 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 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` +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. + +Pour installer un Squid sur l'hôte : TODO + +Pour installer un docker-registry sur l'hôte : +* `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 diff --git a/files/customVM.sh.dist b/files/customVM.sh.dist index 3915239..c05d7d6 100644 --- a/files/customVM.sh.dist +++ b/files/customVM.sh.dist @@ -1,14 +1,42 @@ #!/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 +PROXY="192.168.0.121:3128" +REGISTRY="192.168.0.121:5000" -service squid restart +# Pour le proxy http/https (https sans cache) avec iptables +cat >> /etc/rc.local <> /etc/sysctl.conf +sysctl -p +# fin proxy +# Pour le cache docker +cat >> /etc/rc.local <> /etc/squid/squid.conf +#service squid restart diff --git a/files/snster-kaz/kaz/prod/provision.sh b/files/snster-kaz/kaz/prod/provision.sh index a5f1f60..a14977a 100644 --- a/files/snster-kaz/kaz/prod/provision.sh +++ b/files/snster-kaz/kaz/prod/provision.sh @@ -66,6 +66,8 @@ proxy=$(/sbin/ip route | awk '/default/ { print $3 }' | head -1) sed -i -e "s/^proxy.*$/proxy=$proxy/" /usr/local/sbin/detect_proxy.sh #echo "export http_proxy=\"http://$proxy:3142\"" > /etc/profile.d/proxy.sh #echo "export https_proxy=\"http://$proxy:3142\"" >> /etc/profile.d/proxy.sh + +# Proxy pour les environnements durant les dockerbuilds mkdir /root/.docker echo "{ \"proxies\": @@ -74,15 +76,18 @@ echo "{ { \"httpProxy\": \"http://$proxy:3142\", \"httpsProxy\": \"http://$proxy:3142\", - \"noProxy\": \"*.sns,127.0.0.0/8,100.64.0.0/10\" + \"noProxy\": \"*.sns,127.0.0.0/8,100.64.0.0/10,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16\" } } }" > /root/.docker/config.json -echo "http_proxy=\"http://$proxy:3142\" -https_proxy=\"http://$proxy:3142\" -" >> /etc/default/docker -# On active btrfs+proxy pour docker +# Proxy pour les docker pull -> commenté car pas de cache avec dockerhub +# echo "http_proxy=\"http://$proxy:3142\" +# https_proxy=\"http://$proxy:3142\" +# no_proxy=\"*.sns,127.0.0.0/8,100.64.0.0/10,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16\" +# " >> /etc/default/docker + +# On active btrfs+registry miroir pour docker cat >> /etc/docker/daemon.json < Date: Thu, 2 Mar 2023 17:07:01 +0100 Subject: [PATCH 05/10] rm customkaz dans prod --- files/snster-kaz/kaz/prod/customKaz.sh.dist | 7 ------- files/snster-kaz/kaz/prod/provision.sh | 3 --- 2 files changed, 10 deletions(-) delete mode 100644 files/snster-kaz/kaz/prod/customKaz.sh.dist diff --git a/files/snster-kaz/kaz/prod/customKaz.sh.dist b/files/snster-kaz/kaz/prod/customKaz.sh.dist deleted file mode 100644 index a20ba45..0000000 --- a/files/snster-kaz/kaz/prod/customKaz.sh.dist +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -# Upstream registry -cat > /etc/docker/daemon.json < Date: Mon, 6 Mar 2023 10:38:30 +0100 Subject: [PATCH 06/10] update doc --- CACHING.md | 43 ++++++++++++++ DETAILS.md | 171 ----------------------------------------------------- README.md | 34 +++-------- 3 files changed, 50 insertions(+), 198 deletions(-) create mode 100644 CACHING.md delete mode 100644 DETAILS.md diff --git a/CACHING.md b/CACHING.md new file mode 100644 index 0000000..8b20e7b --- /dev/null +++ b/CACHING.md @@ -0,0 +1,43 @@ +# 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 +``` diff --git a/DETAILS.md b/DETAILS.md deleted file mode 100644 index 897dc7b..0000000 --- a/DETAILS.md +++ /dev/null @@ -1,171 +0,0 @@ -# kaz-vagrant - -(ATTENTION, NON À JOUR POUR SNSTER) - -[Kaz](https://kaz.bzh/) est un CHATONS du Morbihan. Nous proposons ici un moyen de le répliquer dans d'autres lieux. 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 - * VirtualBox pour simuler notre serveur - * Docker pour chaque service de notre serveur - -## Pré-requis - -Dans la suite, on imagine que vous disposer d'une machine sous Linux (par exemple dernière version de [Debian](https://fr.wikipedia.org/wiki/Debian)) - -Vous devez disposer d'un minimum de paquets : - -```bash -wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add - -wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | apt-key add - -apt install software-properties-common -add-apt-repository "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" -apt update -apt install git vagrant virtualbox-6.1 linux-image -vagrant plugin install vagrant-disksize -``` -Lancez VirtualBox et vérifiez les mises à jours. - -Par la suite, si vous ne disposez pas d'un bon débit, il est conseiller d'installer `approx` et `squid` pour ne pas recharger systématiquement tous les paquets depuis l'internet. - -pour `approx`, vous pouvez choisir une partition de stockage `/mnt/big/approx` -```bash -apt-get install approx -netstat -ant | grep 9999 -mkdir /mnt/big/approx -chown -R approx : /mnt/big/approx -rmdir /var/cache/approx -ln -s /mnt/big/approx/ /var/cache/ -cd /etc/apt/ -grep -E "^[^#]" sources.list | cut -d " " -f2 | sort -u >> /etc/approx/approx.conf -``` - -Pour `squid`, vous pouvez choisir une partition de stockage `/mnt/big/squid` - -```bash -apt-get install squid -emacs /etc/squid/squid.conf - -mkdir /mnt/big/squid -chown -R proxy: /mnt/big/squid -rmdir /var/spool/squid/ -ln -s /mnt/big/squid/ /var/spool/squid/ - -/etc/init.d/squid restart -``` - -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/25̀ et que notre machine utilisera la première adresse. - -```bash -/sbin/ifconfig -/sbin/ifconfig wlo1:0 192.168.128.1/25 -/sbin/ifconfig wlo1:0 up -/sbin/ifconfig -``` - -## Installation - -* Télécharger le dépôt kaz-vagrant ou utilisez la commande : -```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/ -``` -* 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 -init.sh -``` -* Personnalisez le miroir des paquets Debian si vous en avez un (sinon ignorez cette étape). -Pour cela créez un fichier qui défini des variables d'environnements qui pointent vers l'hôte et le port (dans l'exemple suivant on prend (machine : **__mirror-host__**, port : **__mirror-port__**) dans un fichier `files/.apt-mirror-config` comme ci-dessous -``` -APT_MIRROR_DEBIAN=mirror-host:mirror-port -APT_MIRROR_SECURITY=mirror-host:mirror-port -``` - -VirtualBox utilise un réseau privé 172.17.X.X - -Pour pouvoir désigner dans conflit votre PC comme mirror, vous pouvez déclarer un autre réseau (par exemple 172.19.X.X) -```bash -/sbin/ifconfig (eno2) add 172.19.1.1 netmask 255.255.255.0 -``` -Dans ce cas, il faut refaire le init.sh pour mettre à jour l'adresse IP du serveur mirroir. - - -* Pour créer tout l'univers Kaz il faut se placer dans le répertoire et lancer la commande : -```bash -vagrant up -``` -Il faudra répondre "docker0" à la question "Which interface should the network bridge to?" - - -Il est possible d'interrompre la création à la coquille vide (sans les services) pour des question de mise au point avec la commande : -```bash -NOKAZ="true" vagrant up -``` -Il se peut que le répertoire `/vagrant` ne soit pas monté. Dans ce cas. Quittez la VM et relancez `vagrant up`. - -Il est possible de choisir de tester une autres branche de développement du dépôt de Kaz. -```bash -KAZBRANCH="develop" vagrant up -``` - -* Une fois la commande de création de l'univers, il faut patienter... - -* Après il faut patienter encore un peu si on a pas la fibre ... - -La fenêtre de virtualbox va se lancer et l'installation va se poursuivre - -La progression est visible dans la fenêtre où la commande vagrant est lancée. - -## Utilisation - -Les utilisateurs créés sont - * debian/debian - * root/root. - -Si vous avec laissé la création des dockers, 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). - - -Vous pouvez alors démarrer le client de messagerie clawsmail dans lequel 4 comptes ont été paramétrés (contact1@kaz.local, contact2@kaz.local, contact3@kaz.local, contact4@kaz.local) - -Il y a un aperçu de l'état des services avec l'url https://kaz.local/status/allServices.html - -![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: - * https://www.kaz.local - * https://tableur.kaz.local - * https://pad.kaz.local - - * https://depot.kaz.local - * https://agora.kaz.local/login (compte contact1@kaz.local créé, mot de passe toto) - * https://cloud.kaz.local/login (compte contact1@kaz.local créé, mot de passe totototototototo1234 ) - * https://sondage.kaz.local - -Il vous faudra accepter les alertes de sécurité pour certificat absent (web et messagerie) - -## Echanges avec la machine virtuelle - -En cas de nouvelle re-création, la clef privée sera mise à jour. Il faudra effacer l'ancienne pour ne pas avoir le message : -``` -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -``` - -Pour cela il faut supprimer l'entrée des hôtes connus : -```bash -ssh-keygen -f ~/.ssh/known_hosts -R "[127.0.0.1]:2222" -``` - -Pour copier des fichiers vers la machine virtuelle : -```bash -rsync -rlptDEHAX --no-o -e "ssh -p 2222 -i ~/git/kaz-vagrant/.vagrant/machines/default/virtualbox/private_key" src vagrant@127.0.0.1:/dst -``` diff --git a/README.md b/README.md index ba09cf3..80c870c 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Vous avez besoin de [vagrant](https://www.vagrantup.com/), [VirtualBox](https:// ## Installation -* Télécharger le dépôt kaz-vagrant, branche develop-snster, ou utilisez la commande git : +* Télécharger le dépôt kaz-vagrant ou utilisez la commande git : ```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 @@ -46,9 +46,7 @@ Les utilisateurs créés sont * debian/debian * root/root. -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). - -Lors du démarrage de la VM, il faut lancer SNSTER et éventuellement les conteneurs : +Lors du démarrage de la VM, il faut lancer SNSTER : ```bash cd /root/snster-kaz snster start @@ -95,37 +93,19 @@ Il vous faudra accepter les éventuelles alertes de sécurité pour certificat a ## 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 : +Pour réinstaller Kaz sur kaz-prod (avec suppression de /kaz, des volumes dockers et réinstallation complète), depuis la VM : ```bash -NOKAZ="true" vagrant up +snster attach kaz-prod -x "/root/kaz.sh" ``` -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 : +Pour détruire la VM et recommencer, depuis l'hôte : ```bash vagrant destroy +vagrant up ``` ## Accélération de la construction avec un proxy 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. - -Pour installer un Squid sur l'hôte : TODO - -Pour installer un docker-registry sur l'hôte : -* `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 - -L'installation avancée, notamment pour utiliser d'autres miroirs ou des caches APT, est décrite dans le fichier [DETAILS.md](DETAILS.md). +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. L'installation et la configuration sont décrites dans le fichier [CACHING.md](CACHING.md) From fe8ab22d15134fb3efe5de245895a31f62e4740f Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Mon, 6 Mar 2023 10:48:33 +0100 Subject: [PATCH 07/10] fix format --- CACHING.md | 3 ++- README.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CACHING.md b/CACHING.md index 8b20e7b..37a217f 100644 --- a/CACHING.md +++ b/CACHING.md @@ -31,7 +31,8 @@ proxy: ``` -## Configurer une IP pérenne +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. diff --git a/README.md b/README.md index 80c870c..3c5a5e8 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,8 @@ vagrant destroy vagrant up ``` -## Accélération de la construction avec un proxy cache local +Accélération de la construction avec un proxy 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. From f6d3134004f711219c633c0ecf6a23b5626a86e3 Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Mon, 6 Mar 2023 11:11:44 +0100 Subject: [PATCH 08/10] update doc --- CACHING.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/CACHING.md b/CACHING.md index 37a217f..790cd92 100644 --- a/CACHING.md +++ b/CACHING.md @@ -1,8 +1,12 @@ # 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 la VM pour utiliser un proxy et un registre docker du réseau local. 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. -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. +## Configuration de la VM + +Dans le dossier vagrant, 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 registre 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. D'autres modifications de la VM peuvent aussi être réalisées dans ce fichier... ## Installation d'un proxy squid sur l'hôte @@ -34,11 +38,6 @@ proxy: 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. +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. -```bash -/sbin/ifconfig -/sbin/ifconfig wlo1:0 192.168.128.1/24 -/sbin/ifconfig wlo1:0 up -``` +Il est par exemple possible d'assigner une seconde adresse à la carte loopback de votre hôte avec `/sbin/ifconfig lo:0 192.168.128.1/24` From 797d557afcdc0dfb1b6d4f46878ab9a53b67fb66 Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Mon, 6 Mar 2023 11:27:55 +0100 Subject: [PATCH 09/10] install kaz durant le snster create --- .../config => kaz-config}/container-mail.list | 0 .../config => kaz-config}/container-orga.list | 0 .../container-proxy.list | 0 .../container-withMail.list | 0 .../container-withoutMail.list | 0 .../{kaz/config => kaz-config}/dockers.env | 0 files/snster-kaz/kaz/prod/kaz.sh | 41 ++++++------------- files/snster-kaz/kaz/prod/provision.sh | 23 ++++++++--- files/vm-install-kaz.sh | 20 --------- files/vm-provision.sh | 11 ++--- 10 files changed, 32 insertions(+), 63 deletions(-) rename files/snster-kaz/kaz/prod/{kaz/config => kaz-config}/container-mail.list (100%) rename files/snster-kaz/kaz/prod/{kaz/config => kaz-config}/container-orga.list (100%) rename files/snster-kaz/kaz/prod/{kaz/config => kaz-config}/container-proxy.list (100%) rename files/snster-kaz/kaz/prod/{kaz/config => kaz-config}/container-withMail.list (100%) rename files/snster-kaz/kaz/prod/{kaz/config => kaz-config}/container-withoutMail.list (100%) rename files/snster-kaz/kaz/prod/{kaz/config => kaz-config}/dockers.env (100%) delete mode 100644 files/vm-install-kaz.sh diff --git a/files/snster-kaz/kaz/prod/kaz/config/container-mail.list b/files/snster-kaz/kaz/prod/kaz-config/container-mail.list similarity index 100% rename from files/snster-kaz/kaz/prod/kaz/config/container-mail.list rename to files/snster-kaz/kaz/prod/kaz-config/container-mail.list diff --git a/files/snster-kaz/kaz/prod/kaz/config/container-orga.list b/files/snster-kaz/kaz/prod/kaz-config/container-orga.list similarity index 100% rename from files/snster-kaz/kaz/prod/kaz/config/container-orga.list rename to files/snster-kaz/kaz/prod/kaz-config/container-orga.list diff --git a/files/snster-kaz/kaz/prod/kaz/config/container-proxy.list b/files/snster-kaz/kaz/prod/kaz-config/container-proxy.list similarity index 100% rename from files/snster-kaz/kaz/prod/kaz/config/container-proxy.list rename to files/snster-kaz/kaz/prod/kaz-config/container-proxy.list diff --git a/files/snster-kaz/kaz/prod/kaz/config/container-withMail.list b/files/snster-kaz/kaz/prod/kaz-config/container-withMail.list similarity index 100% rename from files/snster-kaz/kaz/prod/kaz/config/container-withMail.list rename to files/snster-kaz/kaz/prod/kaz-config/container-withMail.list diff --git a/files/snster-kaz/kaz/prod/kaz/config/container-withoutMail.list b/files/snster-kaz/kaz/prod/kaz-config/container-withoutMail.list similarity index 100% rename from files/snster-kaz/kaz/prod/kaz/config/container-withoutMail.list rename to files/snster-kaz/kaz/prod/kaz-config/container-withoutMail.list diff --git a/files/snster-kaz/kaz/prod/kaz/config/dockers.env b/files/snster-kaz/kaz/prod/kaz-config/dockers.env similarity index 100% rename from files/snster-kaz/kaz/prod/kaz/config/dockers.env rename to files/snster-kaz/kaz/prod/kaz-config/dockers.env diff --git a/files/snster-kaz/kaz/prod/kaz.sh b/files/snster-kaz/kaz/prod/kaz.sh index c0d234a..26f9c63 100755 --- a/files/snster-kaz/kaz/prod/kaz.sh +++ b/files/snster-kaz/kaz/prod/kaz.sh @@ -22,47 +22,30 @@ export DebugLog="${OUTPUT_DIR}/log/log-kaz-$(date +%y-%m-%d-%T)-" fi echo -e "\n #### git checkout ${KAZBRANCH}\n" - # copie des sources cd / - [ -f kaz ] || git clone https://git.kaz.bzh/KAZ/kaz.git + git clone https://git.kaz.bzh/KAZ/kaz.git (cd /kaz ; git checkout "${KAZBRANCH}" ) - find /kaz -name \*.sh -exec chmod a+x {} \; - - # pour ceux qui disposent d'un cache apt local et pas la fibre - if [ -f "${DIR}/.apt-mirror-config" ]; then - rsync -a "${DIR}/.apt-mirror-config" /kaz/ - fi - if [ -f "${DIR}/.proxy-config" ]; then - rsync -a "${DIR}/.proxy-config" /etc/profile.d/proxy.sh - rsync -a "${DIR}/.proxy-config" /kaz/ - fi - if [ -f "${DIR}/.docker-config.json" ]; then - mkdir -p /root/.docker - rsync -a "${DIR}/.docker-config.json" /root/.docker/config.json - fi - - - echo -e "\n #### rsync download\n" - [ -d "${DIR}/kaz/download" ] && - rsync -a "${DIR}/kaz/download/" /kaz/download/ - [ -d "${DIR}/kaz/git" ] && - rsync -a "${DIR}/kaz/git/" /kaz/git/ - [ -f "${DIR}/kaz/config/dockers.env" ] && - [ ! -f "/kaz/config/dockers.env" ] && - rsync -a "${DIR}/kaz/config/dockers.env" /kaz/config/dockers.env + cp "${DIR}/kaz-config/dockers.env" /kaz/config/dockers.env for type in mail orga proxy withMail withoutMail ; do - [ -f "${DIR}/kaz/config/container-${type}.list" ] && - [ ! -f "/kaz/config/config/container-${type}.list" ] && - rsync -a "${DIR}/kaz/config/container-${type}.list" /kaz/config/ + [ -f "${DIR}/kaz-config/container-${type}.list" ] && + cp "${DIR}/kaz-config/container-${type}.list" /kaz/config/ done echo -e "\n #### secretGen\n" /kaz/bin/secretGen.sh + echo -e "\n #### install\n" /kaz/bin/install.sh + # On crée quelques mails + SETUP_MAIL="docker exec mailServ setup" + ${SETUP_MAIL} email add contact1@kaz.sns toto + ${SETUP_MAIL} email add contact2@kaz.sns toto + ${SETUP_MAIL} email add contact3@kaz.sns toto + ${SETUP_MAIL} email add contact4@kaz.sns toto + # clear apt cache DEBIAN_FRONTEND=noninteractive apt-get autoremove -y DEBIAN_FRONTEND=noninteractive apt-get clean diff --git a/files/snster-kaz/kaz/prod/provision.sh b/files/snster-kaz/kaz/prod/provision.sh index 107649c..de95521 100644 --- a/files/snster-kaz/kaz/prod/provision.sh +++ b/files/snster-kaz/kaz/prod/provision.sh @@ -55,12 +55,6 @@ if [ -d letsencrypt ]; then /usr/sbin/update-ca-certificates --fresh fi -# ./kaz.sh - -# On démarre au boot -echo -e '#!/bin/sh\n/kaz/bin/container.sh start' >> /etc/rc.local -chmod +x /etc/rc.local - # On sauve le proxy APT proxy=$(/sbin/ip route | awk '/default/ { print $3 }' | head -1) sed -i -e "s/^proxy.*$/proxy=$proxy/" /usr/local/sbin/detect_proxy.sh @@ -98,6 +92,23 @@ service docker restart DEBIAN_FRONTEND=noninteractive apt-get autoremove -y DEBIAN_FRONTEND=noninteractive apt-get clean +# On installe Kaz +ifconfig lo:0 100.80.0.2 +ifconfig lo:1 100.80.1.2 +echo "100.80.0.2 smtp imap www mail cloud cloud.kaz.sns tableur tableur.kaz.sns webmail webmail.kaz.sns garradin garradin.kaz.sns wiki wiki.kaz.sns git git.kaz.sns office office.kaz.sns depot depot.kaz.sns ldap ldap.kaz.sns" >> /etc/hosts +echo "100.80.1.2 listes listes.kaz.sns" >> /etc/hosts +cp "${DIR}/kaz.sh" /root/kaz.sh +cp -ar "${DIR}/kaz-config" /root/ +chmod +x /root/kaz.sh +bash "/root/kaz.sh" +sed -i -e "s/100.80.0.2.*//g" /etc/hosts +sed -i -e "s/100.80.1.2.*//g" /etc/hosts + + +# On démarre au boot +echo -e '#!/bin/sh\n/kaz/bin/container.sh start' >> /etc/rc.local +chmod +x /etc/rc.local + # notes fuse-overlayfs : #mknod -m 666 /dev/fuse c 10 229 diff --git a/files/vm-install-kaz.sh b/files/vm-install-kaz.sh deleted file mode 100644 index ace8725..0000000 --- a/files/vm-install-kaz.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -# Installation de Kaz - -if [ -z "${KAZGUARD}" ] ; then - exit 1 -fi - -snster -c /root/snster-kaz start -sleep 10 -snster -c /root/snster-kaz attach kaz-prod -x /mnt/snster/root/snster-kaz/kaz/prod/kaz.sh - -# On crée quelques mails -SETUP_MAIL="docker exec mailServ setup" -snster -c /root/snster-kaz attach kaz-prod -x "${SETUP_MAIL} email add contact1@kaz.sns toto" -snster -c /root/snster-kaz attach kaz-prod -x "${SETUP_MAIL} email add contact2@kaz.sns toto" -snster -c /root/snster-kaz attach kaz-prod -x "${SETUP_MAIL} email add contact3@kaz.sns toto" -snster -c /root/snster-kaz attach kaz-prod -x "${SETUP_MAIL} email add contact4@kaz.sns toto" - -echo -e '#!/bin/sh\nsnster -c /root/snster-kaz start' >> /etc/rc.local -chmod +x /etc/rc.local diff --git a/files/vm-provision.sh b/files/vm-provision.sh index df3732e..6ef948b 100755 --- a/files/vm-provision.sh +++ b/files/vm-provision.sh @@ -200,16 +200,11 @@ auth: # Build SNSTER KAZ ! snster -c /root/snster-kaz create - cp "${VAGRANT_SRC_DIR}/vm-install-kaz.sh" /root/ - chmod +x /root/vm-install-kaz.sh cp "${VAGRANT_SRC_DIR}/vm-upgrade.sh" /root/ chmod +x /root/vm-upgrade.sh - if [ "${NOKAZ}" == "true" ]; then - echo "on ne fait pas l'install de kaz sur kaz-prod" - else - echo "on installe kaz sur kaz-prod" - bash "/root/vm-install-kaz.sh" - fi + + echo -e '#!/bin/sh\nsnster -c /root/snster-kaz start' >> /etc/rc.local + chmod +x /etc/rc.local echo "########## ********** End Vagrant $(date +%D-%T)" ) > >(tee ${DebugLog}stdout.log) 2> >(tee ${DebugLog}stderr.log >&2) From 20ae0314677a55da108d7913a94fd6ba3ddde35e Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Mon, 6 Mar 2023 16:18:00 +0100 Subject: [PATCH 10/10] fix docker-registry au premier boot --- files/vm-provision.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/vm-provision.sh b/files/vm-provision.sh index 6ef948b..a3b8f13 100755 --- a/files/vm-provision.sh +++ b/files/vm-provision.sh @@ -161,7 +161,7 @@ EOF auth: none: " >> /etc/docker/registry/config.yml - + service docker-registry restart # clear apt cache DEBIAN_FRONTEND=noninteractive apt-get autoremove -y