Gentoo webapp-config

Published: 10-01-2016

Updated: 25-01-2017

By: Maxime de Roucy

tags: gentoo webapp-config

Gentoo inclue des application web dans sont gestionnaire de paquet, webapp-config permet de déployer et manager ces application après leurs installation sur le système. En effet, emerge installe ces applications dans le dossier /usr/share/webapps/ il faut donc ensuite les déployer sur le serveur web.

commandes

Voici quelques commandes webapp-config que j’utilise régulièrement.

webapp-config -lui

liste les versions installées mais non déployées

root@server # webapp-config --lui
davical-1.1.3.1-r2
webapp-config -li

liste les applications déployée, avec leurs dossier de déploiement et donc leurs vhosts ; n’indique pas la version de l’application.

root@server # webapp-config -li
/var/www/davical.craoc.fr/htdocs/.
/var/www/davical.craoc.fr/htdocs/davical
/var/www/dokuwiki.craoc.fr/htdocs/dokuwiki
webapp-config -h dokuwiki.craoc.fr -d dokuwiki -si

indique le nom et la version de l’application déployer sur le vhost « dokuwiki.craoc.fr » dans le dossier « dokuwiki » du « htdocs » de ce vhost. Voir les détails sur l’option « -d » dans la section options.

root@server # webapp-config -h dokuwiki.craoc.fr -d dokuwiki -si
 dokuwiki 20140929d-r1
webapp-config -h dokuwiki.craoc.fr -I dokuwiki 20131208

déploi l’application dokuwiki en version 20131208 sur le vhost « dokuwiki.craoc.fr » dans le dossier «  dokuwiki  » (nom de l’application) du «  htdocs  » de ce vhost. Soit /var/www/dokuwiki.craoc.fr/htdocs/dokuwiki.

webapp-config -h dokuwiki.craoc.fr -U dokuwiki 20131208

met à jour l’application dokuwiki vers la version 20131208 sur le vhost « dokuwiki.craoc.fr » dans le dossier «   dokuwiki   » (nom de l’application) du «   htdocs   » de ce vhost. Soit /var/www/dokuwiki.craoc.fr/htdocs/dokuwiki.

webapp-config –show-postinst davical 1.1.3.1-r2

affiche les instruction post déploiement. La forme « -spi » existe aussi.

webapp-config –show-postupgrade davical 1.1.3.1-r2

affiche les instruction post upgrade. La forme « -spu » existe aussi.

options

-h
permet de spécifier le vhost
-d
permet de spécifier le dossier enfant du « htdocs » du vhost. La commande « -si » utilise « . » comme valeur par défaut pour cette option. Les autres commandes webapp-config utilise le nom de l’application comme valeur par défaut de « -d ». Je vous conseille de ne pas utiliser « -d . » cela peut poser problème avec certaines applications.
–soft
déploiement avec des liens symbolique. Attention, ça ne transforme pas les dossier en liens symbolique mais tous les fichiers. Tous les fichiers deviennent des liens symbolique.

Exemples

Déploiement

root@server # webapp-config -h dokuwiki.craoc.fr -I dokuwiki 20140929d-r1
* Install dir flag not supplied, defaulting to "dokuwiki".
root@server # l /var/www/davical.craoc.fr/htdocs
total 0
drwxr-xr-x 1 root root 396 23 déc.  23:14 davical/
root@server # l /var/www/davical.craoc.fr/htdocs/davical
total 120K
-rw-r--r-- 2 root root 1,4K  1 déc.  06:00 admin.php
-rw-r--r-- 2 root root  23K  1 déc.  06:00 always.php
-rw-r--r-- 2 root root 5,9K  1 déc.  06:00 caldav.php
…

Upgrade

Voici un exemple de mise à jour de davical.

Lecture des instruction post upgrade et post déploiement.

root@server # webapp-config -spu davical 1.1.3.1-r2
root@server # webapp-config -spi davical 1.1.3.1-r2

On peut aussi utiliser la méthode suivante :

max@server % sudo cat /var/log/portage/elog/summary.log
…
>>> Messages generated by process 6139 on 2015-07-30 12:19:30 CEST for package www-apps/davical-1.1.3.1-r2:

LOG: install
(info) /usr/portage/www-apps/davical/files/postinstall-en.txt (lang: en)
LOG: postinst
…
max@server % less /usr/share/webapps/davical/1.1.3.1-r2/postinst-en.txt

Le fichier postinst-en.txt peut être consulté sur le gitweb de l’arbre portage.

Listing des applications déployées, non déployées, et de la version déployée de davical :

root@server # sudo webapp-config --li
/var/www/davical.craoc.fr/htdocs
/var/www/dokuwiki.craoc.fr/htdocs
root@server # sudo webapp-config --lui
davical-1.1.3.1-r2
max@server % sudo webapp-config -h davical.craoc.fr -d davical --si
 davical 1.1.1-r1

Mise à jour de l’application :

max@server % sudo webapp-config -U -h davical.craoc.fr davical 1.1.3.1-r2
* Upgrading /davical-1.1.1-r1 to /davical-1.1.3.1-r2
*   Installed by root on 2014-12-22 19:14:17
*   Config files owned by 0:0
!time always.php
--- /var/www/davical.craoc.fr/htdocs
* Remove whatever is listed above by hand
*   Creating required directories
*   Linking in required files
*     This can take several minutes for larger apps
*   Files and directories installed
* Install completed - success

Modification manuel post upgrade, décrites dans les instruction post upgrade et post déploiement :

max@server % cd /usr/share/webapps/davical/1.1.3.1-r2/sqlscripts
max@server % ./update-davical-database --help
max@server % ./update-davical-database --dbuser davical_dba --appuser davical_app
The database is version 9.4 currently at revision 1.2.11.
No patches were applied.
Supported locales updated.
Updated view: dav_principal.sql applied.
CalDAV functions updated.
RRULE functions updated.
Database permissions updated.

Pour bien comprendre la fin de cette procédure il faut savoir que j’ai configuré mon serveur PostgreSQL pour accepter toute connection venant de « davical_app » et « davical_dba » sans mot de passe (trust) tant que la connection est « local ».