Outils en ligne de commande¶
Depuis GLPI 9.2.2, des outils en ligne de commande sont fournis et disponibles dans le dossier script
de l’archive. Sur les versions précédentes, ces outils étaient présents dans le dossier tools
qui n’est pas officiel et donc non fourni dans l’archive de release.
Depuis GLPI 9.4.0, les outils en ligne de commande sont centralisés dans une application console (bin/console
). L’appel à php bin/console
depuis le dossier de GLPI affiche la liste des commandes disponibles.
Note
Si APCu est installé sur votre système, il se peut qu’il provoque des échecs en ligne de commande puisque sa configuration par défaut le désactive pour la ligne de commande. Pour changer cela, définissez apc.enable_cli
à on
dans votre fichier de configuration APCu;
Avertissement
Lors de l’utilisation des outils en ligne de commande, pensez à vérifier l’utilisateur avec lequel vous êtes actuellement connecté, ainsi que les permissions sur les fichiers et dossiers. Avec un mauvais utilisateur, les fichiers de journalisation, de cache, ou d’autres fichiers, pourraient être créés avec des droits qui ne permettraient pas à votre serveur web d’y accéder en lecture ou écriture.
Options de la console¶
Pour l’ensemble des commandes console, les options suivantes sont disponibles :
--config-dir=CONFIG-DIR
chemin vers le dossier de configuration à utiliser, relatif au chemin courant (requis seulement si un chemin personnalisé est utilisé)
-h
,--help
affiche la commande d’aide
--lang=LANG
langue utilisée pour la sortie (la valeur par défaut est celle configurée dans GLPI, ou « en_GB »)
-n
,--no-interaction
désactive les questions interactives
--no-plugins
désactive les plugins de GLPI pendant l’exécution de la commande
-q
,--quiet
désactive la sortie de la commande
-v|vv|vvv
,--verbose=VERBOSE
niveau de verbosité : 1 pour une sortie normale, 2 pour plus de verbosité, et 3 pour le débogage
Outils supplémentaires d’installation et mise à jour¶
Vérification des prérequis¶
Before installing or upgrading, requirements are automatically checked; but you can run them separately and see state for all of them using the php bin/console glpi:system:check_requirements
command.
Activer/Désactiver la maintenance¶
GLPI fourni un mode maintenance qui peut être activé avant une mise à jour et désactivé une fois celle-ci effectuée et son bon fonctionnement contrôlé.
Utilisez simplement les commandes glpi:maintenance:enable
et glpi:maintenance:disable
.
Installation¶
La commande php bin/console db:install
permet l’installation de GLPI en ligne de commande.
Les options possibles pour cette commande sont :
-r
,--reconfigure
pour autoriser l’écrasement d’une éventuelle configuration de base de données déjà existante
-f
,--force
pour forcer l’exécution de l’installation même si la base de données n’est pas vide
-L
,--default-language=DEFAULT_LANGUAGE
langue par défaut de GLPI (en_GB par défaut)
-H
,--db-host=DB_HOST
nom d’hôte ou adresse IP (localhost par défaut)
-P
,--db-port=DB_PORT
port de la base de données (port par défaut de MySQL si l’option n’est pas définie)
-d
,--db-name=DB_NAME
nom de la base de données
-u
,--db-user=DB_USER
nom d’utilisateur de la base de données
-p
,--db-password=DB_PASSWORD
database user’s password (use it without value to be prompted for password)
Si les options obligatoires ne sont pas spécifiées lors de l’appel à la commande, la console vous invitera à les saisir.
Database connection parameters may be omitted if a configuration file already exists.
Voir aussi les options de console.
Configuration de la connexion à la base de données¶
Added in version 9.5.0.
La commande php bin/console db:configure
permet de définir les paramètres de connexion à la base de données en ligne de commande.
Les options possibles pour cette commande sont :
-r
,--reconfigure
pour autoriser l’écrasement d’une éventuelle configuration de base de données déjà existante
-H
,--db-host=DB_HOST
nom d’hôte ou adresse IP (localhost par défaut)
-P
,--db-port=DB_PORT
port de la base de données (port par défaut de MySQL si l’option n’est pas définie)
-d
,--db-name=DB_NAME
nom de la base de données
-u
,--db-user=DB_USER
nom d’utilisateur de la base de données
-p
,--db-password=DB_PASSWORD
database user’s password (use it without value to be prompted for password)
Si les options obligatoires ne sont pas spécifiées lors de l’appel à la commande, la console vous invitera à les saisir.
Voir aussi les options de console.
Mise à jour¶
La commande php bin/console db:update
permet de mettre à jour GLPI, depuis une précédente version, en ligne de commande.
Il n’y a pas d’arguments requis. Lancez simplement la commande pour procéder à la mise à jour de la base de données.
Avertissement
Ne pas oublier d’effectuer une sauvegarde de la base de données avant toute tentative de mise à jour !
Avertissement
Since GLPI 10.0.2, db:check_schema_integrity is executed before performing the update.
If an error is detected, the command will ask you if you want to continue (unless --no-interaction
is used).
You can bypass this db:check_schema_integrity by using the option -s
, --skip-db-checks
.
Les options possibles pour cette commande sont :
-u
,--allow-unstable
autorise la mise à jour vers une version instable (à utiliser avec précaution)
-f
,--force
force l’exécution de la mise à jour depuis la version v-1, même si la base de données semble déjà être à jour
-s
,--skip-db-checks
do not check database schema integrity before performing the update
--enable-telemetry
allow usage statistics sending to Telemetry service (https://telemetry.glpi-project.org)
--no-telemetry
disallow usage statistics sending to Telemetry service (https://telemetry.glpi-project.org)
Voir aussi les options de console.
Clé de sécurité¶
Added in version 9.4.6.
Note
Le fichier de clé de GLPI est disponible pour GLPI >= 9.4.6 mais n’est pas obligatoire. À partir de GLPI 9.5, utilisé un fichier de clé sera obligatoire.
Dans le but de stocker certains contenus sensibles, GLPI se base sur un outil fait maison de chiffrement/déchiffrement, qui utilise une clé pour :
chiffrer les données avant de les stocker en base de données,
déchiffrer les données qui ont été récupérées en base de données.
La commande php bin/console glpi:security:change_key
permet de changer la clé, par exemple si elle a été compromise. Par défaut, la commande va :
générer une nouvelle clé et la stocker dans le fichier de clé,
mettre à jour tous les champs configurés (pour le cœur et les plugins), afin d’utiliser la nouvelle clé,
mettre à jour tous les éléments de configuration listés (pour le cœur et les plugins), afin d’utiliser la nouvelle clé,
Autres outils¶
Vérification du schéma de base de données¶
The php bin/console db:check_schema_integrity
command can be used to check if your database schema differs from expected one.
Les options possibles pour cette commande sont :
--strict
: Strict comparison of definitions
--check-all-migrations
: Check tokens related to all databases migrations.
--check-innodb-migration
: Check tokens related to migration from « MyISAM » to « InnoDB ».
--check-timestamps-migration
: Check tokens related to migration from « datetime » to « timestamp ».
--check-utf8mb4-migration
: Check tokens related to migration from « utf8 » to « utf8mb4 ».
--check-dynamic-row-format-migration
: Check tokens related to « DYNAMIC » row format migration.
--check-unsigned-keys-migration
: Check tokens related to migration from signed to unsigned integers in primary/foreign keys.
-p
,--plugin
: Plugin to check. If option is not used, checks will be done on GLPI core database tables.
Si vous avez une quelconque différence, la sortie ressemblera à ceci :
$ php bin/console glpi:database:check_schema_integrity
Table schema differs for table "glpi_rulecriterias".
--- Original
+++ New
@@ @@
create table `glpi_rulecriterias` (
`id` int(11) not null auto_increment
`rules_id` int(11) not null default '0'
`criteria` varchar(255) default null
`condition` int(11) not null default '0'
- `pattern` text default null
+ `pattern` text
primary key (`id`)
Compared to the GLPI installation file:
a line that starts with
-
means that something is missing in your databasea line that starts with
+
means that there is something extra in your database
You can also have a message like Unknown table "glpi_tablename" has been found in database.
,
this indicates that this table doesn’t exist in the installation file of the current GLPI schema:
either it’s a table that you have voluntarily created for your needs, you can ignore this message
either it’s an old GLPI table which is no longer useful, you can delete it (taking care to make a backup before)
Synchronisation LDAP¶
La commande bin/console glpi:ldap:synchronize_users
permet de synchroniser les utilisateurs de GLPI sur la base des informations d’un serveur LDAP.
Les options possibles pour cette commande sont :
-c
,--only-create-new
créer seulement les nouveaux utilisateurs
-u
,--only-update-existing
met à jour seulement les utilisateurs déjà existants
-s
,--ldap-server-id[=LDAP-SERVER-ID]
ne synchronise que les informations associées au serveur LDAP désigné (plusieurs valeurs possibles)
-f
,--ldap-filter[=LDAP-FILTER]
filtre à appliquer lors de la recherche LDAP
--begin-date[=BEGIN-DATE]
date de début à appliquer dans le filtre « modifyTimestamp »
--end-date[=END-DATE]
date de fin à appliquer dans le filtre « modifyTimestamp »
-d
,--deleted-user-strategy[=DELETED-USER-STRATEGY]
force la stratégie utilisée pour les utilisateurs supprimés :
0: Préserver
1: Mettre dans la corbeille
2: Retirer des autorisations et des groupes dynamiques
3: Désactiver
4: Désactiver + Retirer des autorisations et des groupes dynamiques
Voir https://www.php.net/manual/fr/datetime.formats.php pour les formats de date supportés dans les options --begin-date
et --end-date
.
Voir aussi les options de console.
Déverrouillage des tâches¶
La commande php bin/console task:unlock
peut être utilisée pour déverrouiller les tâche planifiées bloquées.
Avertissement
Gardez à l’esprit qu’aucune tâche ne devrait rester bloquée, sauf de la cas d’un bug ou d’une défaillance système (une défaillance de base de données pendant l’exécution d’une tâche par exemple).
Les options possibles pour cette commande sont :
-a
,--all
déverrouiller toutes les tâches
-c
,--cycle[=CYCLE]
temps d’exécution (en cycles) à partir duquel une tâche est considérée comme bloquée (délai = fréquence d’exécution de la tâche * cycle)
-d
,--delay[=DELAY]
temps d’exécution (en secondes) à partir duquel une tâche est considérée comme bloquée (1800 secondes par défaut)
-t
,--task[=TASK]
itemtype::name
de la tâche à débloquer (par exemple :MailCollector::mailgate
)
Voir aussi les options de console.
Outils pour les plugins¶
Added in version 9.5.
Certains commandes sont aussi disponibles pour gérer les plugins en ligne de commande :
glpi:plugin:install
glpi:plugin:activate
glpi:plugin:deactivate
Pour installer le plugin MyGreatPlugin
; vous devriez effectuer ceci :
$ ./bin/console glpi:plugin:install MyGreatPlugin
$ ./bin/console glpi:plugin:activate MyGreatPlugin
Chacune de ces commandes peut prendre comme argument le nom d’un plugin, ou l’option --all
si vous souhaitez la lancer pour tous les plugins.
Outils de migration¶
De MyISAM à InnoDB¶
Added in version 9.3.0.
Depuis la version 9.3.0, GLPI utilise le moteur InnoDB
en remplacement du moteur MyISAM
précédemment utilisé.
La commande php bin/console glpi:migration:myisam_to_innodb
peut être utilisée pour migrer les tables ewistantes vers le moteur InnoDB
.
Récupération des horodatages manquants¶
Added in version 9.1.0.
Avant GLPI 9.1.0, les champs correspondant aux dates de création et de modification n’existaient pas.
La commande php bin/console glpi:migration:build_missing_timestamps
peut être utilisée pour reconstruire les valeurs manquantes en utilisant les données de journalisation.
Utilisation du type de données timestamp¶
Added in version 9.5.0.
De nombreux champs de date utilisaient le type de données DATETIME
, mais celui-ci ne permet pas un usage des fuseaux horaires. Le support de ces fuseaux nécessite que tous les champs utilisent le type de données TIMESTAMP
, mais la requête de mise à jour peut s’avérer très longue à exécuter et n’est donc pas inclue dans le processus de mise à jour standard.
Utiliser la commande glpi:migration:timestamps
changera ces champs pour qu’ils utilisent le bon type de données, mais pensez à lire la documentation relative aux fuseaux horaires avant d’effectuer la migration.
Avertissement
Assurez vous de faire une sauvegarde de votre base données avant l’opération!
Migration du plugin Domaines¶
Added in version 9.5.0.
Dans GLPI, les domaines ont évolué pour passer d’un simple intitulé à un objet plus complexe, incluant, entre autres, la gestion des enregistrements de noms. Ainsi, les fonctionnalités du plugin Domaines sont maintenant présentes dans le cœur de GLPI.
Pour migrer les données du plugin, utilisez la commande glpi:migration:domains_plugin_to_core
. La présence du plugin est nécessaire pour permettre certaines vérifications, mais vous pouvez utiliser l’option --without-plugin
pour désactiver celles-ci, même si nous vous le déconseillons. Si vous utilisiez précédemment une ancienne version du plugin, vous pouvez utiliser l’option --update-plugin
pour que le plugin mette ses données à niveau.
Après l’opération, tous les types de domaines, les domaines, ainsi que les relations avec d’autres objets auront été migrés dans les tables du cœur de GLPI.
Migration du plugin Racks¶
Added in version 9.5.0.
Depuis GLPI 9.3.0, la gestion d’infrastructure des centres de données est disponible au sein des fonctionnalités du cœur de GLPI. Un script de migration des données du plugin a été fourni dans le dossier scripts
. Depuis GLPI 9.5.0, cette migration a été revue et a été déplacée au sein de la console de commandes.
Pour migrer les données du plugin, utilisez la commande glpi:migration:racks_plugin_to_core
. La présence du plugin est nécessaire pour permettre certaines vérifications, mais vous pouvez utiliser l’option --without-plugin
pour désactiver celles-ci, même si nous vous le déconseillons. Si vous utilisiez précédemment une ancienne version du plugin, vous pouvez utiliser l’option --update-plugin
pour que le plugin mette ses données à niveau.