Chapitre 9 Dynacase Control en mode CLI

Le mode CLI de dynacase-control permet d'administrer les contextes Dynacase en ligne de commande.

9.1 Utilisation

La commande wiff permet de manipuler et administrer les contextes Dynacase. Les opérations actuellement accessibles à travers l'UI Web, seront accessibles en ligne de commande à l'aide de cette commande wiff. Cette commande doit être lancée sous root. Pour cela, vous pouvez soit vous logger sous le compte root, soit utiliser sudo pour l'exécuter (Dans ce cas, vous pouvez également autoriser la commande wiff sans mot de passe en éditant le fichier sudoers).

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

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

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

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

Le CLI utilise un verrou afin de se prémunir contre l'exécution concurrente de plusieurs opérations de modification (voir détails Opérations verrouillées ci-dessous).

9.2 Commandes

9.2.1 Lister les contextes existants

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

Syntaxe :

list context [--pretty]

Exemple :

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

9.2.2 Créer un nouveau contexte

control 1.5

Cette opération permet de créer un nouveau contexte.

Syntaxe :

create context <context-name> <context-root>

Exemple :

# /var/www/dynacase-control/wiff create context test /var/www/test

9.2.3 Manipuler les propriétés d'un contexte

control 1.5

Les propriétés d'un contexte sont :

url
L'URL affichée sur le contexte.
description
La description affichée sur le contexte.

9.2.3.1 Voir la liste des propriétés d'un contexte

control 1.5

Cette opération permet de voir la liste des propriétés avec leur valeur.

Syntaxe :

context <context-name> property show

Exemple :

# /var/www/dynacase-control/wiff context test property show
url = /test/admin.php
description = Contexte de test.

9.2.3.2 Récupérer la valeur d'une propriété d'un contexte

control 1.5

Cette opération permet de voir la valeur d'un propriété.

Syntaxe :

context <context-name> property get <property-name>

Exemple :

# /var/www/dynacase-control/wiff test property get url
url = /test/admin.php

9.2.3.3 Modifier les propriétés d'un contexte

control 1.5

Cette opération permet de modifier les propriétés d'un contexte.

Syntaxe :

context <context-name> property set <property-name> <property-value>

Exemple :

# /var/www/dynacase-control/wiff context test property set url http://www.example.net/test/
# /var/www/dynacase-control/wiff context test property set description "Ceci n'est pas un contexte de test."

9.2.4 Modifier les dépôts de paquets utilisés par un contexte

control 1.5

Cette opération permet de voir/modifier la liste des dépôts de paquets utilisés par un contexte.

Les dépôts de paquets utilisables par un contexte doivent être déclarés au préalable dans dynacase-control (voir Gérer la liste des dépôts de paquets de dynacase-control ci-dessous).

9.2.4.1 Voir les dépôts actifs sur un contexte

control 1.5

Syntaxe :

context <context-name> repository list

Exemple :

# /var/www/dynacase-control/wiff context test repository list
dynacase
acme

9.2.4.2 Activer un dépôt sur un contexte

control 1.5

Syntaxe :

context <context-name> repository enable <repo-name>

Exemple :

# /var/www/dynacase-control/wiff context test repository enable foo

9.2.4.3 Désactiver un dépôt sur un contexte

control 1.5

Syntaxe :

context <context-name> repository disable <repo-name>

Exemple :

# /var/www/dynacase-control/wiff context test repository disable foo

9.2.4.4 Désactiver tous les dépôts sur un contexte

control 1.5

Syntaxe :

context <context-name> repository disable --all

Exemple :

# /var/www/dynacase-control/wiff context test repository disable --all

9.2.5 Supprimer un contexte

control 1.5

Syntaxe :

delete context [options] <context-name>

Les options disponibles sont :

  • --nopre permet de ne pas exécuter les processus de 'pre-delete' déclarés par les paquets.
  • --force permet de ne pas tenir compte des statuts d'échec des processus de 'pre-delete'.

Exemple :

# /var/www/dynacase-control/wiff delete context --force test

9.2.6 Manipuler les modules du contexte

9.2.6.1 Lister les modules installés

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

Syntaxe :

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

Exemple :

# var/www/dynacase-control/wiff context test module list installed
dynacase-fckeditor (2.6.3-7)
dynacase-webdesk (1.2.2-1)
dynacase-extjs (3.1.1-8)
dynacase-core (3.2.5-1)
dynacase-extui (0.6.4-1)
dynacase-workspace (0.6.1-1)
dynacase-ecm (0.3.0-1)

9.2.6.2 Lister les modules disponibles

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

Syntaxe :

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

Exemple :

# /var/www/dynacase-control/wiff context test module list available
dynacase-extjs (3.1.1-8)
dynacase-core (3.2.5-1)
dynacase-fckeditor (2.6.3-7)
dynacase-freeevent (2.6.0-0)
dynacase-webdesk (1.2.2-1)
[...]
dynacase-apisamples (0.1.3-1)
dynacase-familysamples (0.1.0-2)
dynacase-cas (0.0.2-1)
dynacase-theme (0.0.1-4)
dynacase-url (0.0.0-3)

9.2.6.3 Lister les modules avec mise à jour proposée

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.

Syntaxe :

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

Exemple :

# /var/www/dynacase-control/wiff context test module list upgrade
dynacase-core (3.2.6-1)

9.2.6.4 Installer un module

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.

Syntaxe :

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

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/dynacase-control/wiff context test module install dynacase-core
Will (i)nstall, (u)pgrade, or (r)eplace the following modules:
- dynacase-core-3.2.5-1.20130221.090413 (i)
- dynacase-jquery-installer-1.7.2-1.20120730.134605 (i)
- dynacase-jquery-ui-installer-1.8.21-2.20120817.154930 (i)
- dynacase-json2-1.0.0-0.20130214.114647 (i)
- dynacase-datajs-3.2.5-0.20130220.144720 (i)
- dynacase-jquery-dataTables-installer-1.9.1-0.20120622.121419 (i)
- dynacase-ckeditor-installer-4.0.1-0.20130213.174659 (i)
Proceed with installation ? [Y/n]
 
Processing module 'dynacase-core' (3.2.5-1.20130221.090413) for install.
Downloading module 'dynacase-core-3.2.5-1.20130221.090413'... [OK]
[...]
Done.

Installation d'un paquet local :

# /var/www/dynacase-control/wiff context test module install /tmp/foo-1.2.3-4.webinst
Processing required module 'foo' (1.2.3-4) for install.
[...]
Done.

Notes :

9.2.6.5 Upgrader un module

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.

Syntaxe :

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

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-install' 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/dynacase-control/wiff context test module upgrade /tmp/foo-2.0.0-1.webinst
Processing required module 'foo' (2.0.0-1) for upgrade.
[...]
Done.

Notes :

9.2.7 Archives de contextes

9.2.7.1 Archiver un contexte

control 1.5

Syntaxe :

context <context-name> archive <archive-name> [--without-vault] [--description=<description>]

Les options disponibles sont :

  • --without-vault permet de ne pas inclure l'archivage du vault dans l'archive du contexte.
  • --description=<description> permet de saisir le champ de description de l'archive.

Exemple :

# /var/www/dynacase-control/wiff context dev archive test
test-1f84e69f127a5fb3f2d920c35beb12f2f2a6c4d5

Note :

  • L'archivage d'un contexte peut nécessiter jusqu'à deux fois la taille des éléments à archiver. Une estimation de l'espace disque minimal nécessaire peut être obtenue avec la formule suivante :

    s1 := taille( dump de la base de données )
    s2 := taille( contenu du répertoire racine du contexte )
    s3 := taille( contenu des vaults )
     
    espace_libre_necessaire := ( s1 + s2 + s3 ) * 2

9.2.7.2 Lister les archives

control 1.5

Syntaxe :

list archive

Exemple :

# /var/www/dynacase-control/wiff list archive
test-1f84e69f127a5fb3f2d920c35beb12f2f2a6c4d5
pre-prod-838ac13e91d439d5c3a8bed86ea8adfee800c949

9.2.7.3 Voir les informations d'une archive

control 1.5

Syntaxe :

archive <archive-id> info

Exemple :

# /var/www/dynacase-control/wiff archive test-1f84e69f127a5fb3f2d920c35beb12f2f2a6c4d5 info
Archive 'test-1f84e69f127a5fb3f2d920c35beb12f2f2a6c4d5'
-------------------------------------------------------
 
id          = test-1f84e69f127a5fb3f2d920c35beb12f2f2a6c4d5
date        = 2014-12-15 09:03:04
name        = test
size        = 42.121 Mo
vault       = Yes
description = dev@2014-12-15T09:03:04
 
Installed modules:
- dynacase-core (3.2.17-1)
[...]

9.2.7.4 Restaurer l'archive d'un contexte

control 1.5

Syntaxe :

archive <archive-id> restore <context-name> <context-root> <pg-service-name> <vault-root>
                               [--remove-profiles --user-login=<login> --user-password=<password>]
                               [--clean-tmp-directory=<'yes'|'no'>]

Les options disponibles sont :

  • --remove-profiles permet de donner tous les privilèges sur tous les documents à un nouvel utilisateur lors de la restauration du contexte (à utiliser en conjonction avec --user-login et --user-password).
  • --user-login et --user-password permet de spécifier le login et le mot de passe du nouvel utilisateur auquel sont donnés tous les privilèges sur tous les documents.
  • --clean-tmp-directory=<'yes'|'no'> permet de supprimer si les fichiers temporaires de la restauration sont effacés (yes ou comportement par défaut) ou s'il sont conservés (no).

Exemple :

# /var/www/dynacase-control/wiff archive test-1f84e69f127a5fb3f2d920c35beb12f2f2a6c4d5 restore test2 /var/www/test2 db-test-2 /var/www/test2/vaultfs
Context 'test2' successfully created from archive 'test-1f84e69f127a5fb3f2d920c35beb12f2f2a6c4d5'.

9.2.8 Supprimer une archive de contexte

Syntaxe :

delete <archive-id>

Exemple :

# /var/www/dynacase-control/wiff delete archive test-1f84e69f127a5fb3f2d920c35beb12f2f2a6c4d5

9.2.9 Manipuler les paramètres des modules

9.2.9.1 Afficher la liste des paramètres d'un module

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

Syntaxe :

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

Exemple :

# /var/www/dynacase-control/wiff context test param show
dynacase-core:client_name = Test
dynacase-core:core_db = test
dynacase-core:authtype = html
dynacase-core:lcdate = iso : standard format 8601
dynacase-core:core_tmpdir = ./var/tmp
dynacase-core:core_admin_passwd =
dynacase-core:mod_deflate = yes
foo:bar = baz
foo:bir = biz
 
# /var/www/dynacase-control/wiff context test param show foo
foo:bar = baz
foo:bir = biz

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

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

Syntaxe :

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

Exemple :

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

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

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

Syntaxe :

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

Exemple :

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

9.2.10 Gérer la liste des dépôts de paquets de dynacase-control

control 1.5

Cette opération permet de gérer la liste de dépôts de paquets connus par dynacase-control.

9.2.10.1 Afficher la liste des dépôts de paquets

control 1.5

Syntaxe :

repository list

Exemple :

# /var/www/dynacase-control/wiff repository list
dynacase    http://dynacase.anakeen.com/3.2/webinst/
local    http://localhost/repo/

9.2.10.2 Ajouter un dépôt de paquets

control 1.5

Syntaxe :

repository add <repo-name> <repo-url> [<repo-username> [<repo-password>]]

Exemple :

# /var/www/dynacase-control/wiff repository add foo "http://example.net/foo/"
# /var/www/dynacase-control/wiff repository add acme "http://example.net/acme/" "john.doe" "s3cr3t"

Notes :

  • Le nom du dépôt ne peut contenir que des caractères alpha-numériques non accentués et le symbole _ (underscore). REGEX pour la validation du nom du dépôt : /^[a-zA-Z0-9_]+$/.

9.2.10.3 Supprimer un dépôt de paquets

control 1.5

Syntaxe :

repository delete <repo-name>

Exemple :

# /var/www/dynacase-control/wiff repository delete foo

Notes :

9.2.10.4 Supprimer tous les dépôts de paquets

control 1.5

Syntaxe :

repository delete --all

Exemple :

# /var/www/dynacase-control/wiff repository delete --all

Notes :

9.2.11 Gérer les paramètres de dynacase-control

control 1.5

Cette opération permet de voir/modifier les paramètres de dynacase-control.

9.2.11.1 Liste des paramètres de dynacase-control

wiff-update-host
Base de l'URL de recherche des mises à jour de dynacase-control.
wiff-update-path
Chemin pour la recherche des mises à jour de dynacase-control.
wiff-update-file
Nom du fichier de la dernière version de dynacase-control.
wiff-update-login (optionnel)
Nom d'utilisateur pour la recherche des mises à jour (si authentification HTTP Basic requise).
wiff-update-password (optionnel)
Mot de passe pour la recherche des mises à jour (si authentification HTTP Basic requise).
use-proxy (optionnel)

Active l'utilisation d'un proxy HTTP pour les requêtes HTTP/FTP émises par dynacase-control.

Valeurs : yes ou no.

proxy-host (optionnel)

Nom d'hôte du proxy HTTP à utiliser si use-proxy est activé.

Ex. proxy.example.net

proxy-port (optionnel)

Port du proxy HTTP à utiliser si use-proxy est activé.

Ex. : 3128

proxy-username (optionnel)
Nom d'utilisateur pour la connexion au proxy HTTP proxy-host.
proxy-password (optionnel)
Mot de passe pour la connexion au proxy HTTP proxy-host.
auto-configuration-sender-interval

Intervalle (en nombre de jours) pour la soumission des information des contextes avec send_configuration lorsque ceux-ci sont enregistrés avec le compte EEC.

Valeurs : entier de 1 à 31.

local-log control 1.5

Active la journalisation des messages d'erreurs dans le fichier log/wiff.log.

Valeurs : yes ou no.

syslog-facility control 1.5

Facility syslog utilisée par les messages d'erreurs émis par dynacase-control.

Voir Paramétrage syslog.

9.2.11.2 Voir les paramètres de dynacase-control

control 1.5

Syntaxe :

param show

Exemple :

# /var/www/dynacase-control/wiff param show
wiff-update-host = http://dynacase.anakeen.com/ (visible)
wiff-update-path = /control/ (visible)
wiff-update-file = dynacase-control-current.tar.gz (visible)
wiff-update-login =  (visible)
wiff-update-password =  (visible)
use-proxy = no (visible)
proxy-host =  (visible)
proxy-port =  (visible)
proxy-username =  (visible)
proxy-password =  (visible)
auto-configuration-sender-interval = 30 (visible)
local-log = yes (hidden)
syslog-facility = LOG_USER (hidden)

9.2.11.3 Récupérer la valeur d'un paramètre de dynacase-control

control 1.5

Syntaxe :

param get <param-name>

Exemple :

# /var/www/dynacase-control/wiff param get local-log
local-log = yes

9.2.11.4 Modifier la valeur d'un paramètre de dynacase-control

control 1.5

Syntaxe :

param set <param-name> <param-value> ['hidden']

Exemple :

# /var/www/dynacase-control/wiff param set local-log no

Notes :

  • La visibilité hidden permet de masquer la présentation du paramètre dans l'interface Web.

9.2.12 Enregistrer dynacase-control avec son compte EEC

control 1.5

Cette opération permet d'enregistrer dynacase-control avec son compte EEC.

9.2.12.1 Voir le status d'enregistrement

Syntaxe :

register

Exemple :

# /var/www/dynacase-control/wiff register
Not registered.

9.2.12.2 Enregistrer dynacase-control avec son compte EEC

control 1.5

Syntaxe :

register <eec-username> <eec-password>

Exemple :

# /var/www/dynacase-control/wiff register "john.doe" "s3cr3t"
Successfully registered dynacase-control.
 
# /var/www/dynacase-control/wiff register
Registered with EEC username 'john.doe'.

9.2.13 Enregistrer un contexte avec son compte EEC

control 1.5

Cette opération permet d'enregistrer un contexte avec son compte EEC.

Syntaxe :

context <context-name> register

Exemple :

# /var/www/dynacase-control/wiff context test register

Notes :

9.2.14 Envoi de la configuration au compte EEC

Cette opération permet d'envoyer la configuration de tous les contextes enregistrés avec le compte EEC.

Syntaxe :

send_configuration

Exemple :

# /var/www/dynacase-control/wiff send_configuration

9.2.15 Passer un contexte en mode maintenance

Le mode maintenance d'un contexte permet de bloquer l'accès des utilisateurs au contexte, et de désactiver l'exécution des crons, afin d'effectuer des opérations pour lesquelles il est nécessaire que les données ne soient pas modifiés.

dynacase-control 1.5.2

Cette opération permet d'exécuter le script historique 'wstop' sur un contexte. Dans ce mode, seul l'utilisateur master default a accès au contexte.

Syntaxe :

wstop <context-name>

Exemple :

# /var/www/dynacase-control/wiff wstop test

dynacase-control 1.5.3

Cette opération est dépréciée et doit être remplacée par le lancement de la commande ./wstop dans le contexte à l'aide de l'opération WIFF exec.

Exemple :

# /var/www/dynacase-control/wiff context test exec ./wstop

Voir :

9.2.16 Sortir un contexte du mode maintenance

La sortie du mode maintenance d'un contexte permet de rétablir l'accès des utilisateurs, et l'exécution des crons, lorsque l'opération de maintenance est terminée.

dynacase-control 1.5.2

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

Syntaxe :

wstart <context-name>

Exemple :

# /var/www/dynacase-control/wiff wstart test

dynacase-control 1.5.3

Cette opération est dépréciée et doit être remplacée par le lancement de la commande ./wstart -m dans le contexte à l'aide de l'opération WIFF exec.

Exemple :

# /var/www/dynacase-control/wiff context test exec ./wstart -m

Voir :

9.2.17 Réinitialiser les catalogues de langue

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

Syntaxe :

whattext <context-name>

Exemple :

# /var/www/dynacase-control/wiff whattext test

9.2.18 Ouvrir un shell sous l'uid Apache

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.

Syntaxe :

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

Par défaut, si aucune commande n'est spécifiée, 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 Dynacase).
  • pgservice_core : le service Postgresql de la base 'core' (pour compatibilité scripts post/migr de Dynacase).
  • pgservice_freedom : le service Postgresql de la base 'freedom' (pour compatibilité scripts post/migr de Dynacase).
  • freedom_context : vaut toujours ”default” (pour compatibilité scripts post/migr de Dynacase).

Exemple :

# /var/www/dynacase-control/wiff context test shell /bin/bash
$ id
uid=70(_www) gid=70(_www) egid=20(staff) groups=70(_www)
$ pwd
/var/www/test
$ ./FOO/FOO_post U
[...]
# /var/www/dynacase-control/wiff context test exec /usr/bin/tar -zcf /tmp/archive.tar.gz .

9.3 Opérations verrouillées

control 1.5

Les opérations suivantes sont soumises à l'obtention du verrou exclusif :

Le verrou est implémenté avec un appel système flock sur le fichier conf/contexts.xml.lock.

Si le CLI ne peut obtenir un verrou exclusif, alors il se termine avec un exit code 100 et affiche le message Error locking Dynacase-Control: Already locked by process with pid 'xxx' si le verrou est pris par un autre CLI, ou Error locking Dynacase-Control: xxx pour une erreur générale (e.g. problème dans l'accès au fichier conf/contexts.xml.lock).

×