"Cheat Sheet" PROXMOX
1. Navigazione e Gestione File (Basics)
Servono per muoversi nelle cartelle di configurazione di Proxmox (es. /etc/pve).
ls -lh: Elenca i file con dettagli (permessi, dimensione leggibile in KB/MB).
cd /percorso/: Cambia directory.
pwd: Ti dice esattamente "dove sei" (utile se ti perdi tra i mount dei dischi).
nano nome_file: L'editor di testo più semplice per modificare file di config (es. la rete).
cp -p file file.bak: Copia un file mantenendo i permessi (fondamentale prima di fare modifiche!).
tail -f /var/log/syslog: Monitora i log di sistema in tempo reale (mentre colleghi un cavo o avvii una VM).
2. Networking (Il cuore del Troubleshooting)
Se il server non "esce" o il bridge non va, questi sono i tuoi ferri del mestiere.
ip a: Mostra tutti gli indirizzi IP e lo stato delle interfacce (UP/DOWN).
ip route: Mostra la tabella di routing (cerca la riga default via... per il gateway).
ping -c 4 8.8.8.8: Test di connettività verso l'esterno (Google DNS).
ss -tunlp: Mostra tutte le porte aperte e i servizi in ascolto (es. vedi se il servizio web di Proxmox sulla 8006 è attivo).
mtr google.it: Una combinazione di ping e traceroute per vedere dove si interrompe il segnale lungo la rete.
tcpdump -i eth0: Intercetta il traffico sulla scheda eth0 (per esperti: vedi se arrivano pacchetti LACP o DHCP).
3. Storage e Dischi (RAID & ZFS)
Per verificare lo stato fisico e logico dei dischi che hai assemblato.
lsblk: Mostra l'albero dei dischi, partizioni e punti di montaggio.
df -h: Mostra lo spazio libero sui dischi montati.
smartctl -a /dev/sda: (Richiede smartmontools) Ti dice la "salute" fisica del disco sda (errori, ore di vita).
zpool status: Fondamentale per Proxmox. Mostra lo stato del raid ZFS, se ci sono dischi degradati o in ricostruzione.
arcstat: Mostra l'utilizzo della cache RAM da parte di ZFS.
4. Proxmox & Virtualizzazione (Specifici)
Se l'interfaccia web è bloccata, puoi gestire tutto da riga di comando.
qm list: Elenca tutte le Virtual Machine e il loro stato.
qm start ID: Avvia la VM con il numero identificativo ID (es. qm start 100).
qm stop ID: Forza lo spegnimento di una VM.
pvecm status: Mostra lo stato del cluster (quanti nodi sono "vivi" e se c'è il Quorum).
Journalctl -u pveproxy: Vedi i log specifici del servizio web di gestione di Proxmox.
5. SSH e Gestione Remota
ssh utente@indirizzo_ip: Connessione remota a un altro server.
scp file.iso utente@ip:/percorso/: Copia un file (es. una ISO) dal tuo laptop al server via rete.
screen o tmux: Permettono di avviare un processo (es. un collaudo lungo) e chiudere il terminale senza interromperlo.
errore?
"Controllo subito con sudo se è un problema di privilegi, oppure consulto il man (es. man ip) per verificare la sintassi corretta. Se il servizio non risponde, uso systemctl status nome_servizio per vedere l'errore specifico."
Cheat Sheet Log :
dmesg -T: Per vedere i messaggi del kernel (errori hardware, dischi, schede di rete) con timestamp leggibili.
journalctl -u pveproxy -f: Per seguire in diretta i log dell'interfaccia web di Proxmox.
tail -f /var/log/syslog: Per monitorare i log generali del sistema durante un test di connettività.
System Deployment Engineer:
Sezione Networking (Proxmox/Debian)
nano /etc/network/interfaces → Per modificare il bridge vmbr0.
systemctl restart networking → Per applicare le modifiche (attenzione: da fare solo se hai accesso console!).
ip -c monitor → Per vedere in tempo reale se un link sale o scende mentre tocchi i cavi.
Sezione Storage (ZFS/RAID)
zpool list / zpool status → Per vedere se il RAID è "Online" o "Degraded".
zpool iostat -v 5 → Per vedere la velocità di scrittura reale sui singoli dischi ogni 5 secondi.
smartctl -H /dev/sdX → Controllo rapido "Health" del disco fisico.
Sezione Nutanix (CVM)
cluster status → Per vedere se tutti i servizi del cluster sono UP.
ncli host list → Elenco dei nodi fisici e dei loro IP di management.
cvm_shutdown -P now → Spegnimento corretto della CVM prima di una manutenzione hardware.
Sezione Emergenza
Procedure di Reset: Come fare il reset di fabbrica dello switch o del controller iDRAC/iLO se perdi le credenziali durante lo staging.
Numeri Interni: Chi chiamare nel team se un componente hardware arriva "DOA" (Dead On Arrival).
Ecco i quattro pilastri della documentazione che un System Deployment Engineer deve padroneggiare per fare colpo al colloquio:
1. Lo LLD (Low-Level Design) - "La Mappa"
Mentre l'architetto fa il disegno generale, tu documenti i dettagli "bassi".
Tabella delle Porte: Quale interfaccia del server va su quale porta dello switch (es: Srv01-Eth0 -> Sw01-Port12).
Schema di Indirizzamento: IP di management (iDRAC/iLO), IP degli Hypervisor (Proxmox/Nutanix), IP delle VM di servizio.
VLAN Tagging: Documentare quali ID VLAN passano sui bridge (vmbr0) e quali sono untagged.
2. Il "Runbook" di Installazione - "La Ricetta"
È la guida passo-passo che scrivi (o segui) per replicare lo staging.
Versioni Firmware: "Aggiornare il BIOS alla v2.4.1 prima dell'installazione".
Configurazione RAID: "Creare un Virtual Disk RAID 5 con Stripe Size di 64KB".
Script di Post-Installazione: Documentare dove si trovano gli script di automazione (es. in /opt/scripts/) e cosa fanno.
3. Il Report di Collaudo (As-Built) - "Il Certificato"
È il documento finale che firmi e consegni.
Screenshot delle Console: Una prova visiva che il cluster è "Green" (tutto OK).
Benchmark delle Prestazioni: Risultati di iperf per la rete e fio per i dischi.
Esito Test di Failover: "Simulazione distacco cavo rete: il traffico è migrato sul secondo link del bond in 0.5 secondi".
DOCUMENTATION
4. L'Inventario Asset (CMDB) - "L'Anagrafe"
L'aggiornamento del database aziendale.
Serial Number e Service Tag:
Fondamentali per aprire ticket di assistenza con i fornitori (Dell, HP, Nutanix).
MAC Addresses: Indispensabili per chi gestisce i firewall e i server DHCP.
Data di Scadenza Garanzia: Per pianificare le manutenzioni future.
"Uso i tempi morti per raffinare la documentazione. Mi assicuro che lo schema dei cavi sia aggiornato e che il Runbook sia così chiaro che un mio collega potrebbe sostituirmi domani e capire esattamente come gestire quel server senza dovermi chiamare. Per me, un deployment è concluso solo quando l'inventario asset è aggiornato e il report di collaudo è archiviato."
🛠️ Cheat Sheet 2: AIR GAPPED CHEAT SHEET
Legenda Colori Cavi: (es. Blu = Management, Rosso = Dati, Giallo = Cluster/Storage).
Credenziali di Default: (Solo quelle temporanee di staging, da cambiare poi!).
Comandi di Emergenza: Come forzare lo spegnimento di un nodo Nutanix se la console web è bloccata.
Questa è la "cassetta degli attrezzi" definitiva per un System Deployment Engineer. In un ambiente air-gapped o in un laboratorio di staging, questi comandi ti permettono di passare dalla configurazione manuale all'automazione professionale.
🐚 Bash: Lo "Swiss Army Knife" del Sistemista
In ambito deployment, Bash serve a interrogare l'hardware e manipolare file di config velocemente.
🔍 Ispezione Rapida (Hardware & OS)
cat /etc/debian_version: Verifica la versione esatta di Debian (base di Proxmox).
lscpu | grep "Model name": Controlla il modello esatto della CPU.
lsblk -o NAME,SIZE,MODEL,SERIAL: Fondamentale per l'Inventario Asset (estrae i seriali dei dischi).
ip -br a: Mostra gli IP in formato tabellare "brief" (molto leggibile).
⚙️ Manipolazione File & Permessi
sed -i 's/vecchio/nuovo/g' file.conf: Sostituisce stringhe in un file senza aprirlo (es. cambiare un IP in un config).
chmod 600 id_rsa: Imposta i permessi corretti per le chiavi SSH (altrimenti SSH le rifiuta).
chown root:root file: Cambia proprietario e gruppo.
🛠️ One-Liners Utili
Trova file modificati di recente: find /etc -mtime -1 (utile per vedere cosa ha cambiato un collega ieri).
Verifica spazio su disco critico: df -h | grep '^/dev/'.
Loop di test: for i in {1..5}; do ping -c 1 192.168.1.$i; done (pinga un range di IP velocemente).
🚀 Ansible: Automazione del Deployment
Ansible è agentless (usa solo SSH).
Se devi configurare 10 nodi Proxmox uguali, lo fai in un colpo solo.
📦 Ad-Hoc Commands (Azioni Veloci)
Ideali per interrogare il parco macchine senza scrivere un playbook intero.
ansible all -m ping: Verifica se tutti i server sono raggiungibili via SSH.
ansible web -m shell -a "uptime": Controlla l'uptime di tutti i server nel gruppo "web".
ansible all -m setup -a "filter=ansible_memtotal_mb": Estrae la RAM totale di ogni server per il report di collaudo.
📜 Struttura Playbook (Esempio per Staging)
Ecco come automatizzeresti l'aggiornamento e l'installazione di tool su Proxmox:
YAML
- name: Setup iniziale nodi Proxmox
hosts: pve_nodes
become: yes
tasks:
- name: Installazione tool di base
apt:
name: [vim, htop, smartmontools, iperf3]
state: present
update_cache: yes
- name: Configurazione Banner SSH (Security)
copy:
content: "Proprietà di Innova S.p.A. - Accesso Autorizzato"
dest: /etc/motd
🗝️ Ansible Vault (Sicurezza Intelligence)
non puoi lasciare password nei file.
ansible-vault encrypt vars.yml: Cifra il file delle variabili (es. password di root o chiavi API).
ansible-playbook site.yml --ask-vault-pass: Esegue il playbook chiedendo la password per decifrare i dati al volo.
💡
"Per lo staging iniziale uso script Bash per interrogare l'hardware (come i seriali dei dischi per l'inventario). Se però devo configurare un intero cluster o mantenere i nodi allineati, preferisco Ansible: essendo agentless è perfetto per gli ambienti sicuri, mi permette di documentare l'infrastruttura come codice (IaC) e di usare Ansible Vault per gestire le credenziali in modo sicuro."
SUM UP
Ansible: Ricorda che usa YAML (attento agli spazi!).
Bash: Ricorda che sudo è tuo amico, ma root su Proxmox è il default.
SSH: Assicurati di saper spiegare come si genera una chiave (ssh-keygen) e come si copia sul server (ssh-copy-id).
Scripting Proxmox Bakcup
#!/bin/bash
# Configuration Parameters - Customize these!
BACKUP_DIR=" /path/to/backup/storage"
VM_IDS = "100 105 108" # Replace with the IDs of your VMs
CT_IDS = "201 207" # Replace with the IDs of your CTs
#Function for VM backups
backup_vm () {
vmid = $1
timestamp = $ (date +%Y-%m-%d_%H-%S)
filename = "vm_{vmid}_${timestamp}.vma"
vzdump $vmid -- mode sto -- compress lzo --storage "$BACKUP DIR" --outfile "$BACKUP_DIR/$filename"
}
# Function for CT backups
backup_ct() {
ctid=$1
timestamp = $ (date + %Y -%m - %d _%H-%M-%S)
filename = "ct_$(ctid)_${timestamp}.tar.lzo"
vzdump $ctid -- mode snapshot -- compress lzo --storage "$BACKUP DIR" --outfile "$BACKUP_DIR/$filename"
}
# Iterate through VM IDs ...
Live VM and CT Migration in PROXMOX VE
#! /bin/bash
# Variables
VMID = 103
SOURCE_HOST = "host-a"
DESTINATION_HOST = "host -b"
LOG_FILE = "/var/log/vm_migration.log"
#Function to perform the VM Migration
migrate_vm() {
echo "Starting migration of VM $VMID from $SOURCE_HOST to $DESTINATION_HOST..." | tee -a $LOG_FILE
ssh root@$SOURCE_HOST "qm migrate $VIMD $DESTINATION_HOST --online" 2>&1 | tee -a $LOG_FILE
if [ " ${PIPESTATUS[0]}" -eq 0 ]; then
echo "Migration of VM $VMID completed successfully." | tee -a $ LOG_FILE
else echo "Migration of VM $VMID failed. Check the log for details: $LOG_FILE" | tee -a $ LOG_FILE
fi
}
#Main script starts here
echo " ====&(date)====" | tee -a $LOG_FILE
migrate_vm