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

Nouveau dans la 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é

Nouveau dans la 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 database

  • a 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

Nouveau dans la 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

Nouveau dans la 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

Nouveau dans la 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

Nouveau dans la 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

Nouveau dans la 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

Nouveau dans la 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.

Creative Commons License