Récemment, je cherchais un moyen pour déployer rapidement des appli web et leurs mises à jours. J’avais écarté un peu rapidement Yum et les Rpm. Or il s’avère qu’on peut mettre ça en place assez rapidement et que c’est trés efficace. Dans un premier temps je vais montrer comment mettre en place le repository et dans un second temps je ferai un tuto pour créer des Rpm noarch (tout aussi facilement).
J’ai effectué tout cela sur Fedora 11 (i386) et Centos 5.5 (x64).
1. L’arborescence
J’utilise ‘/var/www/html/’ comme répertoire de travail.
Ci-dessous une arbo type, il s’agit surtout de conventions, libre à vous de l’adapter.
yum
├── base
│ └── [Distrib_version]
│ └── [arch]
│ ├── mydemo-1.0-1.noarch.rpm
│ └── repodata
│ ├── filelists.xml.gz
│ ├── other.xml.gz
│ ├── primary.xml.gz
│ └── repomd.xml
└── updates
└── [Distrib_version]
└── [arch]
├── mydemo-1.0-2.noarch.rpm
└── repodata
├── filelists.xml.gz
├── other.xml.gz
├── primary.xml.gz
└── repomd.xml
Création de l’arborescence sour Fedora 11 pour les packages ‘noarch’ :
mkdir -p /var/www/html/yum/{base,updates}/11/noarch
C’est tout, le répertoire repodata sera généré automatiquement plus tard.
2. Initialisation du repository
Il faut d’abord copier les Rpm que vous souhaitez mettre à dispo dans le répertoire ‘/var/www/html/yum/base/11/noarch/’ par exemple puis éxécuter l’utilitaire createrepo:
createrepo /var/www/html/yum/base/11/noarch createrepo /var/www/html/yum/updates/11/noarch
La mise à jour se fera en lançant :
createrepo --update /var/www/html/yum/updates/11/noarch
La création des Rpm noarch fera l’objet d’un autre post.
3. Configuration d’Apache
Ci-dessous vous trouverez un exemple de virtual host.
cat /etc/httpd/conf.d/repo.conf
<VirtualHost _default_:80>
DocumentRoot /var/www/html/yum/
ServerName repo.mydomain.tld
ErrorLog logs/repo.l-error_log
CustomLog logs/repo.l-access_log common
</VirtualHost>
<Directory /var/www/html/yum/>
AllowOverride FileInfo AuthConfig Limit
Options Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
Relancer Apache.
4. Configuration côté client
Pour utiliser notre nouveau repository côté client, il faut définir un fichier decripteur dans /etc/yum.repos.d/
Par exemple ‘my_fresh.repo’ :
[base-fresh] name= Fedora $releasever - noarch - Base baseurl=http://repo.mydomain.tld/base/$releasever/noarch/ enabled=1 gpgcheck=0 [updates-fresh] name=Fedora $releasever - noarch - Updates baseurl=http://repo.mydomain.tld/updates/$releasever/noarch/ enabled=1 gpgcheck=0
Voilà, nous sommes fin prêt à déployer nos web app ! Dans un prochain poste je montrerai comment créér des Rpm.
5. Pour aller plus loin
Avoir son repo peut être aussi pratique pour se faire un mirroir de la distrib officielle.
Il peut être utile de signer le repo pour plus de sécurité.
