ipr-cnrs.glpi_agent
glpi-agent
- Aperçu
- Exemples
- Variables par défaut
- Variables dédiées à Debian
- Développement
- Licence
- 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
Informations sur l’auteur
Jérémy Gardais
- IPR (Institut de Physique de Rennes)
- CNRS et Université de Rennes
ansible-galaxy install ipr-cnrs.glpi_agent