open recipes - hubs : du packaging en solo à l'industrialisation du packaging

21
www.hupstream.com Anne Nicolas [email protected] Arnaud Patard [email protected]

Upload: anne-nicolas

Post on 12-Aug-2015

142 views

Category:

Software


0 download

TRANSCRIPT

Industrialisation Gnu/Linux : du code au package logiciel

# 1 L'intégration de logiciels Open Source c'est souvent...

la construction de paquets logiciels sur sa propre machine

➔pas de règles précises pour conduire la façon de packager

➔problème de gestion des dépendances (installées sur la machine du développeur)

➔...

# 1 L'intégration de logiciels Open Source c'est souvent...

Mise en place de processus formels pour la gestion des paquets logiciels

➔soumission de nouveaux paquets,

➔mises à jour,

➔contenus,

➔interactions entre composants

# 2 Pourquoi un système de build de paquets

➔un projet client : un produit multimedia basé sur debian, maintenable sur 10 à 15 ans

➔insdustrialiser la production de paquets et garantir la reproductibilité et la traçabilité

➔utiliser au maximum les outils upstream du projet debian

➔faciliter et rationnaliser l'administration de la plate-forme en utilisant des outils 100 % libres

# 2 Le point de départ

➔automatisationdiminue les possibilités d'une erreur humaine

➔traçabilité historisation de toutes les modifications des paquets (VCS)connaissance complète des étapes de la production (BS)

➔reproductibilitéenvironnement de build propre, connu et réinitialisé reconstruire n'importe quel paquet, à l'identique et à tout moment

➔qualité et sécuritédes machines de build dont la configuration est connue et contrôléevérifications des erreurs fréquentes de packaging, du respect des

politiques de packaging

# 2 Avantages d'un système de build de paquets

➔paquets au format DebianDebian, Ubuntu

➔paquets au format RPM Red Hat, CentOS, Mageia, SUSE à testerutilise les outils de build associés (mock, iurt)

➔Pas de modification des metadata de packaging en fonction des distributions

# 3 Distributions supportées

http://xkcd.com

➔ Composants du système de buildun serveur de services d'infrastructure

un serveur de code (en option) un serveur de gestion de configuration et de build de paquets un ou plusieurs noeuds de build

➔ Principe de fonctionnementen mode pull : les noeuds de build s'adressent au schedulerune base de donnée qui enregistre les états

# 3 Composants et principes de fonctionnement

Option

# 3 Schéma d'organisation de hubs

scheduler

démonde build

➔un compte utilisateurlogin, clé ssh, clé GPGdroits d'accès à un ou plusieurs dépots

➔un paquet sourceun fichier changes (liste des fichiers de l'archive)

➔une commande d'uploadcommande upstream (ex : dupload)wrapper / dépot git

# 3 La soumission de paquets

# 3 Suivre le build de ses paquets

# 3 Administration

➔Gestion centralisée de l'ensemble de la plate-forme avec puppet

apt, concat, fusiondirectory, gitweb, hubs_config, mysql, pam, rebuildtools, sudo, aptcacher, debian_buildsystem, git, gnupg, ldap, nsswitch, postgresql, ssh, urpmimedia, bugzilla, dokuwiki, gitolite, hubs_api, mantis, openssl, puppetlabs-create_resources, stdlib

➔Sources diverses : "maison", puppet labs, autres sources

➔Déploiement de la plate-forme en 1h, y compris les tests pour vérification du bon fonctionnement

# 3 Administration : puppet

● Gestion des entrées de l'annuaire OpenLDAP

utilisateurs et groupes du système de builddépots de paquets et dépots utilisateursclés ssh et GPG

# 3 Administration : FusionDirectory

# 3 L'interface de FusionDirectory

➔Phase de nettoyage des sources terminée

➔Publication des sources dépot git

➔Outils de travail collaboratif à venirbug trackerwiki, documentationblog

# 4 hubs, un projet open source

# 5 Demo

Questions ?

@hupstreamhupstream.com #hupstream (freenode)