Work In Progress

Introduction

Le CLI permet d'administrer le Wiff en ligne de commande.

Utilisation

La commande `wiff' permet de manipuler et administrer les contextes Freedom.

A terme, les opérations actuellement accessibles à travers l'UI Web, seront accessibles en ligne de commande à l'aide de cette commande `wiff'.

La commande `wiff' doit être lancé sous `root'. Pour cela, vous pouvez soit vous logger sous le compte `root' pour exécuter la commande, soit utiliser `sudo pour exécuter celle-ci.

Si vous n'êtes pas `root' sur le serveur, et que les opérations d'administrations s'effectuent avec `sudo' :

$ sudo /var/www/wiff/wiff help
Password: ******
[message d'aide]

Si vous avez accès au compte `root' sur le serveur :

# /var/www/wiff/wiff help
[message d'aide]

Par la suite, nous utiliserons la notation de ce dernier cas (`# /var/www/wiff/wiff').

Commandes

Lister les contextes existants

Syntaxe

list context [--pretty]

Description

Cette opération permet d'afficher les contextes installés.

Exemple

# /var/www/wiff/wiff list context
developpement
test
production
# /var/www/wiff/wiff list context --pretty
Name               Description                                                     
-----------------------------------------------------------------------------------
developpement      Développement
test               Test
production         Production

Manipuler les modules du contexte

Lister les modules installés

Syntaxe

context <context-name> module list installed [--pretty]

Description

Cette opération affiche les modules installés dans le contexte sélectionné.

Exemple

# /var/www/wiff/wiff context test module list installed
freedom-core (2.14.1-12)
freedom-vault (3.10.0-0)
freedom-fckeditor (2.6.3-5)
freedom-common (0.6.0-0)
freedom (2.14.3-18)
freedom-webdesk (1.2.0-2)

Lister tous les modules disponibles à l'installation

Syntaxe

context <context-name> module list available [--pretty]

Description

Cette opération affiche la liste des modules disponibles sur les dépôt de paquets accessibles par HTTP ou FTP.

Exemple

# /var/www/wiff/wiff context test module list available
freedom-vault (3.10.0-0)
freedom-extjs (3.0.0-4)
freedom (2.14.3-18)
freedom-core (2.14.1-12)
[...]
freedom-searchsheet (0.2.0-0)
freedom-ecm (0.0.4-0)
freedom-theme (0.0.1-3)
freedom-url (0.0.0-3)

Lister les modules installés ayant une mise-à-jour de disponible

Syntaxe

context <context-name> module list upgrade [--pretty]

Description

Cette opération permet d'afficher la liste des modules installés dont une mise-à-jour est disponible sur les dépôts de paquets.

Exemple

# /var/www/wiff/wiff context test module list upgrade
freedom-core (2.14.1-12)
freedom (2.14.3-18)

Installer un module

Syntaxe

context <context-name> module install [options] <localPackagePath>
context <context-name> module install [options] <moduleName>

Description

Cette opération permet d'installer un module contenu dans un paquet local (archive .webinst stocké en local sur le serveur) ou à partir d'un paquet disponible sur un dépôt de paquets distant accessible par HTTP ou FTP.

Les options disponibles sont :

  • `–nopre' permet de ne pas exécuter les processus de `pre-install' déclarés par le paquet.
  • `–nopost' permet de ne pas exécuter les processus de `post-install' déclarés par le paquet.
  • `–nothing' permet de ne pas exécuter les processus de `pre-install' et de `post-install' déclarés par le paquet.
  • `–force' permet de forcer l'installation du paquet même si celui-ci est déjà installé.

Exemple

Installation d'un paquet distant :

# /var/www/wiff/wiff context test module install freedom
Will install (or upgrade) the following packages:
- freedom-core-2.14.1-12 
- freedom-vault-3.10.0-0 
- freedom-fckeditor-2.6.3-5 
- freedom-common-0.6.0-0 
- freedom-2.14.3-18 
Proceed to installation ? [Y/n] Y

Processing required module 'freedom-core' (2.14.1-12) for install.
Downloading module 'freedom-core-2.14.1-12'... [OK]

Parameters for module 'freedom-core'
------------------------------------

client_name ? [] Test

core_db ? [test] 

authtype ? [html] 

apacheuser ? [www-data] _www

Doing 'pre-install' of module 'freedom-core'.
[...]
Doing 'unpack' of module 'freedom-core'.
Unpacking module 'freedom-core'... [OK]
Doing 'post-install' of module 'freedom-core'.
Running 'Initialize system database'... [OK]
Running 'Record core application in database'... [OK]
Running 'Record users application in database'... [OK]
Running 'Record access application in database'... [OK]
Running 'Record authent application in database'... [OK]
Running 'Record appmng application in database'... [OK]
Running 'Generate traduction catalog'... [OK]
Running 'Register client name'... [OK]

Processing required module 'freedom-vault' (3.10.0-0) for install.
Downloading module 'freedom-vault-3.10.0-0'... [OK]
Doing 'pre-install' of module 'freedom-vault'.
Doing 'unpack' of module 'freedom-vault'.
Unpacking module 'freedom-vault'... [OK]
Doing 'post-install' of module 'freedom-vault'.
Running 'Process programs/record_application VAULT'... [OK]
Running 'Process wsh.php --api=vault_init'... [OK]
Running 'Process programs/update_catalog'... [OK]

Processing required module 'freedom-fckeditor' (2.6.3-5) for install.
Downloading module 'freedom-fckeditor-2.6.3-5'... [OK]
Doing 'pre-install' of module 'freedom-fckeditor'.
Doing 'unpack' of module 'freedom-fckeditor'.
Unpacking module 'freedom-fckeditor'... [OK]
Doing 'post-install' of module 'freedom-fckeditor'.

Processing required module 'freedom-common' (0.6.0-0) for install.
Downloading module 'freedom-common-0.6.0-0'... [OK]
Doing 'pre-install' of module 'freedom-common'.
Doing 'unpack' of module 'freedom-common'.
Unpacking module 'freedom-common'... [OK]
Doing 'post-install' of module 'freedom-common'.
Running 'Process programs/record_application FDC'... [OK]
Running 'Process programs/update_catalog'... [OK]

Processing required module 'freedom' (2.14.3-18) for install.
Downloading module 'freedom-2.14.3-18'... [OK]
Doing 'pre-install' of module 'freedom'.
Running 'Check php function gd_info'... [OK]
Running 'Check php function cal_info'... [OK]
Running 'Check php class XSLTProcessor'... [OK]
Doing 'unpack' of module 'freedom'.
Unpacking module 'freedom'... [OK]
Doing 'post-install' of module 'freedom'.
Running 'Process programs/app_post FDL I'... [OK]
Running 'Process programs/record_application FDL I'... [OK]
Running 'Process programs/app_post FDL U'... [OK]
Running 'Process programs/app_post USERCARD I'... [OK]
Running 'Process programs/record_application USERCARD I'... [OK]
Running 'Process programs/app_post USERCARD U'... [OK]
Running 'Process programs/record_application GENERIC I'... [OK]
Running 'Process programs/record_application ONEFAM I'... [OK]
Running 'Process programs/record_application FUSERS I'... [OK]
Running 'Process programs/app_post FREEDOM I'... [OK]
Running 'Process programs/record_application FREEDOM I'... [OK]
Running 'Process programs/app_post FREEDOM U'... [OK]
Running 'Process programs/record_application FGSEARCH I'... [OK]
Running 'Process wsh.php --api=crontab --cmd=register --file=FREEDOM/freedom.cron'... [OK]
Running 'Process programs/update_catalog'... [OK]

Done.

Installation d'un paquet local :

# /var/www/wiff/wiff context test module install /tmp/foo-1.2.3-4.webinst
Processing required module 'foo' (1.2.3-4) for install.
Module 'foo-1.2.3-4' is already downloaded in '/private/tmp/foo-1.2.3-4.webinstkeZbf9'.
Doing 'pre-install' of module 'foo'.
Running 'Check php class XML_Parser'... [OK]
Running 'Check php function imap_open'... [OK]
Doing 'unpack' of module 'foo'.
Unpacking module 'foo'... [OK]
Doing 'post-install' of module 'foo'.
Running 'Process programs/app_post FOO I'... [OK]
Running 'Process programs/record_application FOO'... [OK]
Running 'Process programs/app_post FOO U'... [OK]
Running 'Process programs/update_catalog'... [OK]

Done.

Upgrader un module

Syntaxe

context <context-name> module upgrade [options] <localPackagePath>
context <context-name> module upgrade [options] <moduleName>

Description

Cette opération permet d'upgrader un module à partir d'un paquet local (archive .webinst stocké en local sur le serveur) ou à partir d'un paquet disponible sur un dépôt de paquets distant accessible par HTTP ou FTP.

Les options disponibles sont :

  • `–nopre' permet de ne pas exécuter les processus de `pre-upgrade' déclarés par le paquet.
  • `–nopost' permet de ne pas exécuter les processus de `post-upgrade' déclarés par le paquet.
  • `–nothing' permet de ne pas exécuter les processus de `pre-upgrade' et de `post-upgrade' déclarés par le paquet.
  • `–force' permet de forcer l'upgrade du paquet même si une version supérieure ou égale est déjà installée.

Exemple

# /var/www/wiff/wiff context test module upgrade /tmp/foo-2.0.0-1.webinst
Processing required module 'foo' (2.0.0-1) for upgrade.
Module 'foo-2.0.0-1' is already downloaded in '/private/tmp/foo-2.0.0-1.webinstwEvSU3'.
Doing 'pre-upgrade' of module 'foo'.
Running 'Check php class XML_Parser'... [OK]
Running 'Check php class XML_RSS'... [OK]
Running 'Check php function imap_open'... [OK]
Doing 'unpack' of module 'foo'.
Unpacking module 'foo'... [OK]
Doing 'post-upgrade' of module 'foo'.
Running 'Process programs/pre_migration FOO'... [OK]
Running 'Process programs/app_post FOO U'... [OK]
Running 'Process programs/record_application FOO'... [OK]
Running 'Process programs/post_migration FOO'... [OK]
Running 'Process programs/update_catalog'... [OK]

Done.

Manipuler les paramètres des modules

Afficher l'ensemble des paramètres d'un ou des modules

Syntaxe

context <context-name> param show [<moduleName>]

Description

Cette opération permet d'afficher la liste des paramètres des modules installés.

Exemple

# /var/www/wiff/wiff context test param show 
freedom-core:client_name = Test
freedom-core:core_db = test
freedom-core:authtype = html
freedom-core:apacheuser = _www
foo:bar = baz
foo:bir = biz
# /var/www/wiff/wiff context test param show foo
foo:bar = baz
foo:bir = biz

Afficher la valeur d'un paramètre d'un module

Syntaxe

context <context-name> param get <module-name>:<param-name>

Description

Cette opération permet d'afficher la valeur d'un paramètre d'un module donné.

Exemple

# /var/www/wiff/wiff context test param get foo:bar
foo:bar = baz

Positionner la valeur d'un paramètre d'un module

Syntaxe

context <context-name> param set <module-name>:<param-name> <param-value>

Description

Cette opération permet de positionner la valeur d'un paramètre d'un module donné.

Exemple

# /var/www/wiff/wiff context <context-name> param set foo:bar buzz
foo:bar = buzz

Exécuter wstop sur un contexte

Syntaxe

wstop <context-name>

Description

Cette opération permet d'exécuter le script historique `wstop' sur un contexte.

Exemple

# /var/www/wiff/wiff wstop test
check update needed (/var/www/test/wcheck)

Exécuter wstart sur un contexte

Syntaxe

wstart <context-name>

Description

Cette opération permet d'exécuter le script historique `wstart' sur un contexte.

Exemple

# /var/www/wiff/wiff wstart test

Exécuter whattext sur un contexte

Syntaxe

whattext <context-name>

Description

Cette opération permet d'exécuter le script historique `whattext' sur un contexte.

Exemple

# /var/www/wiff/wiff whattext test

Administration système

Ouvrir un shell sous l'uid Apache

Syntaxe

context <context-name> shell
context <context-name> exec  <command> [<command-options>]]

Description

Cette opération permet d'ouvrir un shell, ou d'exécuter une commande, sous l'uid de l'utilisateur exécutant le serveur Apache afin d'effectuer manuellement des opérations d'administration spécifiques.

Par défaut, si aucune commande n'est spécifié, le shell par défaut définit pour l'utilisateur du serveur Apache est lancé. Si l'utilisateur n'a pas de shell associé, il faudra alors spécifier le chemin du shell qu'on souhaite exécuter avec la variante `exec'.

Lors de l'ouverture du shell, ou de l'exécution de la commande, les variables d'environnement suivantes sont pré-positionnés :

  • `HOME' : le répertoire racine du contexte.
  • `wpub' : le répertoire racine du contexte (pour compatibilité scripts post/migr de Freedom).
  • `pgservice_core' : le service Postgresql de la base `core' (pour compatibilité scripts post/migr de Freedom).
  • `pgservice_freedom' : le service Postgresql de la base `freedom' (pour compatibilité scripts post/migr de Freedom).
  • `freedom_context' : vaut toujours ”default” (pour compatibilité scripts post/migr de Freedom).

Exemple

# /var/www/wiff/wiff context test shell /bin/bash
wiff(test)~$ id
uid=70(_www) gid=70(_www) egid=20(staff) groups=70(_www)
wiff(test)~$ pwd
/var/www/test
wiff(test)~$ ./FOO/FOO_post U
[...]
# /var/www/wiff/wiff context test exec /usr/bin/tar -zcf /tmp/archive.tar.gz .
freedom_2.14/install/wiff/cli.txt · Dernière modification: 18/12/2009 14:36 (édition externe)