mydoc_about.md 6.3 KB


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/backupsdispensa/data-nextcloud$(date +%Y%m%d%H%M)_6.zip /var/app

root@campiaperti:/var/lib/docker/volumes# zip -r /home/backupsdispensa/volumes-nextcloud$(date +%Y%m%d%H%M)_6.zip var_nextcloud/

zip -r /home/backupsdispensa/volumes-db$(date +%Y%m%d%H%M)_5.zip var_db

finito! C'è da aggiornare la pagina di copertina del cloud.

NGNIX

se si cambia i lcontainer di nginx ricordarsi di Open the nginx configuration file

vi /etc/nginx/nginx.conf

add or modify the following line inside http {…}

client_max_body_size 20M;

then reload nginx.

Fonte

{% include links.html %}