Questa è una vecchia versione del documento!
Indice
Open Build Service: creazione pacchetti
Introduzione
L'Open Build Service (OBS)[(obs_site>)] è un sistema realizzato da Suse per centralizzare la gestione della creazione di pacchetti per la loro distro e altre.
Le caratteristiche principali di questo sistema sono le seguenti:
- gestione dei pacchetti raggruppati in progetti, staccati l'uno dall'altro
- compilazione dei sorgenti in ambienti isolati e sempre congruenti
- creazione automatica repository pacchetti
- versioning dei file di specifica e dei sorgenti utilizzati, in maniera simile a CVS/SVN
- API web per poter automatizzare certi aspetti delle build tramite chiamate HTTP
Quello che questo sistema non è in grado di effettuare (almeno per il momento) è l'esecuzione di build che prevedano lo scaricamento di qualsiasi tipo di informazione da internet, in quanto gli ambienti all'interno dei quali vengono effettuate le build sono isolati dalla rete per garantire la coerenza delle build.[(obs_isolated)]
Ogni sistema OBS presenta tre servizi agli utenti:
- l'interfaccia di gestione web (la webui), normalmente su HTTPS
- i repository dei pacchetti realizzati, normalmente su porta 82
- la web API, esposta normalmente su porta HTTPS [(obs_webapiport)]
Di queste componenti verrà effettuato un excursus nelle prossime sezioni.
Attualmente il sistema OBS è in uso per produrre i pacchetti Centos/Redhat di eXtraWay Enterprise Edition.
Ambienti installati
Attualmente sono installati 2 ambienti OBS in 3DI:
- obs-test.bo.priv, che contiene un'istanza OBS v2.4 sulla quale sono stati fatti i primi test di compilazione di extraway enterprise per Centos7;
- obs.bo.priv, che contiene un'istanza OBS v2.6, sulla quale sono stati copiati i pacchetti realizzati su obs-test e sulla quale si è proseguito con la creazione di nuovi pacchetti.
Entrambi i sistemi sono installati all'interno di due macchine virtuali senza grosse potenzialità computazionali, per cui si caldeggia, in vista di compilazioni consistenti, di istanziare un certo numero di OBS worker su altre macchine client più potenti e non sottoposte ad altri carichi per parallelizzare le build.
Operazioni fondamentali
Creazione di un nuovo progetto
Creazione di un nuovo pacchetto
Checkout di un intero progetto
Checkout di un pacchetto
Deploy di un pacchetto
Deploy di un pacchetto - CURL
Procedura di rilascio per eXtraWay Enterprise
Ad ogni nuova release di eXtraWay Enterprise, i passi da seguire sono i seguenti:
- creare un nuovo tarball di sorgenti mediante lo script makexweepackage.sh
- caricare il tarball creato su \\storage\SRC_REPO\3di\xwee\xwee (per mantenere uno storico)
- aggiornare il file .spec relativo ad xwee, modificando la versione in modo da puntare al nuovo tarball
- aggiornare la sezione changelog in coda al file .spec con la data corretta ed il dettaglio delle modifiche al pacchetto
- deploy dei nuovi sorgenti (sia .spec sia sorgenti veri e propri di xwee) sul corretto progetto OBS
Gestione pacchetti
Scaricamento pacchetto tramite OSC
Deploy tramite OSC
Deploy tramite CURL
Riferimenti esterni
[(obs_site> Sito ufficiale del progetto)]
[(obs_tutorial> Tutorial iniziale)]
[(obs_webapiport>Nelle versioni precedenti la 2.6 di OBS, la porta per la web API era la 444)]
[(obs_isolated>http://stackoverflow.com/a/33789070)]
Modalità di delivery dei pacchetti/repository
Documentazione per lo sviluppo