20111205 breizh jug-packaging-natif

69
DEVOPS L’approche packaging natif

description

Présentation DevOps au BreitzJUG. Approche Packaging Natif

Transcript of 20111205 breizh jug-packaging-natif

Page 1: 20111205 breizh jug-packaging-natif

DEVOPSL’approche packaging natif

Page 2: 20111205 breizh jug-packaging-natif

PACKAGING NATIF

• Coeur de la pile applicative des OS

• Gestion des dépendances

•Mise à jour automatique ou sélective

• Utilisé par les Ops

Page 3: 20111205 breizh jug-packaging-natif

PACKAGING SOUS UNIX

• RPM (Redhat Package Manager) sous RHEL/CentOS/ Fedora, SLES/OpenSuse, Mandriva

•DEB sous Debian/Ubuntu

• PKG sous Solaris

Page 4: 20111205 breizh jug-packaging-natif

QU’EST-CE QU’UN PACKAGE ?

• Un fichier (.rpm, .deb)

•Des données (fichiers et programmes)

•Du code exécuté lors de l’installation, la mise à jour ou la suppression du package

• Lié à une architecture (Intel, ARM, PowerPC en 32 ou 64bits) ou neutre (exemple: une application Java)

Page 5: 20111205 breizh jug-packaging-natif

POINTS COMMUNS AVEC MAVEN

• Construction par DSL simple

•Quelques commandes pour les manipuler (rpm, apt-get)

• Gestion des dépendances pour la construction mais aussi pour l’exécution

•Dépôts de packages, accessible en local ou via HTTP

•Nexus et Artifactory peuvent servir de dépôts RPM

•Mises à jour automatiques ou contrôlées

Page 6: 20111205 breizh jug-packaging-natif

UN DSL POUR LES OPS

• Simple

•Quelques macros

• SH powered

Page 7: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 8: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Nom

Page 9: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 10: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Version

Page 11: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 12: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Release (corrective)

Page 13: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 14: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Résumé du package

Page 15: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 16: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

URL du fournisseur (ex: www.mysql.com)

Page 17: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 18: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Licence

Page 19: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 20: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Architecture (processeur, model ou neutre)

Page 21: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 22: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Pré-requis à l’exécution (zero à plusieurs)

Page 23: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 24: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Source (un à plusieurs)

Page 25: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 26: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Description complète du package

Page 27: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 28: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Préparation de construction (décompression des sources généralement)

Page 29: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 30: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Construction (depuis sources mais pas seulement)

Page 31: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 32: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Organisation dans le système de fichiers

Page 33: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 34: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Opérations pré installation

Page 35: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 36: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Opérations post installation

Page 37: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 38: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Opérations pre désinstallation

Page 39: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 40: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Opérations post désinstallation

Page 41: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 42: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files Listes des fichiers

Page 43: 20111205 breizh jug-packaging-natif

SOURCE D’UN RPMName: myappVersion: 1.0.0Release: 1Summary: MyApp powered by Apache TomcatGroup: Applications/CommunicationsURL: http://www.mycorp.org/Vendor: MyCorpPackager: MyPackagerLicense: AGPLv1BuildArch: noarch

%define tomcat_rel 7.0.22

Requires: java = 1.6.0

Source0: apache-tomcat-%{tomcat_rel}.tar.gz

%descriptionMyApp powered by Apache Tomcat

%prep%setup -q -c

%build

%install

%clean

%pre

%post

%preun

%postun

%files

Page 44: 20111205 breizh jug-packaging-natif

AUTO-SUFFISANT

• Un package est auto-suffisant

• Programmes principaux et annexes (ex: logrotate)

•Données

• Comptes utilisateurs

• Contrôle total sur le cycle de vie ‘en situation’

Page 45: 20111205 breizh jug-packaging-natif

CYCLE DE VIE IN SITU

• Contrôle total sur le cycle de vie ‘en situation’

• Hooks pre/post installation

• Hook lors de la mise à jour

• Hooks pre/post désintallation

• Hooks sur opération sur autres packages

Page 46: 20111205 breizh jug-packaging-natif

ET ENCORE

• Un processus déterministe et donc réplicable

• Peut être utilisé par Puppet ou Chef

•Des artifacts centralisables comme pour Maven

• Une approche composant runtime

Page 47: 20111205 breizh jug-packaging-natif

TYPES DE RPMS

Page 48: 20111205 breizh jug-packaging-natif

TYPES DE RPMS

RPMs OSRPMs OSRPMs OS

Page 49: 20111205 breizh jug-packaging-natif

TYPES DE RPMS

RPMs OSRPMs OSRPMs OS

Fournis par votre distribution Linux

Page 50: 20111205 breizh jug-packaging-natif

TYPES DE RPMS

RPMs OSRPMs OSRPMs OS

RPMs ApplicatifRPMs ApplicatifRPMs Applicatif

Fournis par votre distribution Linux

Page 51: 20111205 breizh jug-packaging-natif

TYPES DE RPMS

RPMs OSRPMs OSRPMs OS

RPMs ApplicatifRPMs ApplicatifRPMs Applicatif

Fournis par votre distribution Linux

Produits par les Devs & Ops

Page 52: 20111205 breizh jug-packaging-natif

TYPES DE RPMS

RPMs OSRPMs OSRPMs OS

RPMs ApplicatifRPMs ApplicatifRPMs Applicatif

RPMs ConfigurationRPMs ConfigurationRPMs ConfigurationRPMs Configuration

Fournis par votre distribution Linux

Produits par les Devs & Ops

Page 53: 20111205 breizh jug-packaging-natif

TYPES DE RPMS

RPMs OSRPMs OSRPMs OS

RPMs ApplicatifRPMs ApplicatifRPMs Applicatif

RPMs ConfigurationRPMs ConfigurationRPMs ConfigurationRPMs Configuration

Fournis par votre distribution Linux

Produits par les Devs & Ops

Produits par les Ops

Page 54: 20111205 breizh jug-packaging-natif

L’ASSEMBLAGE

• Installer une usine à packages (Jenkins)

• Créer un dépôt de packages

• Apache HTTPd

•Nexus/Artifactory

• Préparer des images Linux (JeOS)

Page 55: 20111205 breizh jug-packaging-natif

USINE A PACKAGES

• Jenkins (what else ?)

• Un agent Jenkins par distribution cible

•Déployer les outils de construction packages sur l’agent

• rpm-build, make, autoconf (RPM)

• build-essential, devscripts, ubuntu-dev-tools (DEB)

Page 56: 20111205 breizh jug-packaging-natif

DÉPÔT DE PACKAGES

• Serveur Apache HTTPd

• Installer createrepo (RPM), dpkg-dev (DEB)

• Upload via web-dav ou ssh (plus simple)

•Nexus/Artifactory

• Installer createrepo (RPM), dpkg-dev (DEB)

• Upload via web-dav (par Maven par exemple)

Page 57: 20111205 breizh jug-packaging-natif

JEOS

• Juste les composants essentiels de l’OS

•Moins de packages installés

• Taux de mise à jour plus faible

• Réduction des risques de failles de sécurité

• Une empreinte mémoire et disque réduite

Page 58: 20111205 breizh jug-packaging-natif

DE JEOS À INSTANCE

• Inventaire des besoins

• Pré-requis et dépendances

• Spécificités applicatives

Page 59: 20111205 breizh jug-packaging-natif

LES COMMUNS

• Serveur SSH

• Comptes administrateur

•Monitoring (SNMP)

• Firewall (port 22 et SNMP autorisés)

Page 60: 20111205 breizh jug-packaging-natif

MA PETITE FORGE

• Subversion

• Git

• Jenkins

•Nexus

• Sonar

Page 61: 20111205 breizh jug-packaging-natif

SUBVERSION

• Apache HTTPd server

• Subversion

• Viewvc

• Comptes utilisateurs

Page 62: 20111205 breizh jug-packaging-natif

GIT

• Environnement Java (OpenJDK, Sun/Oracle ou IBM)

• GitBlit

• Compte utilisateur spécifique

• Tomcat 7 powered & single webapp

Page 63: 20111205 breizh jug-packaging-natif

JENKINS

• Environnement Java (OpenJDK, Sun/Oracle ou IBM)

• Jenkins

• Compte utilisateur spécifique

• Tomcat 7 powered & single webapp

Page 64: 20111205 breizh jug-packaging-natif

NEXUS

• Environnement Java (OpenJDK, Sun/Oracle ou IBM)

•Nexus

• Compte utilisateur spécifique

• Tomcat 7 powered & single webapp

Page 65: 20111205 breizh jug-packaging-natif

SONAR

• Environnement Java (OpenJDK, Sun/Oracle ou IBM)

• Sonar

• Compte utilisateur spécifique

• Tomcat 7 powered & single webapp

• SQL backend (Derby ou MySQL)

Page 66: 20111205 breizh jug-packaging-natif

MYSQL BACKEND

•MySQL

• Comptes utilisateurs

• Configuration InnoDB

Page 67: 20111205 breizh jug-packaging-natif

GLOBAL FRONT-END

• Apache HTTPd VHosts

• Subversion

• Jenkins

•Nexus

• Sonar

Page 68: 20111205 breizh jug-packaging-natif

RPM DEVOPS

• http://code.google.com/p/devops-incubator/

• RPMs pour Subversion, GitBlit, Jenkins, Nexus, Sonar

• Pour OpenSuse 12.1