Project

General

Profile

Segnalazione #923

Inclusione di fuss-fucc in fuss-server al posto di pxe-clonezilla

Added by Claudio Cavalli 2 months ago. Updated 21 days ago.

Status:
Risolto
Priority:
Alta
Start date:
11/12/2019
Due date:
% Done:

0%


Description

Ciao Simone,
abbiamo creato un client virtuale buster su Maia e volevamo crearne un'immagine da mettere sul server. Abbiamo visto che hai disattivato pxe-clonezilla su Marcela. E' possibile integrare al suo posto fuss-fucc ( https://gitlab.fuss.bz.it/fuss/fucc )?
Grazie
Claudio e Paolo

History

#1 Updated by Simone Piccardi 2 months ago

Si è possibile, ma il pacchetto c'è per buster, e quali sono le configurazioni di default?

#2 Updated by Simone Piccardi 2 months ago

  • Assignee changed from Simone Piccardi to Claudio Cavalli

#3 Updated by Marco Marinello about 2 months ago

  • Assignee changed from Claudio Cavalli to Simone Piccardi

Ok ho aggiornato il tree su https://gitlab.fuss.bz.it/fuss/fucc/tree/buster con l'ultimo merge. Questa versione è senza debconf.

Ci aspettiamo

- che il fuss-server, durante la prima installazione, esegua il rebuild dello squashfs inserendoci una chiave privata generata al momento ( refs https://gitlab.fuss.bz.it/fuss/fucc/blob/buster/Makefile#L22 );

- che sostituisca "proxy" nel template di pxelinux con l'IP del server, in caso di problemi con il DNS;

- che il fuss-server imposti la chiave generata come authorized_keys per accedere all'utente clonezilla;

- che generi un'ulteriore chiave o, in alternativa, ne generi una di quelle per le chiavette usb, la copi dove necessario (home di clonezilla) e la autorizzi ad eseguire i comandi che servono al fuss-client sul server ( refs https://gitlab.fuss.bz.it/fuss/fucc/blob/master/debian/postinst )

#5 Updated by Simone Piccardi about 2 months ago

  • Assignee changed from Simone Piccardi to Elena Grandi

#6 Updated by Elena Grandi about 2 months ago

  • Assignee changed from Elena Grandi to Marco Marinello

Vedo che i deb come artefatti su gitlab sono una versione più recente di quella disponibile sul repository: c'è intenzione di caricarli sullo stesso?

Per fuss-server è molto meglio installare i pacchetti dal repository.

Se ci sono problemi temporanei con la versione 0.5 e/o non è ancora pronta, per Maia si può al limite installare a mano il deb prima di lanciare fuss-server, in modo da ritrovarsi con la versione 0.5 al posto della 0.4 del repository, ma è un workaround temporaneo che si può fare per una macchina sola, non quando poi lo si usa davvero.

#7 Updated by Elena Grandi about 2 months ago

guardando meglio: il deb comprende anche lo squashfs generato, che però è da modificare, giusto?

Nel caso, se viene aggiornato il deb viene anche sovrascritto lo squashfs, quindi l'aggiunta della chiave va fatta a tutte le installazioni, non solo la prima (e nel caso, potrebbe valer la pena farla fare ad uno script di postinst del pacchetto?)

#8 Updated by Elena Grandi about 2 months ago

Vedo che si parla di "debconf": per cosa veniva usato?

Chiedo perché riguardo a sostituire proxy, credo che il modo più elegante sia far fare anche quello al pacchetto chiedendo l'indirizzo da usare tramite debconf, ma fare preseed dell'opzione a fuss-server: ci sono controindicazioni che non ho modo di sapere?

#9 Updated by Marco Marinello about 2 months ago

  • Assignee changed from Marco Marinello to Paolo Dongilli

Elena Grandi wrote:

Vedo che i deb come artefatti su gitlab sono una versione più recente di quella disponibile sul repository: c'è intenzione di caricarli sullo stesso?

Sì. Paolo dovrebbe provvedere a breve.

Elena Grandi wrote:

guardando meglio: il deb comprende anche lo squashfs generato, che però è da modificare, giusto?

Nel caso, se viene aggiornato il deb viene anche sovrascritto lo squashfs, quindi l'aggiunta della chiave va fatta a tutte le installazioni, non solo la prima (e nel caso, potrebbe valer la pena farla fare ad uno script di postinst del pacchetto?)

Sì ecco un po' di spiegazioni. Mi sono perso io a ricostruire il ramo buster da master dopo le ultime modifiche: l'idea era di mettere questi file da qualche altra parte (/usr/share ?) e poi far fare al fuss-server la rigenerazione e copia. Questa era la strategia discussa con Piccardi. Debconf veniva utilizzato per chiedere cosa si usasse come base per clonezilla, che alcuni tecnici modificavano a mano.

Puoi fare riferimento a master per capire come funziona ora con fuss-server 8.

Fammi sapere se ti servono modifiche.

#10 Updated by Marco Marinello about 2 months ago

  • Assignee changed from Paolo Dongilli to Elena Grandi

#11 Updated by Elena Grandi about 2 months ago

  • Status changed from Nuovo to In elaborazione
  • Assignee changed from Elena Grandi to Marco Marinello

Ah, ora capisco, sì, togliere le funzionalità dal pacchetto e spostarle as fuss-server ha senso (contrapposto a duplicarle).

L'immagine base è ancora la stessa che c'è nel pacchetto clonezilla-pxe (e si vuole continuare ad usare quello)? o la devo procurare da qualche altra parte?

Al momento anche quel pacchetto estrae in /srv/tftp/clonezilla/, potrebbe essere un buon motivo per fare un pacchetto con un nome diverso (ma potrebbe essere fatto in modo molto simile, cambiando solo il path).

Intanto posso lavorare sulla parte fuss-server usando quello, ditemi come si preferisce fare per ottenere l'immagine che poi faccio anche quello.

#12 Updated by Marco Marinello about 2 months ago

  • Assignee changed from Marco Marinello to Elena Grandi

Elena Grandi wrote:

Ah, ora capisco, sì, togliere le funzionalità dal pacchetto e spostarle as fuss-server ha senso (contrapposto a duplicarle).

L'immagine base è ancora la stessa che c'è nel pacchetto clonezilla-pxe (e si vuole continuare ad usare quello)? o la devo procurare da qualche altra parte?

Il CI/CD scarica l'ultima versione dal mirror di clonezilla prima di iniziare la build. Dunque immagino la risposta sia sì.

Al momento anche quel pacchetto estrae in /srv/tftp/clonezilla/, potrebbe essere un buon motivo per fare un pacchetto con un nome diverso (ma potrebbe essere fatto in modo molto simile, cambiando solo il path).

Intanto posso lavorare sulla parte fuss-server usando quello, ditemi come si preferisce fare per ottenere l'immagine che poi faccio anche quello.

Le modifiche che facciamo allo squashfs sono tutte nel Makefile che è poi solo l'aggiunta della chiave.

Ovviamente in caso di aggiornamenti si dovrebbe rigenerare localmente lo squashfs partendo dalla versione aggiornata.

Non ho ben capito se hai bisogno di qualcosa da me, riassegnami ev.te il ticket.

#13 Updated by Elena Grandi about 2 months ago

  • Assignee changed from Elena Grandi to Marco Marinello

Marco Marinello wrote:

Elena Grandi wrote:

Ah, ora capisco, sì, togliere le funzionalità dal pacchetto e spostarle as fuss-server ha senso (contrapposto a duplicarle).

L'immagine base è ancora la stessa che c'è nel pacchetto clonezilla-pxe (e si vuole continuare ad usare quello)? o la devo procurare da qualche altra parte?

Il CI/CD scarica l'ultima versione dal mirror di clonezilla prima di iniziare la build. Dunque immagino la risposta sia sì.

Ho visto il download, che viene fatto senza verifica dell'immagine downloadata, che non è il massimo.

Al momento quindi abbiamo l'immagine di clonezilla in due posti: uno è il pacchetto clonezilla-pxe, che contiene solo clonezilla, ma lo installa nel posto sbagliato l'altro è il pacchetto fuss-fucc, che contiene anche altro e contiene un'immagine di clonezilla non verificata.

Io propongo di togliere clonezilla da fuss-fucc e fare una nuova versione del pacchetto clonezilla-pxe (magari rinominato in clonezilla-pxe-base? o qualche altro nome furbo) che installi l'immagine in /var/lib/clonezilla (o altre destinazioni opportune), in modo tale che il fuss-server possa prenderla e generare l'immagine da mettere in /srv/tftp/clonezilla/.

Va bene come piano?

(...)
Non ho ben capito se hai bisogno di qualcosa da me, riassegnami ev.te il ticket.

al limite se si decide di farlo potrebbe essere utile togliere clonezilla dal pacchetto di fuss-fucc, per il resto son cose che posso fare io

#14 Updated by Marco Marinello about 2 months ago

  • Assignee changed from Marco Marinello to Paolo Dongilli

A me sembra sufficientemente intelligente come soluzione, chiedo solo l'approvazione anche di Paolo.

#15 Updated by Paolo Dongilli about 2 months ago

  • Assignee changed from Paolo Dongilli to Elena Grandi

Ok, va bene anche per me la proposta.

#16 Updated by Elena Grandi about 2 months ago

  • Assignee changed from Elena Grandi to Marco Marinello

Intanto ho creato il pacchetto clonezilla-fuss che installa in /var/lib/clonezilla. Ho visto che il pacchetto poteva già anche generare l'immagine in /srv/tftp/clonezilla/ in fase di postinst e lo sta facendo (così è più facile farlo quando si aggiorna l'immagine e non in altri momenti).

Manca ancora completare l'integrazione in fuss-server con il pacchetto fatto così.

Marco: sarebbe utile avere sui repository il pacchetto fuss-fucc senza immagine di clonezilla: riesci a fare tu o devo modificare e buildare io?

#17 Updated by Marco Marinello about 1 month ago

Scusami Elena, ho letto solo ora. Ho fatto qua, https://gitlab.fuss.bz.it/fuss/fucc/-/jobs/119 , guarda se può andare p.f.

#18 Updated by Marco Marinello about 1 month ago

  • Status changed from In elaborazione to Commenti
  • Assignee changed from Marco Marinello to Elena Grandi

Se ok pubblico in repo

#19 Updated by Marco Marinello about 1 month ago

... non va debuild hai tempo per darmi una dritta? fakeroot debian/rules binary funziona

#20 Updated by Elena Grandi about 1 month ago

  • Assignee changed from Elena Grandi to Marco Marinello

Il problema di debuild è che dal numero di versione 0.5-1 si aspetta di buildare un pacchetto debian “normale”, con una tarball sorgente con uno dei nomi di file scritti sotto.

Fino ad ora invece il pacchetto fuss-fucc era un pacchetto nativo, come specificato in debian/source/format che non ha bisogno di una tarball sorgente, ma non può avere il carattere - nel numero di versione.

https://fuss-dev-guide.readthedocs.io/it/latest/pacchetti-e-repository.html#policy-di-versionamento

Per il caso specifico, credo che la soluzione giusta sia cambiare il numero di versione in 0.5.1.

Non ho ancora guardato il resto del pacchetto, credo che lo guarderò domani.

#21 Updated by Marco Marinello about 1 month ago

  • Assignee changed from Marco Marinello to Elena Grandi

#22 Updated by Elena Grandi about 1 month ago

  • Assignee changed from Elena Grandi to Marco Marinello

Mi pare che vada bene e che si possa caricare sul repository.

Io intanto proseguo con la parte ansible/fuss-server

#23 Updated by Marco Marinello about 1 month ago

  • Assignee changed from Marco Marinello to Paolo Dongilli
  • Priority changed from Alta to Urgente

Grazie Paolo.

#24 Updated by Paolo Dongilli about 1 month ago

  • Assignee changed from Paolo Dongilli to Elena Grandi
  • Priority changed from Urgente to Alta

Fatto, la nuova versione è nei repository: http://archive.fuss.bz.it/pool/main/f/fuss-fucc/

#25 Updated by Paolo Dongilli about 1 month ago

  • Assignee changed from Elena Grandi to Marco Marinello
  • Priority changed from Alta to Urgente

Ciao Marco, potresti per favore indicare a Elena come intrpretare il "dove necessario" nel punto 4:

che generi un'ulteriore chiave o, in alternativa, ne generi una di quelle per le chiavette usb, la copi dove necessario (home di clonezilla) e la autorizzi ad eseguire i comandi che servono al fuss-client sul server ( refs https://gitlab.fuss.bz.it/fuss/fucc/blob/master/debian/postinst )

Grazie!

#26 Updated by Marco Marinello about 1 month ago

  • Assignee changed from Marco Marinello to Elena Grandi
  • Priority changed from Urgente to Alta

#27 Updated by Elena Grandi about 1 month ago

Aggiornamento dello status

Marco Marinello wrote:

- che il fuss-server, durante la prima installazione, esegua il rebuild dello squashfs inserendoci una chiave privata generata al momento ( refs https://gitlab.fuss.bz.it/fuss/fucc/blob/buster/Makefile#L22 );

lo sta facendo il pacchetto clonezilla-fuss, in modo tale che il rebuild dello squashfs avvenga ad ogni aggiornamento di clonezilla, senza bisogno di rilanciare fuss-server

- che sostituisca "proxy" nel template di pxelinux con l'IP del server, in caso di problemi con il DNS;

lo fa la versione di fuss-server nel repository: qui c'è una cosa poco elegante, ovvero che il fuss-server riscrive il template di pxelinux ogni volta (fare la sostituzione altrimenti non era banale), per cui se ci sono da fare modifiche van fatte in due posti diversi: il pacchetto fuss-fucc e dentro a fuss-server.

Intanto funziona, ma si può migliorare.

- che il fuss-server imposti la chiave generata come authorized_keys per accedere all'utente clonezilla;

anche questo lo fa il pacchetto, in modo che non serva lanciare fuss-server quando lo si aggiorna.

- che generi un'ulteriore chiave o, in alternativa, ne generi una di quelle per le chiavette usb, la copi dove necessario (home di clonezilla) e la autorizzi ad eseguire i comandi che servono al fuss-client sul server ( refs https://gitlab.fuss.bz.it/fuss/fucc/blob/master/debian/postinst )

e questa è la parte che manca, su cui sto lavorando ora.

#28 Updated by Elena Grandi about 1 month ago

  • Assignee changed from Elena Grandi to Marco Marinello

Marco Marinello wrote:

Qui si intende la home di clonezilla sul server FUSS (cfr. https://gitlab.fuss.bz.it/fuss/fucc/blob/master/debian/postinst#L3 e https://gitlab.fuss.bz.it/fuss/fucc/blob/master/debian/postinst#L20 )

sto vedendo in quel file che viene ancora installata la chiave dell'immagine clonezilla nell'authorized_key dell'utente clonezilla: questo sarebbe da togliere visto che lo fa il pacchetto clonezilla-fuss (e tra l'altro in quel modo vengono tolte le chiavi esistenti)
https://gitlab.fuss.bz.it/fuss/fucc/blob/master/debian/postinst#L11

#29 Updated by Elena Grandi about 1 month ago

quello che non mi è chiaro è nel funzionamento fuss-fucc riguardo alla home di clonezilla sul fuss-server: sui client ci sarà un'utente clonezilla che usa quella home?

Intanto posso implementare pari pari nel fuss-server quello che c'è in quel file (e che poi sarà da togliere anche lui), ma vorrei capire meglio cosa sta succedendo (anche per sapere dove fare delle ulteriori modifiche che possono servire a fuss-manager).

#30 Updated by Marco Marinello about 1 month ago

Quella linkata è dal ramo buster per jessie, in buster non c'è alcun postinst, come richiesto.

#31 Updated by Marco Marinello about 1 month ago

Elena Grandi wrote:

quello che non mi è chiaro è nel funzionamento fuss-fucc riguardo alla home di clonezilla sul fuss-server: sui client ci sarà un'utente clonezilla che usa quella home?

Intanto posso implementare pari pari nel fuss-server quello che c'è in quel file (e che poi sarà da togliere anche lui), ma vorrei capire meglio cosa sta succedendo (anche per sapere dove fare delle ulteriori modifiche che possono servire a fuss-manager).

Allora, il behaviour è che la home di clonezilla viene montata da partimag come /home/clonezilla della live e fino a qua credo non ci siano dubbi. Dopo il clone serve copiare le chiavi ssh per ultimare il join dopo il reboot. Per fare questo si copia il .ssh di /home/clonezilla (che è quindi la home di clonezilla sul server) in /root del nuovo client.

#32 Updated by Elena Grandi about 1 month ago

Ottimo, grazie, era l'info che mi serviva.

Ho appena caricato su buster-proposed-updates anche la nuova versione di fuss-server, che dovrebbe fare tutto quanto richiesto.

Perché tutto sia funzionante manca la nuova versione di fuss-fucc che non faccia modifiche delle chiavi.

#33 Updated by Paolo Dongilli about 1 month ago

Elena Grandi wrote:

Ottimo, grazie, era l'info che mi serviva.

Ho appena caricato su buster-proposed-updates anche la nuova versione di fuss-server, che dovrebbe fare tutto quanto richiesto.

Perché tutto sia funzionante manca la nuova versione di fuss-fucc che non faccia modifiche delle chiavi.

Ho caricato fuss-fucc_0.5.1 in buster-proposed-updates. Prima avevo caricato in repo buster su archive ma non veniva visto dal mio server fuss di test.
fuss-server upgrade ora è andato a buon fine senza errori. Prima terminava con errore perché non trovava fuss-fucc.

#34 Updated by Elena Grandi 22 days ago

  • Assignee changed from Marco Marinello to Paolo Dongilli

Questo ticket si può quindi chiudere? (e semmai aprirne altri se ci sono problemi specifici o ulteriori modifiche)

#35 Updated by Marco Marinello 21 days ago

  • Status changed from Commenti to Risolto

direi di si.

Also available in: Atom PDF