documentazione/pages/mydoc/mydoc_about.md
2020-02-19 18:02:24 +01:00

232 lines
6 KiB
Markdown

---
title: Idea e strumenti tecnici usati
sidebar: mydoc_sidebar
summary: "Installazione di una macchina per i dati della comunità - about"
permalink: mydoc_about.html
folder: mydoc
---
# About
La macchina ha un sistema operativo della famiglia unix-like: Debian.
Stiamo usando docker per gestire le immagini dei software che vogliamo usare e Lets encript per gestire i certificati SSL.
## Operazioni base su Debian
Appena loggata sul server puoi vedere se la macchina è aggiornata:
### Aggiornare il sistema operativo
apt update
apt upgrade
### Vedere gli ultimi comandi dati
nano .bash_history
Oppure se è un comando dato da poco: freccia su; oppure se lo vuoi cercare al volo nella bash_history: ctrl+r e poi digiti la parola da cercare.
## Autenticarsi ssh:
Requisiti:
* chiave segreta
* pasw segreta
* software ssh installato sul proprio pc
Digitare in un terminale:
~$ssh-add .ssh/campiaperti
$ssh-add ~/.ssh/campiaperti
Se ti dice che i permessi sono sbagliati fai:
nella cartellina dove hai la chiave scrivi -ls -l così vedi di chi sono i file.
Il tuo file della chiaveprivata deve essere accessibile, in lettura e uso solo dal tuo utente.
in grafica: clicca sul file con il pulsante destro, scegli propriet- > permessi e setta:
* me: leggiscrivi
* gruppo: nessuno
* altri:nessuno
quindi cambi i permessi e poi ci riprovi. gli metti la password e fatto!
approfondimenti: https://it.wikipedia.org/wiki/RSA
Per connetterti un avolta aggiunta la chiave:
ssh -p 2222 -l root campiaperti.tetaneutral.net
### Caricare i file da ssh
upload: local -> remote
caricare: dal locale al remoto
scp local_file user@remote_host:remote_file
Quindi un esempio
scp -P 2222 Scrivania/CA_tutto/SERVER-campiaperti/CA_logo_2017.svg root@campiaperti.tetaneutral.net:/var/app/themes/dispensatheme/core/img
### Comandi da terminale
https://www.cyberciti.biz/open-source/command-line-hacks/20-unix-command-line-tricks-part-i/
https://www.commandlinefu.com/commands/browse
## Cose utili su docker
### comandi base
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mariadb latest 67238b4c1da0 2 months ago 365MB
nextcloud latest 90058de5a0f0 3 months ago 564MB
hello-world latest 4ab4c602aa5e 4 months ago 1.84kB
mysql latest 6a834f03bd02 4 months ago 484MB
phpmyadmin/phpmyadmin latest 126b8717cebb 4 months ago 166MB
Queste sono le immagini, quindi i "modelli" che abbiamo installato.
Per vedere i "container" che stiamo usando:
docker stats
Per vederle tutte:
docker ps -a
### comandi di aggiornamento delle immagini
docker pull nextcloud
Questo aggiorna l'immagine nextcloud. non il container.
# Sanità base della macchina:
vedere se qualche software si è fermato:
systemctl status
systemctl is-system-running
vedere se la debian è aggiornata:
apt update
Aggiornarla:
apt upgrade
capire quanto pieno è il disco:
df -lh
## Salvare le immagini e ricaricarle da file compresso
docker save -o ~/backup_dispensa/nextcloud_bakup_1.tar nextcloud_bakup_201806031351_1
per caricarsela tra le immagini:
docker load file.zip
## Ripristino immagini da usare nel docker-compose
Guardiamo che immagini abbiamo:
docker images
cambiamo nome e tag, deve avere una directory per essere riconosciuto come registro locale
docker image tag nextcloud-app_bakup202002071500_4:latest ca/nextcloud-app:backup
https://stackoverflow.com/questions/46032392/docker-compose-does-not-allow-to-use-local-images
modificare in /var/docker-compose.yml
images nextcloud-app:backup
per tutte le 4 immagini.
Andare a mettere i file dei backup dei 2 volumi:
cp /home/backups_dispensa/volumes_nextcloud20200217_4.zip /var/lib/docker/volumes/
unzip volumes_nextcloud20200217_4.zip
Una volta per il nextcloud ed una per il db.
Fare andare su tutto:
docker-compose down
docker-compose up -d
I dubbi relativi a php, per esempio, è possibile da dentro il container nextcloud-app vedere le configurazioni di apache e che versioni php e moduli ha.
## Avere informazioni da docker compose su un servizio
docker-compose logs app
## Dare i comandi cli di nextcloud
docker-compose exec --user www-data app php occ check
## Per aggiornare
Vedere le nuove immagni dsponibili: https://hub.docker.com/_/nextcloud/
andare a modificare l'immagine scritta sul docker-compose.yml, fare
docker pull
e in caso rifare down ed up.
## Altri link visti utili
Configurazioni aggiunte di Apache
https://docs.nextcloud.com/server/13/admin_manual/installation/source_installation.html#apache-configuration-label
lista comandi docker
https://www.cheatography.com/tobix10/cheat-sheets/docker-commands/
### Aggiornare
Dopo aver fatto i backup delle 7 cose: cartella app, 2 volumi e 4 container.
Abbiam modificato il docker-compose.yml con l'immagine successiva nextcloud:17.0.8
docker-compose up
Poi da Admin in grafica web abbiamo appurato che mancavano degli aggiornamenti al db, allora glieli abbiamo fatti:
docker-compose exec --user www-data app php occ maintenance:mode --off
TEST: https://campiaperti.tetaneutral.net, funziona!
Ci chiede in grafica web di fare queste cose da console, quindi le facciamo ma dandogli i comandi puri dal container:
docker-compose exec --user www-data app php occ db:add-missing-indices
docker-compose exec --user www-data app php occ db:convert-filecache-bigint
Bene, quindi nuovo backup delle immagini e dei volumi.
zip -r /home/backups_dispensa/data-nextcloud_$(date +%Y%m%d%H%M)_6.zip /var/app
root@campiaperti:/var/lib/docker/volumes# zip -r /home/backups_dispensa/volumes-nextcloud_$(date +%Y%m%d%H%M)_6.zip var_nextcloud/
zip -r /home/backups_dispensa/volumes-db_$(date +%Y%m%d%H%M)_5.zip var_db
finito! C'è da aggiornare la pagina di copertina del cloud.
{% include links.html %}