ipr-cnrs.glpi_agent

glpi-agent

  1. Przegląd
  2. Przykłady
  3. Domyślne zmienne
  4. Zdedykowane zmienne dla Debiana
  5. Rozwój
  6. Licencja
  7. Informacje o autorze

Przegląd

Ta rola spróbuje zainstalować i zarządzać glpi-agent na systemach Linux (na początku tylko z rodziny Debiana).

Jest bardzo inspirowana poprzednią rolą poświęconą fusioninventory-agent.

Przykłady

Zainstaluj glpi-agent z własnego repozytorium APT/Yum/… (kliknij, aby rozwinąć)
- hosts: serverXYZ
  vars:
      glpi_agent__conf_raw: |
        # glpi-agent wymaga serwera do uruchomienia usługi
        server = http://server.domain.com/front/inventory.php

  roles:
    - role: ipr-cnrs.glpi_agent
  • Pakiet glpi-agent nie jest (jeszcze) dostępny w oficjalnych repozytoriach (Debian, Ubuntu,…).
Zainstaluj glpi-agent z prekompilowanego pakietu z projektu GLPI Agent na GitHubie (kliknij, aby rozwinąć)
- hosts: serverXYZ
  vars:
      glpi_agent__install_from_url: true
      glpi_agent__conf_raw: |
        # glpi-agent wymaga serwera do uruchomienia usługi
        server = http://server.domain.com/front/inventory.php

  roles:
    - role: ipr-cnrs.glpi_agent
  • glpi_agent__install_from_url najpierw zainstaluje zależności i użyje prekompilowanego pakietu glpi-agent z repozytorium na GitHubie.
  • Wszystkie wersje oraz oficjalne prekompilowane pakiety można znaleźć na repozytorium GLPI Agent na GitHubie.

Domyślne zmienne

Pakiety i instalacja

glpi_agent__enabled

Boolean. Włącz lub wyłącz instalację i konfigurację glpi-agent.

glpi_agent__enabled: true

glpi_agent__install_from_url

Boolean. Czy pakiet GLPI Agent powinien być zainstalowany z pakietu zbudowanego przez projekt GLIP.

glpi_agent__install_from_url: false

glpi_agent__version

String. Wersja GLPI Agent do zainstalowania.

glpi_agent__version: '1.5-1'

glpi_agent__major_version

String. Wyodrębnij główną wersję, aby zbudować zmienną glpi_agent__package_url.

  • np. dla ostatniej wersji (1.5-1), stanie się 1.5.
glpi_agent__major_version: '{{ glpi_agent__version.split("-")[0] }}'

glpi_agent__package_name

List. Nazwa pakietu GLPI Agent do zainstalowania.

glpi_agent__package_name:
  - glpi-agent

Debian glpi_agent__package_url

URL używany do pobrania pakietu .deb dla GLPI Agent. np. dla wersji 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

Boolean. Czy zależności GLPI Agent powinny być zainstalowane. Wymagane do instalacji z URL, ponieważ niektóre mogą być brakujące na liście zależności… Zobacz listę zależności w plikach zmiennych OS (Debian) poniżej.

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

glpi_agent__recommends

Boolean. Czy zalecane pakiety GLPI Agent powinny być zainstalowane. Zobacz listę rekomendacji w plikach zmiennych OS (Debian) poniżej.

glpi_agent__recommends: false

glpi_agent__suggests

Boolean. Czy pakiety z sugestiami GLPI Agent powinny być zainstalowane. Zobacz listę sugestii w plikach zmiennych OS (Debian) poniżej.

glpi_agent__suggests: false

Agent FusionInventory

Oficjalna dokumentacja zaleca odinstalowanie agenta FusionInventory przed zainstalowaniem GLPI Agent. Pakiety i powiązane pliki konfiguracyjne nie będą usuwane przez tę rolę.

glpi_agent__fusioninventory_agent_state

Stan poprzedniego agenta FusionInventory.

glpi_agent__fusioninventory_agent_state: 'absent'

glpi_agent__fusioninventory_agent_packages

Lista pakietów agenta FusionInventory do usunięcia.

glpi_agent__fusioninventory_agent_packages:
  - fusioninventory-agent

Konfiguracja

Zobacz oficjalną dokumentację dla całej składni parametrów.

glpi_agent__conf_file_dest

String. Ścieżka do pliku konfiguracyjnego GLPI Agent na hoście.

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

glpi_agent__conf_file_src

String. Szablon używany do dostarczenia pliku konfiguracyjnego GLPI Agent.

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

glpi_agent__conf_raw

String. Szablon używany do dostarczenia pliku konfiguracyjnego GLPI Agent.

glpi_agent__conf_raw: ''

Przykład użycia:

glpi_agent__conf_raw: |
  tag = my_new_tag

Usługa

glpi_agent__service_state

String. Stan docelowy usługi

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

glpi_agent__service_enabled

String. Stan docelowy usługi

glpi_agent__service_enabled: '{{ glpi_agent__enabled | bool }}'

Konfiguracja Cron

Zamiast uruchamiać usługę systemd, glpi-agent może być uruchamiany przez zadanie cron.

Lista zmiennych związanych z cronem (kliknij, aby rozwinąć).

glpi_agent__cron

String. Czy zadanie cron powinno być zainstalowane. Może być "absent" lub "present".

glpi_agent__cron: 'absent'

glpi_agent__cron_day

W które dni agent powinien być uruchamiany.

glpi_agent__cron_day: '*'

glpi_agent__cron_hour

O której godzinie agent powinien być uruchamiany.

glpi_agent__cron_hour: '23'

glpi_agent__cron_minute

W które minuty agent powinien być uruchamiany.

glpi_agent__cron_minute: '0'

glpi_agent__cron_month

W które miesiące agent powinien być uruchamiany.

glpi_agent__cron_month: '*'

glpi_agent__cron_weekday

W które dni tygodnia agent powinien być uruchamiany.

glpi_agent__cron_weekday: '*'

glpi_agent__cron_user

Pod jakim użytkownikiem powinien być uruchamiany agent.

glpi_agent__cron_user: 'root'

glpi_agent__cron_command

Jakie polecenie powinno być uruchamiane przez cron.

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

Zdedykowane zmienne dla Debiana

Te zmienne nie mogą być modyfikowane przez użytkownika.

Pakiety i instalacja dla Debiana

Debian glpi_agent__depends_packages

List. Zależności dla pakietu GLPI Agent.

  • Na podstawie wyniku dpkg --info dla wersji pakietu .deb 1.5-1.
  • Aby pominąć instalację tych pakietów, zobacz glpi_agent__depends powyżej.
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
  ## Brakujące w `dpkg --info`, ale używane w workflow glpi-agent
  - libxml-treepp-perl
  - libxml-xpath-perl

Debian glpi_agent__recommends_packages

List. Rekomendacje dla pakietu GLPI Agent.

  • Na podstawie wyniku dpkg --info dla wersji pakietu .deb 1.5-1.
  • Aby pominąć instalację tych pakietów, zobacz glpi_agent__recommends powyżej.
glpi_agent__recommends_packages:
  - libio-socket-ssl-perl
  - dmidecode
  - hdparm
  - fdisk
  - net-tools

Debian glpi_agent__suggests_packages

List. Sugestie dla pakietu GLPI Agent.

  • Na podstawie wyniku dpkg --info dla wersji pakietu .deb 1.5-1.
  • Aby pominąć instalację tych pakietów, zobacz glpi_agent__suggests powyżej.
glpi_agent__suggests_packages:
  - smartmontools
  - read-edid

Rozwój

Wszystkie PR-y są mile widziane :)

Dla defaults/main.yml i plików zmiennych :

  • Staraj się stosować składnię opisaną w nagłówku. Skopiowanie/wklejenie istniejącego bloku powinno wystarczyć 👍.
  • Dla nowej zmiennej, dodanie przedrostka glpi_agent__ pozwala na łatwe zarządzanie w host_vars Ansible,…

Czuj się swobodnie, aby dzielić się dobrą praktyką (dla Debiana/CentOS) oraz zgłaszać prośby (i PR-y 😀).

Licencja

WTFPL

Informacje o autorze

Jérémy Gardais

O projekcie

Install and manage glpi-agent

Zainstaluj
ansible-galaxy install ipr-cnrs.glpi_agent
Licencja
Unknown
Pobrania
220.2k
Właściciel
Institut de Physique de Rennes https://ipr.univ-rennes1.fr/ Tutelles CNRS et Université Rennes 1