glpi_agent
glpi-agent
- Обзор
- Примеры
- Переменные по умолчанию
- Специфические переменные для Debian
- Разработка
- Лицензия
- Информация об авторе
Обзор
Данная роль предназначена для установки и управления 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 😀).
Лицензия
Информация об авторе
Джéréми Гардей
- IPR (Институт физики Ренна)
- CNRS и Университет Ренна
ansible-galaxy install ipr-cnrs/glpi-agent