glpi_agent

glpi-agent

  1. Обзор
  2. Примеры
  3. Переменные по умолчанию
  4. Специфические переменные для Debian
  5. Разработка
  6. Лицензия
  7. Информация об авторе

Обзор

Данная роль предназначена для установки и управления glpi-agent на системах Linux (на начальном этапе только семейство Debian).

Она вдохновлена предыдущей ролью, посвященной fusioninventory-agent.

Примеры

Установка glpi-agent из вашего собственного репозитория APT/Yum/… (нажмите для расширения)
- hosts: serverXYZ
  vars:
      glpi_agent__conf_raw: |
        # glpi-agent требует сервер для запуска службы
        server = http://server.domain.com/front/inventory.php

  roles:
    - role: ipr-cnrs.glpi_agent
  • Пакет glpi-agent пока не доступен в официальных репозиториях (Debian, Ubuntu,…).
Установка предсобранного пакета glpi-agent из проекта GLPI Agent на GitHub (нажмите для расширения)
- hosts: serverXYZ
  vars:
      glpi_agent__install_from_url: true
      glpi_agent__conf_raw: |
        # glpi-agent требует сервер для запуска службы
        server = http://server.domain.com/front/inventory.php

  roles:
    - role: ipr-cnrs.glpi_agent
  • glpi_agent__install_from_url сначала установит зависимости и использует предсобранный пакет glpi-agent из репозитория GitHub.
  • Все версии и официальные предсобранные пакеты можно найти на репозитории GLPI Agent на GitHub.

Переменные по умолчанию

Пакеты и установка

glpi_agent__enabled

Булево. Включить или отключить установку и конфигурацию glpi-agent.

glpi_agent__enabled: true

glpi_agent__install_from_url

Булево. Должен ли пакет GLPI Agent устанавливаться из сборки, созданной проектом GLPI.

glpi_agent__install_from_url: false

glpi_agent__version

Строка. Версия GLPI Agent для установки.

glpi_agent__version: '1.5-1'

glpi_agent__major_version

Строка. Извлечение основной версии для построения переменной glpi_agent__package_url.

  • например, для последней версии (1.5-1) это будет 1.5.
glpi_agent__major_version: '{{ glpi_agent__version.split("-")[0] }}'

glpi_agent__package_name

Список. Название пакета GLPI Agent для установки.

glpi_agent__package_name:
  - glpi-agent

Debian glpi_agent__package_url

URL, используемый для загрузки .deb пакета для GLPI Agent. например для версии 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

Булево. Должны ли устанавливаться зависимости GLPI Agent. Необходимы для установки из URL, так как некоторые могут быть отсутствующими в списке зависимостей… Смотрите список зависимостей в файлах переменных ОС (Debian) ниже.

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

glpi_agent__recommends

Булево. Должны ли устанавливаться рекомендации пакетов GLPI Agent. Смотрите список рекомендаций в файлах переменных ОС (Debian) ниже.

glpi_agent__recommends: false

glpi_agent__suggests

Булево. Должны ли устанавливаться предложения пакетов GLPI Agent. Смотрите список предложений в файлах переменных ОС (Debian) ниже.

glpi_agent__suggests: false

Агент Fusioninventory

Официальная документация рекомендует удалить агент Fusioninventory перед установкой GLPI Agent. Пакеты и связанные конфигурационные файлы не будут очищены с помощью этой роли.

glpi_agent__fusioninventory_agent_state

Состояние предыдущего агента Fusioninventory.

glpi_agent__fusioninventory_agent_state: 'absent'

glpi_agent__fusioninventory_agent_packages

Список пакетов агента Fusioninventory для удаления.

glpi_agent__fusioninventory_agent_packages:
  - fusioninventory-agent

Конфигурация

Смотрите официальную документацию для синтаксиса всех параметров.

glpi_agent__conf_file_dest

Строка. Путь к файлу конфигурации GLPI Agent на хосте.

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

glpi_agent__conf_file_src

Строка. Шаблон, используемый для предоставления файла конфигурации GLPI Agent.

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

glpi_agent__conf_raw

Строка. Шаблон, используемый для предоставления файла конфигурации GLPI Agent.

glpi_agent__conf_raw: ''

Пример использования:

glpi_agent__conf_raw: |
  tag = my_new_tag

Сервис

glpi_agent__service_state

Строка. Статус целевого сервиса.

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

glpi_agent__service_enabled

Строка. Статус целевого сервиса.

glpi_agent__service_enabled: '{{ glpi_agent__enabled | bool }}'

Конфигурация Cron

Вместо запуска службы systemd, glpi-agent может выполняться через cronjob.

Список переменных, связанных с cron (нажмите для расширения).

glpi_agent__cron

Строка. Должен ли cronjob быть установлен. Может быть "absent" или "present".

glpi_agent__cron: 'absent'

glpi_agent__cron_day

В какие дни должен выполняться агент.

glpi_agent__cron_day: '*'

glpi_agent__cron_hour

В какие часы должен выполняться агент.

glpi_agent__cron_hour: '23'

glpi_agent__cron_minute

В какие минуты должен выполняться агент.

glpi_agent__cron_minute: '0'

glpi_agent__cron_month

В какие месяцы должен выполняться агент.

glpi_agent__cron_month: '*'

glpi_agent__cron_weekday

В какие дни недели должен выполняться агент.

glpi_agent__cron_weekday: '*'

glpi_agent__cron_user

Под каким пользователем должен выполняться агент.

glpi_agent__cron_user: 'root'

glpi_agent__cron_command

Команда, которую должен выполнять cron.

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

Специфические переменные для Debian

Эти переменные нельзя переопределить пользователем.

Пакеты и установка для Debian

Debian glpi_agent__depends_packages

Список. Зависимости для пакета GLPI Agent.

  • Основано на выводе dpkg --info для .deb пакета версии 1.5-1.
  • Чтобы пропустить установку этих пакетов, смотрите glpi_agent__depends выше.
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
  ## Отсутствует в `dpkg --info`, но используется в рабочем процессе glpi-agent
  - libxml-treepp-perl
  - libxml-xpath-perl

Debian glpi_agent__recommends_packages

Список. Рекомендации для пакета GLPI Agent.

  • Основано на выводе dpkg --info для .deb пакета версии 1.5-1.
  • Чтобы пропустить установку этих пакетов, смотрите glpi_agent__recommends выше.
glpi_agent__recommends_packages:
  - libio-socket-ssl-perl
  - dmidecode
  - hdparm
  - fdisk
  - net-tools

Debian glpi_agent__suggests_packages

Список. Предложения для пакета GLPI Agent.

  • Основано на выводе dpkg --info для .deb пакета версии 1.5-1.
  • Чтобы пропустить установку этих пакетов, смотрите glpi_agent__suggests выше.
glpi_agent__suggests_packages:
  - smartmontools
  - read-edid

Разработка

Все PR приветствуются :)

Для defaults/main.yml и файлов vars :

  • Старайтесь применять синтаксис, описанный в заголовке. Копировать/вставить существующий блок должно сработать 👍.
  • Для новой переменной, добавление префикса glpi_agent__ позволяет легко управлять ею в host_vars Ansible,…

Не стесняйтесь делиться хорошими практиками (для Debian/CentOS) и запросами (и PRs 😀).

Лицензия

WTFPL

Информация об авторе

Джéréми Гардей

О проекте

Install and manage glpi-agent

Установить
ansible-galaxy install ipr-cnrs/glpi-agent
Лицензия
Unknown
Загрузки
218843
Владелец
Institut de Physique de Rennes https://ipr.univ-rennes1.fr/ Tutelles CNRS et Université Rennes 1