ipr-cnrs.glpi_agent

glpi-agent

  1. Aperçu
  2. Exemples
  3. Variables par défaut
  4. Variables dédiées à Debian
  5. Développement
  6. Licence
  7. Informations sur l’auteur

Aperçu

Ce rôle essaiera d'installer et de gérer glpi-agent sur les systèmes Linux (famille Debian uniquement au début).

Il est fortement inspiré du rôle précédent dédié à fusioninventory-agent.

Exemples

Installer glpi-agent depuis votre propre dépôt APT/Yum/… (cliquez pour développer)
- hosts: serveurXYZ
  vars:
      glpi_agent__conf_raw: |
        # glpi-agent nécessite un serveur pour démarrer le service
        server = http://serveur.domaine.com/front/inventory.php

  roles:
    - role: ipr-cnrs.glpi_agent
  • Le paquet glpi-agent n'est pas (encore) disponible dans les dépôts officiels (Debian, Ubuntu,…).
Installer le paquet préconstruit de glpi-agent depuis le projet GitHub GLPI Agent (cliquez pour développer)
- hosts: serveurXYZ
  vars:
      glpi_agent__install_from_url: true
      glpi_agent__conf_raw: |
        # glpi-agent nécessite un serveur pour démarrer le service
        server = http://serveur.domaine.com/front/inventory.php

  roles:
    - role: ipr-cnrs.glpi_agent
  • glpi_agent__install_from_url installera d'abord les dépendances et utilisera le paquet glpi-agent préconstruit du dépôt GitHub de GLPI Agent.
  • Toutes les versions et les paquets préconstruits officiels peuvent être trouvés sur le dépôt GitHub de GLPI Agent.

Variables par défaut

Paquets et installation

glpi_agent__enabled

Booléen. Activer ou désactiver l'installation et la configuration de glpi-agent.

glpi_agent__enabled: true

glpi_agent__install_from_url

Booléen. Si le paquet GLPI Agent doit être installé depuis le paquet construit par le projet GLPI.

glpi_agent__install_from_url: false

glpi_agent__version

Chaine. Version du GLPI Agent à installer.

glpi_agent__version: '1.5-1'

glpi_agent__major_version

Chaine. Extraire la version principale afin de construire la variable glpi_agent__package_url.

  • par exemple, pour la dernière version (1.5-1), cela deviendra 1.5.
glpi_agent__major_version: '{{ glpi_agent__version.split("-")[0] }}'

glpi_agent__package_name

Liste. Nom du paquet GLPI Agent à installer.

glpi_agent__package_name:
  - glpi-agent

URL du paquet Debian glpi_agent__package_url

L'URL utilisée pour télécharger le paquet .deb pour GLPI Agent. exemple pour la version 1.5 : https://github.com/glpi-project/glpi-agent/releases/download/1.5/glpi-agent_1.5-1_all.deb

glpi_agent__package_url: '{{ "https://github.com/glpi-project/glpi-agent/releases/download/"
                           + glpi_agent__major_version
                           + "/glpi-agent_"
                           + glpi_agent__version
                           + "_all.deb" if (ansible_os_family in ["Debian"])
                                        else "" }}'

glpi_agent__depends

Booléen. Si les dépendances de GLPI Agent doivent être installées. Nécessaire pour l'installation par URL et parce que certaines peuvent être manquantes dans la liste des dépendances… Voir la liste des dépendances dans les fichiers de variables OS (Debian) ci-dessous.

glpi_agent__depends: '{{ True if ansible_os_family in ["Debian"]
                                   else False }}'

glpi_agent__recommends

Booléen. Si les recommandations des paquets GLPI Agent doivent être installées. Voir la liste des recommandations dans les fichiers de variables OS (Debian) ci-dessous.

glpi_agent__recommends: false

glpi_agent__suggests

Booléen. Si les suggestions des paquets GLPI Agent doivent être installées. Voir la liste des suggestions dans les fichiers de variables OS (Debian) ci-dessous.

glpi_agent__suggests: false

Agent Fusioninventory

La documentation officielle recommande de désinstaller l'agent fusioninventory avant d'installer l'agent GLPI. Les paquets et les fichiers de configuration associés ne seront pas supprimés par ce rôle.

glpi_agent__fusioninventory_agent_state

État de l'ancien agent Fusioninventory.

glpi_agent__fusioninventory_agent_state: 'absent'

glpi_agent__fusioninventory_agent_packages

Liste des paquets de l'agent Fusioninventory à supprimer.

glpi_agent__fusioninventory_agent_packages:
  - fusioninventory-agent

Configuration

Voir la documentation officielle pour toute la syntaxe des paramètres.

glpi_agent__conf_file_dest

Chaine. Chemin vers le fichier de configuration de GLPI Agent sur l'hôte.

glpi_agent__conf_file_dest: '/etc/glpi-agent/conf.d/00-ansible.cfg'

glpi_agent__conf_file_src

Chaine. Modèle utilisé pour fournir le fichier de configuration de GLPI Agent.

glpi_agent__conf_file_src: '{{ "../templates" + glpi_agent__conf_file_dest + ".j2" }}'

glpi_agent__conf_raw

Chaine. Modèle utilisé pour fournir le fichier de configuration de GLPI Agent.

glpi_agent__conf_raw: ''

Exemple d'utilisation :

glpi_agent__conf_raw: |
  tag = ma_nouvelle_etiquette

Service

glpi_agent__service_state

Chaine. État ciblé du service

glpi_agent__service_state: '{{ "started" if (glpi_agent__enabled | bool)
                          else "stopped" }}'

glpi_agent__service_enabled

Chaine. État ciblé du service

glpi_agent__service_enabled: '{{ glpi_agent__enabled | bool }}'

Configuration Cron

Au lieu de faire fonctionner un service systemd, glpi-agent peut être exécuté par une tâche cron.

Liste des variables liées à cron (cliquez pour développer).

glpi_agent__cron

Chaine. Si la tâche cron doit être installée. Peut être "absent" ou "présent".

glpi_agent__cron: 'absent'

glpi_agent__cron_day

Quels jours l'agent doit être exécuté.

glpi_agent__cron_day: '*'

glpi_agent__cron_hour

À quelles heures l'agent doit être exécuté.

glpi_agent__cron_hour: '23'

glpi_agent__cron_minute

À quelles minutes l'agent doit être exécuté.

glpi_agent__cron_minute: '0'

glpi_agent__cron_month

Quels mois l'agent doit être exécuté.

glpi_agent__cron_month: '*'

glpi_agent__cron_weekday

Quels jours de la semaine l'agent doit être exécuté.

glpi_agent__cron_weekday: '*'

glpi_agent__cron_user

Sous quel utilisateur l'agent doit être exécuté.

glpi_agent__cron_user: 'root'

glpi_agent__cron_command

La commande que cron doit exécuter.

glpi_agent__cron_command: 'sleep $(( RANDOM \\% 3600 )); /bin/glpi-agent'

Variables dédiées à Debian

Ces variables ne peuvent pas être remplacées par l'utilisateur.

Paquets et installation pour Debian

Debian glpi_agent__depends_packages

Liste. Dépendances pour le paquet GLPI Agent.

  • Basé sur la sortie de dpkg --info pour le paquet .deb version 1.5-1.
  • Pour ignorer l'installation de ces paquets, voir glpi_agent__depends ci-dessus.
glpi_agent__depends_packages:
  - perl
  - ucf
  - lsb-base
  - libnet-cups-perl
  - libnet-ip-perl
  - libnet-ssh2-perl
  - libwww-perl
  - libparse-edid-perl
  - libproc-daemon-perl
  - libparallel-forkmanager-perl
  - libuniversal-require-perl
  - libfile-which-perl
  - libxml-libxml-perl
  - libyaml-perl
  - libtext-template-perl
  - libcpanel-json-xs-perl
  - libjson-pp-perl
  - pciutils
  - usbutils
  - libhttp-daemon-perl
  - libyaml-tiny-perl
  - libossp-uuid-perl
  - libdatetime-perl
  - libsocket-getaddrinfo-perl
  ## Manquant dans `dpkg --info` mais utilisé dans le workflow glpi-agent
  - libxml-treepp-perl
  - libxml-xpath-perl

Debian glpi_agent__recommends_packages

Liste. Recommandations pour le paquet GLPI Agent.

  • Basé sur la sortie de dpkg --info pour le paquet .deb version 1.5-1.
  • Pour ignorer l'installation de ces paquets, voir glpi_agent__recommends ci-dessus.
glpi_agent__recommends_packages:
  - libio-socket-ssl-perl
  - dmidecode
  - hdparm
  - fdisk
  - net-tools

Debian glpi_agent__suggests_packages

Liste. Suggestions pour le paquet GLPI Agent.

  • Basé sur la sortie de dpkg --info pour le paquet .deb version 1.5-1.
  • Pour ignorer l'installation de ces paquets, voir glpi_agent__suggests ci-dessus.
glpi_agent__suggests_packages:
  - smartmontools
  - read-edid

Développement

Tous les PRs sont les bienvenus :)

Pour defaults/main.yml et les fichiers de variables :

  • Essayez d'appliquer la syntaxe décrite dans l'en-tête. Copier/coller un bloc existant devrait faire le travail 👍.
  • Pour une nouvelle variable, la préfixer avec glpi_agent__ permet de la gérer facilement dans les host_vars d'Ansible,…

N'hésitez pas à partager toute bonne pratique (pour Debian/CentOS) et demandes (et PRs 😀).

Licence

WTFPL

Informations sur l’auteur

Jérémy Gardais

À propos du projet

Install and manage glpi-agent

Installer
ansible-galaxy install ipr-cnrs.glpi_agent
Licence
Unknown
Téléchargements
220.2k
Propriétaire
Institut de Physique de Rennes https://ipr.univ-rennes1.fr/ Tutelles CNRS et Université Rennes 1