Project

General

Profile

INSTALLAZIONE_SERVER_Proxmox

PER SERVER dove NON viene riconosciuto il controller RAID (es.Fujisu PRIMERGY TX1320 M1):

  • Installare Debian (vedi dettaglio punto 0), due possibilità:
  • Inserire i repository di PROXMOX e installare PROXMOX (vedi dettaglio punti 6 - 14)
  • Riconfigurare l'interfaccia di rete principale per l'uso del bridge (vedi punto 20)
  • Creare il logical volume del pool di dati per lo storage thin-lvm (local-lvm):
    • si verifichi con vgdisplay quanto spazio disco libero è presente su LVM (nel caso più di 750G):
      vgdisplay
      ...
        Alloc PE / Size       12782 / 49,93 GiB
        Free  PE / Size       18897844278 / 788,13 GiB
      ...
      
    • si crei il volume logico per il pool lasciandosi un polmone di spazio disco libero per eventuali estensioni:
      lvcreate -L 715G -n data pve 
      
    • si marchi il nuovo volume come pool per il thin provisioning:
      lvconvert --type thin-pool pve/data
      
  • Attenzione: data è il nome del logical volume per il pool, si può usarne uno qualunque ma è quello usato di default dall'installer di Proxmox. Invece pve è del volume group, anche in questo caso è quello usato di default da Proxmox, ma se in fase di installazione di debian si è usato un nome diverso seguendo le note di RAID-virtuale_on_Debian_Jessie si dovrà usare quello.
  • Dall'interfaccia di proxmox (Datacenter->Storage->Add->LVM-Thin) si aggiunga un nuovo storage, verranno richiesti in una finestra:
    • ID (usare local-lvm per coerenza con il default dell'installer di Proxmox)
    • Volume group: selezionare dal menù a tendina, pve
    • Thin pool: scrivere data o selezionarlo dal menù a tendina (comparirà dopo aver impostato il volume group)
    • gli altri campi non van toccati
  • Creare una VM (Virtual Machine) e installare il FUSS-SERVER-8 (passare ai punti dal 15 in poi).

PER SERVER dove viene riconosciuto il controller RAID:

  • Scaricare ed installare Proxmox
  • Immagine iso disponibile a partire dalla pagina https://www.proxmox.com/en/downloads/item/proxmox-ve-4-4-iso-installer
  • In fase di installazione di proxmox occorre scegliere la ripartizione dello spazio disco, nella schermata Target Harddisk (la seconda, subito dopo aver accettato la licenza), si selezionino come valori:
    • swapsize 4 (4G swap)
    • maxroot 30 (30G di radice, contiene solo)
    • maxvz - (in questo modo tutto il resto del disco sarà inserito nel thin-pool di LVM)
    • minfree 50 (lasciamo un polmone di 50G)
  • Attenzione: con questa scelta lo storage locale avrà a disposizione solo lo spazio disco della radice, che è sufficiente per tenere le immagini iso dei CD per le installazioni, tutto lo spazio non assegnato esplicitamente viene lasciato per l'installazione di macchine virtuali, se si vogliono eseguire dei dump delle stesse sul disco locale (i dump potrebbero essere eseguiti su NAS via NFS, ovviamente con prestazioni nettamente inferiori), occorre invece aumentare minfree, per poter poi creare un volume logicon con un filesystem da dedicare ii dump (le dimensioni dovranno corrispondere allo spazio che si prevede di usare per le macchine virtali).
  • La configurazione della rete che viene effettuata dall'installatore di Proxomox è comunque statica, anche se l'indirizzo IP viene ottenuto da un DHCP, in tal caso occorre sincerarsi che l'IP che si va ad usare sia fuori dal range di un eventuale DHCP, si verifichi per non creare possibili futuri conflitti di IP.
  • Se si dispone di un solo IP pubblico e si è dietro un NAT (si presuppone che l'accesso ad internet in tal caso sia gestito da un router) l'IP della rete interna su cui vengono reindirizzati i pacchetti provenienti dall'esterno deve essere lasciato al fuss-server (se si vuole la raggiungibilità dello stesso da remoto). Si usi pertanto un altro IP nella rete interna.
  • Vai al punto 14) della presente procedure per creare una VM (Virtual Mashine) e installare il FUSS-SERVER-8.

0) Installare Debian su RAID1 software + LVM

  • Vedi procedura nella wiki: RAID-virtuale_on_Debian_Jessie per installare su RAID software, usando una /boot separata (su un primo RAID1 /dev/md0) ed usando il resto per un volume LVM (su secondo RAID1 /dev/md1). Per la /boot si può restare nel range 512M/1G.
  • In vista del successivo passaggio a Proxmox, occorre poi suddividere i volumi logici in maniera analoga a quella che si otterrebbe dall'installer di Proxmox, ed in particolare:
    • creare un volume logico di swap (vedi anche RAID-virtuale_on_Debian_Jessie) dell'ordine di un quarto della RAM (ma non superare i 4G)
    • creare un volume logico per /root (vedi anche RAID-virtuale_on_Debian_Jessie) dell'ordine di 10/30G a seconda che si preveda o meno di installare anche l'interfaccia grafica.
    • non creare nessun altro volume logico in fase di installazione (verranno creati dopo)
  • La rete deve essere configurata con IP statico (in ogni caso dovrà essere riconfigurata poi da dentro Proxmox).
  • Se si dispone di un solo IP pubblico e si è dietro un NAT (si presuppone che l'accesso ad internet in tal caso sia gestito da un router) l'IP della rete interna su cui vengono reindirizzati i pacchetti provenienti dall'esterno deve essere lasciato al fuss-server (se si vuole la raggiungibilità dello stesso da remoto). Si usi pertanto un altro IP nella rete interna.

1) Cambiare le password
  • Cambiare le password di root e dell'utente locale creato durante l'installazione (es.local-fuss)

passwd root
passwd local-fuss

2) Rimuovere i seguenti 2 pacchetti

apt-get --purge remove network-manager
apt-get remove os-prober
  1. network-manager interferisce con la configurazione delle interfacce, deve essere rimosso, e si verifichi che non venga eventualmente reinstallato come dipendenza nel caso si installi l'interfaccia grafica
  2. Il pacchetto "os-prober" è pericoloso per i SERVER, perchè controlla quali sono i s.o. da far partire in fase di boot !!
  3. !va benissimo invece per i pc-client (workstation)!

2.b ) INSTALLARE I FIRMWARE Se necessario:
copio i firmware (*.deb) nella cartella /opt/ e li installo:

dpkg -i *.deb

3) Modifico il file di configurazione SCHEDE RETE!!

Questo passo è da eseguire solo se la configurazione della rete eseguita in fase di installazione all'interno dell'installer di Debian non ha funzionato correttamente.

Per modificare il file della configurazione dlle schede di rete si esegua:

vim /etc/network/interfaces

Esempio del file:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

source /etc/network/interfaces.d/*

# The primary network interface -- WAN
auto eth0
iface eth0 inet static
    address 192.168.112.102
    netmask 255.255.255.0
    network 192.168.112.0
    broadcast 192.168.112.255
    gateway 192.168.112.1
    # dns-* options are implemented by the resolvconf package, if installed
    # dns-nameservers 208.67.222.222 208.67.220.220 8.8.8.8

3.c) RIAVVIO SERVIZI DI RETE

Se si è modificato il file di configurazione delle interfacce si esegua il restart dei servizi di rete con:

service networking restart

4) Modifico il file dei repository (/etc/apt/sources.list)

Questo passo è da eseguire solo se occorre inserire dei repository aggiuntivi o fare correzioni rispetto a quelli installati di default dall'installer di Debian.

Si modifichi la lista dei repository (vedi anche https://wiki.debian.org/SourcesList) con:

vim /etc/apt/sources.list

Esempio del file:

deb http://security.debian.org/ jessie/updates main contrib
deb-src http://security.debian.org/ jessie/updates main contrib
#
deb http://ftp.debian.org/debian/ jessie-updates main contrib
deb-src http://ftp.debian.org/debian/ jessie-updates main contrib
#
deb http://httpredir.debian.org/debian jessie main
deb-src http://httpredir.debian.org/debian jessie main
#
deb http://httpredir.debian.org/debian jessie-updates main
deb-src http://httpredir.debian.org/debian jessie-updates main

4.b) Testare i repository

Per provare i repository ed applicare eventuali aggiornamenti si esegua:

apt update && apt upgrade
apt install vim gedit screen

4.c) installiamo Ambiente Desktop (xfce4); Display Manager(lightdm) e [facoltativo]Terminali più evoluti di quelli di serie

apt-get install xfce4 lightdm xfce4-terminal gnome-terminal

4.c) In versioni più minimali di DEBIAN, se vogliamo possiamo installare Firefox

apt-get install firefox-esr

5) MODIFICO il file che risolve i nomi (DNS)

Questo passo è da eseguire solo se la configurazione della rete eseguita in fase di installazione all'interno dell'installer di Debian non ha funzionato correttamente.

Si modifichi il file di gestione della risoluzione dei nomi con:

vim /etc/resolv.conf

Esempio del file:

# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4

5.b) ## TEST........

ping 8.8.8.8
ping www.google.com
traceroute www.google.com
dig
dig www.google.com

6) # Modificare il file /etc/hosts

In preparazione dell'installazione di Proxmox occorre assicuarsi che l'IP locale sia risolto correttamente, occorre pertanto modificare il file /etc/hosts con:

vim /etc/hosts
  1. - Nella 2.riga sostituire l'ip 127.0.0.1 con l' "IP-STATICO" es: 192.168.112.101. !!
  2. - Nella 2.riga aggiungere alla fine - pvelocalhost

Esempio del file:

127.0.0.1       localhost.localdomain localhost
192.168.112.102        server102.dom102.bzn    server101 pvelocalhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

7) Verifica se il tuo hostname viene risolto

Per la verifica della risoluzione diretta eseguire il comando:

getent hosts "IP-SERVER" 

Esempio:

getent hosts 192.168.112.101
192.168.112.101 server101.dom101.bzn server101 pvelocalhost

Per la verifica della risoluzione inversa eseguire il comando:

hostname --ip-address

Esempio:

hostname --ip-address
192.168.112.101

8) Aggiungo repository Proxmox

Eseguire il comando:

echo "deb http://download.proxmox.com/debian jessie pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

9) Aggiungo chiave per i repository

Eseguire il comando:

wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -

10) Aggiorno

Eseguire il comando:

apt-get update && apt-get dist-upgrade

ATTENZIONE: POTREBBERO SERVIRE ALCUNI MINUTI (c.a. 15 min.)

11) INSTALLARE KERNEL PROXMOX

Eseguire il comando:

apt-get install proxmox-ve ssh postfix ksm-control-daemon open-iscsi systemd-sysv

Prox Configurazione
"Nessuna configurazione"

12) RIMUOVO KERNEL DEBIAN

Perché quando fa gli aggiornamenti scarica anche quelli di DEBIAN che non ci serviranno:

apt-get remove linux-image-amd64 linux-image-3.16.0-4-amd64 linux-base

13) ATTENZIONE: aggiornare grub prima di riavviare||

update-grub

14) RIAVVIARE!!

reboot

15) Sincronizziamo data e ora!! coi seguenti comandi!!

Su Proxmox 4.4 la sincronizzazione del tempo viene eseguita da systemd-timesyncd, la cui configurazione è mantenuta in /etc/systemd/timesyncd.conf, che di default è vuoto per cui vengono utilizzati i server NTP del pool debian. Se la macchina ha accesso ad internet non è necessario nessun intervento ulteriore, altrimenti occorrerà modificare il file per indicare a quale server rivolgersi (ad esempio ad un server NTP sulla rete interna, che potrebbe essere fornito ad esempio dal router).

In tal caso occorrerà inserire nel file suddetto un contenuto del tipo:

[Time]
Servers=IP.DEL.SERVER.NTP

Alternativamente si può installare direttamente il servizio NTP sulla macchina com:

apt-get install ntp
N.B.:
  1. edito il file di configurazione di ntp (/etc/ntp.conf)
  2. commento le voci server esistenti e aggiungo ip del server che mi può sincronizzare data e ora
  3. che solitamente vedo da:
vim /etc/ntp.conf

Esempio di contenuto:

# server 0.debian.pool.ntp.org iburst
# server 1.debian.pool.ntp.org iburst
# server 2.debian.pool.ntp.org iburst
# server 3.debian.pool.ntp.org iburst
server tempo.ien.it

16) Sincronizzazione DATE e ORA !!

Da eseguire solo se non sta funzionando la sincronizzazione di default con systemd-timesyncd.

Per verificare che l'orologio sia sincronizzato (e verificare al contempo che il server NTP indicato sia raggiungibile) si può eseguire:

service ntp stop
ntpdate tempo.ien.it
# sincronizza orologio al clock dell'hw
hwclock --systohc
service ntp start
date

17) Primo TEST PROXMOX

Lanciamo Browser:

https://localhost:8006
  1. Login PAM di Default
    root = ...........
    pw = ............

18) PROXMOX: configurazioni iniziali

18.a) AUTENTICAZIONE (TRAMITE BROWSER) A "PROXMOX 4.4"
- LanciaRE il Browser e collegarsi al seguente URL

18.b) Dare "OK" alla finestra di errore

19) SCARICARE E COPIARE NEL SERVER IL FILE .ISO

(es "fuss-server-jessie-amd64-201705221525.iso")
e copiarla in una cartella del SERVER
Usare la più aggiornata che si scarica dal seguente indirizzo:
http://iso2.fuss.bz.it/fuss8/server/

CARICARE IL FILE .ISO IN PROXMOX ALL'INTERNO DELLO STORAGE "local"

19.a) - Menù di sinistra, cliccare su "local (server<nome>)"

19.b) - Menù laterale "Content"

19.c) - Menù centrale, cliccare su "Upload"

19.c) - Cliccare "Select file" e scegliere la ISO scaricata (si può anche caricare direttamente da un device esterno)

19.d) - Cliccare su "Upload"

19.e) - A caricamento terminato, si visualizzerà la iso caricata come nella figura.

19.B) PER INFO: In alternativa la ISO potrebbe essere "caricata" copiandola da terminale nella segente posizione:

/var/lib/vz/template/iso/

20) CREIAMO I BRIDGE DI RETE (NODO - NETWORK - Create.....vmbr0, ed eliminazione eth0)

Questo si applica solo quando si parte da Debian.

- Cliccare sul Nodo (es."server102")
- Cliccare su "Network"

20.a) - Eliminiamo la configurazione di eth0 (che verrà poi sostituita da quella di "vmbr0"

Questo si applica solo quando si parte da Debian.

- Doppio click su eth0
- Eliminare tutti i campi contenuti e premere su "OK"

20.b) La situzione sarà come in foto

Questo si applica solo quando si parte da Debian.

20.c) CREIAMO IL LINUX BRIDGE PER "eth0"

Questo si applica solo quando si parte da Debian.

- "Create"
- "LINUX BRIDGE"
- Lasciare invariato il Nome (es. vmbr0)
- Compilare i campi (## come se fosse la WAN eth0):
IP address = ip-address "WAN"
Subnet mask = 255.255.255.0
Gateway = ip-address "ROUTER"
Bridge ports = eth0

Premere "Create"
es.

20.d) CREIAMO IL LINUX BRIDGE PER "eth1"

Questo si applica solo quando si parte da Debian.

- "Create"
- "LINUX BRIDGE"
- Lasciare invariato il Nome (es. vmbr1)
- Compilare i campi:
IP address
Subnet mask

Bridge ports = eth1

Premere "Create"
es. (vedi foto N-05)

20.e) RIAVVIARE IL SERVER
reboot

e controllare la nuova configurazione di rete
ifconfig

20.f) Per configurare eth2 (per il wifi e gestita dal fuss-captive portal) attendere disoposizioni dal corso!!

21) CREARE LA VM !! (Virtual Machine)

21.a) Cliccare sul tasto "Create VM"

(colore azzurro in alto a sinistra)
e comparirà la finestra come nella seguente foto:

21.b) "General"

Inserire

VM ID    (es. 100)
Name     (es.fuss-server-01)

- Cliccare su "Next"

21.c) "OS"

selezionare

"Linux  4.X/3.X/2.6 Kernel"

- Cliccare su "Next"

21.d) "CD/DVD"

espandere tendina "ISO image:"

- Selezionare la ISO precedentemente caricata; esempio:

"fuss-server-jessie-amd64-201705221525.iso"

- Cliccare su "Next"

21.d) "Hard Disk"

Per l'hard disk, occorre scegliere una dimensione totale assegnata alle macchine virtuali compatibile con la dimensione massima disponibile sul pool di spazio disco, la situazione corrente si ottiene con il comando lvs; ad esempio:

# lvs
  LV            VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data          pve  twi-aotz-- 514,06g             11,48  5,66                            
  local         pve  -wi-ao---- 200,00g                                                    
  root          pve  -wi-ao----  20,00g                                                    
  swap          pve  -wi-ao----   4,00g                                                    
  vm-101-disk-1 pve  Vwi-aotz-- 100,00g data        59,04                       

qui la dimensione assegnata al pool (logical volume data) è di 514,06 G, ed alla macchina virtuale 101 sono stati assegnati 100G. Lo spazio è aumentabile a piacere (dall'interfaccia), ma per evitare alla radice la possibilità di esaurire lo spazio su data non si superi mai una assegnazione pari al 95% della dimensione del pool (volume logico data).

Attenzione: le percentuali Data% e Meta% fanno riferimento all'uso effettivo, sicuramente inferiore a quello massimo teorico (nel caso 100/514 ~ 20%) ma qualora lo spazio disco venisse completamente occupato nel caso in sui si è allocato per le macchine virtuali più spazio di quello in totale disponibile su data (cosa da evitare sempre!), si avrebbe una disastrosa perdita di dati.

Quando si crea il fuss-server, posto che non si crei nessuna altra macchina virtuale in seguito, nel caso in esempio sarà sufficiente usare un valore inferiore ai 95% dei 514,06g disponibili su data. Si ricordi che ridurre lo spazio disco allocato in eccesso all'inizio ad una macchina è sempre più complicato che non estenderlo quando risulti essere poco. Se nel volume group è ancora disponibile spazio disco (lo sarà se lo si è lasciato in fase di installazione, tenendosi un "polmone" come consigliato) è comunque possibile allargare data con il comando:

lvextend -L +XXg /dev/pve/data

Le scelte da effettuare per lo spazio disco in fase di creazione della macchina virtuale pertanto dovranno essere qualcosa del tipo:

  • Bus/Device = VirtIO
  • Storage = local-lvm
  • Disk size (GB)= selezionare una dimensione compatibile con lo spazio, come da istruzioni precedenti
  • Format = Raw disk image (raw) (NON MODIFICABILE)
  • Cache = Default (No cache)

Infine cliccare su "Next"

21.e) "CPU"

Si verifichi il numero di processori della macchina e si lo si indichi come numero di cores (l'uso di socket e cores è indifferente per le prestazioni, conta il totale prodotto dei due valori, la possibilità di variarli è a favore di chi ha licenze software per numero di socket, che non ci interessa).

- Cliccare su "Next"

21.e) "Memory"

Gli sviluppatori di Proxmox suggeriscono di lasciare almeno 1G di RAM per il sistema, si può allocare il rimanente per le macchine virtuali, per il fuss-server le esigenze effettive possono variare a seconda del numero di utenti che lo useranno. La scelta della quantità di RAM dipende anche dall'eventuale uso della macchina fisica per ospitare altre macchine virtuali. Una buona scelta di partenza è impiegare dalla metà ai tre quarti del totale, lasciandosi un polmone di risorse per aumentare la RAM in un secondo tempo (basterà modificare il valore dall'interfaccia web e riavviare la macchina).

  • - Memory (MB) * scegliere in base alle indicazioni precedenti
  • - Toglier il "flag" alla funzione "Ballooning"

- Cliccare su "Next"

21.f) "Network"

Bridge = vmbr0
Model = VirtIO (paravirtualized)

- Cliccare su "Next"

22) AVVIARE LA VM (Virtual Mashine)

22.a) - Selezionare la VM es. 100(fuss-server-01)

22.b) - Selezionare in alto a destra il tasto ">__Console"

22.c)-  Scegliere "Start"

23) INIZIARE L'INSTALLAZIONE DI FUSS-SERVER

La gran parte delle opzioni di installazione del fuss-server sono già preimpostate nell'immagine ISO, la sola scelta significativa da fare in fase di installazione è il partizionamento del disco (virtuale) assegnato allo stesso.

Nella scelta predefinita dopo aver selezionato il disco viene proposto direttamente il suo partizionamento. La scelta più sicura, per evitare problemi di riempimento della radice, è usare filesystem separati per /home, /var, /tmp. Questo però con il partizionamento diretto rende meno flessibile la eventuale riallocazione dello spazio disco.

Si tenga presente infatti che anche avendo disponibile spazio disco nel virtualizzatore per poter allargare il disco della macchina virtuale, l'allargamento avverrebbe sul "fondo" pertanto sarebbe facile ridimensionare soltanto l'ultima partizione (nel caso la /home, che pur essendo quella più probabile, non è detto sia davvero quella che ha bisogno dello spazio disco aggiuntivo).

Per questo si suggerisce, per avere maggiore flessibilità, al costo di una leggera perdita di prestazioni in I/O, di installare usando LVM. Questo però significa che una volta eseguita la scelta precedente, occorrerà "tornare indietro" riselezionando "partizionamento guidato":

e poi selezionando "guidato, usa l'intero disco e imposta LVM":

ed a questo punto di dovrà ripetere la scelta del disco e dell'uso dei filesystem separati, e confermare la configurazione di LVM:

ed infine confermare prima le modifiche del disco:

e poi la formattazione finale:

A questo dopo un eventuale allargamento del disco della macchina virtuale sarà sufficiente allargare la partizione finale (che sarà /dev/vda5, logica) che ospita il volume fisico di LVM, estendere quest'ultimo con pvresize, ed estendere poi il filesystem che si preferisce con lvresize.

FINE

Precauzioni post installazione di Proxmox.

Proxmox fornisce anche un suo sistema di gestione dei firewall per l'host per le macchine virtuali, ma il fuss-server ha già la sua gestione del firewall interna, pertanto il firewall di proxmox non deve essere abilitato, perché andrebbe ad interferire.

Per proteggere il sistema della macchina fisica è sufficiente installare un semplice script di firewall che limiti gli accessi dalla rete interna alle porte 22 e 8006. In ogni caso questa non deve essere visibile direttamente da internet (l'indirizzo IP pubblico va reinoltrato, se necessario, sul fuss-server), per cui la necessità di un firewall è meno impellente.

Per le macchine che hanno controller RAID hardware si suggerisce di installare alcuni tool esterni rispetto a Debian (si verifichino i problemi di licenza) per monitorare lo stato degli stessi. Un sito che contiene vari di questi programmi, in particolare per i controller meno recenti e meno supportati, è http://hwraid.le-vert.net/. Occorrerà comunque (i programmi citati comunicano via email) definire chi riceverà le relative notifiche.

Si suggerisce inoltre di installare alcuni pacchetti ausiliari di controllo ed utilità come:

apt-get tiger etckeeper debsums molly-guard atop iotop iftop

Note: Alcuni comandi di controllo ##################################
df
vgdisplay
pv
pvsca
lv
lvscan
vg
vgdisplay
(LVEXTEND L + 50 /DEV/PV........ se vogliamo aumentare)
(RESIZE /DEV/PV-........)
man lvresize
man lvextend
man lvreduce
ls /dev/mapper/
fstab, file da modificare per **BACKUP; ISO; TEMPLATE; MACCHINE; VIRTUALI; E CONTAINER
vim /etc/fstab ##############