Ho diversi container LXC registrati in Proxmox. Di solito, mi assicuro che siano sempre aggiornati e, per farlo, agisco nel 99% dei casi da un terminale che passa direttamente tramite il nodo, sono solito evitare di attivare l’utente root diretto sui LXC.
Mi serviva quindi un “facilitatore“, qualcosa da lanciare una sola volta, che mi permettesse di passare a bussare su tutti loro uno dopo l’altro. Mi sono fatto perciò aiutare da ChatGPT, per risparmiare un po’ di tempo e buttare giù queste poche righe di codice Bash. Ottenuta la lista dei container LXC ospitati da Proxmox (l’output del comando pct list
), tengo solo gli ID (la prima colonna) e, per ogni container in esecuzione (determinato dallo stato di running), lancio un lxc-attach
che mi permetterà di entrare in console.
Per ogni container potrò poi eseguire le operazioni di manutenzione necessarie. Uscendo dal terminale del container, verrà automaticamente lanciato il comando che mi collegherà al successivo LXC, il tutto fino a quando non terminerò la lista dei LXC disponibili e attivi.
#!/bin/bash # Ottieni l'output del comando 'pct list' output=$(pct list) # Estrai solo gli ID dei container in esecuzione vmids=$(echo "$output" | awk 'NR>1 && $2=="running" {print $1}') # Controlla se ci sono container in esecuzione if [ -z "$vmids" ]; then echo "Nessun container in esecuzione trovato." exit 1 fi # Itera sugli ID dei container trovati for vmid in $vmids; do echo "Attach di $vmid" # Esegui il comando 'lxc-attach' con una shell specifica lxc-attach --name "$vmid" -- /bin/bash done
Uno script molto banale che avrei potuto scrivere anche io, mi rendo conto, ma perché non approfittare di OpenAI e del suo giocattolo? 🙃
Così facendo, dopo un chmod +x sullo script bash appena salvato (il mio file si chiama molto semplicemente updateLXC.sh
), mi basterà eseguirlo da terminale per poter procedere poi con la manutenzione dei vari LXC. Nel caso di quelli basati su Alpine Linux, domani è già programmata la pubblicazione di un articolo che ti proporrà un altro script in grado di aggiornare rapidamente i pacchetti necessari e, in alternativa, un altro metodo per automatizzare ancora di più l’operazione.
Come alternativa a quanto proposto sopra, nel caso fosse per te “troppo home made“, c’è sempre la possibilità di appoggiarsi allo script proposto dalla community di Proxmox VE Helper-Scripts, progetto che adoro e sul quale faccio affidamento ormai da qualche tempo. Nello specifico, ti sto parlando di Proxmox VE LXC Updater, c’è la sua scheda riepilogativa (e la stringa d’esecuzione diretta da terminale, se vuoi) all’indirizzo community-scripts.github.io/ProxmoxVE/scripts?id=update-lxcs.
In caso di dubbi, come al solito, hai l’area commenti a tua disposizione.
#KeepItSimple
Immagine di copertina: proxmoxcentral.com
Pillole
Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato agli articoli "a bruciapelo"!
Se vuoi leggere le altre pillole fai clic qui.