ipr-cnrs.glpi_agent

glpi-agent

  1. 概述
  2. 示例
  3. 默认变量
  4. 专用Debian变量
  5. 开发
  6. 许可证
  7. 作者信息

概述

此角色将尝试在Linux系统上安装和管理glpi-agent(最初仅限于Debian家族)。

它受到之前专用于Fusioninventory代理的角色的强烈启发。

示例

从您自己的APT/Yum等仓库安装glpi-agent(点击展开
- 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代理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代理GitHub库中的预构建glpi-agent软件包。
  • 所有版本和官方预构建软件包可以在 GLPI代理GitHub库中找到。

默认变量

软件包与安装

glpi_agent__enabled

布尔值。启用或禁用glpi-agent的安装和配置。

glpi_agent__enabled: true

glpi_agent__install_from_url

布尔值。如果GLPI代理软件包应该从GLIP项目构建的软件包中安装。

glpi_agent__install_from_url: false

glpi_agent__version

字符串。要安装的GLPI代理版本。

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代理软件包名称。

glpi_agent__package_name:
  - glpi-agent

Debian glpi_agent__package_url

用于下载GLPI代理的.deb软件包的URL。 例如对于版本1.5https://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代理的依赖项。 需要从URL安装,并且因为一些依赖项可能缺失… 请参见操作系统变量文件中的依赖项列表 (Debian)如下。

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

glpi_agent__recommends

布尔值。是否需要安装GLPI代理软件包建议。 请参见操作系统变量文件中的建议列表 (Debian)如下。

glpi_agent__recommends: false

glpi_agent__suggests

布尔值。是否需要安装GLPI代理软件包建议。 请参见操作系统变量文件中的建议列表 (Debian)如下。

glpi_agent__suggests: false

Fusioninventory代理

官方文档 建议在安装GLPI代理之前卸载Fusioninventory代理。 该角色不会清除软件包及相关配置文件。

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代理配置文件的路径。

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

glpi_agent__conf_file_src

字符串。用于提供GLPI代理配置文件的模板。

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

glpi_agent__conf_raw

字符串。用于提供GLPI代理配置文件的模板。

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也可以通过cron作业运行。

与cron相关的变量列表(点击展开)。

glpi_agent__cron

字符串。是否应安装cron作业。可以是“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代理软件包的依赖项。

  • 基于.deb软件包版本 1.5-1dpkg --info输出。
  • 要跳过这些软件包的安装, 请参见上面的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代理软件包的建议。

  • 基于.deb软件包版本 1.5-1dpkg --info输出。
  • 要跳过这些软件包的安装, 请参见上面的glpi_agent__recommends
glpi_agent__recommends_packages:
  - libio-socket-ssl-perl
  - dmidecode
  - hdparm
  - fdisk
  - net-tools

Debian glpi_agent__suggests_packages

列表。GLPI代理软件包的建议。

  • 基于.deb软件包版本 1.5-1dpkg --info输出。
  • 要跳过这些软件包的安装, 请参见上面的glpi_agent__suggests
glpi_agent__suggests_packages:
  - smartmontools
  - read-edid

开发

欢迎所有的PR :)

对于defaults/main.yml和变量文件:

  • 尝试应用标题中描述的语法。复制/粘贴 现有块应该可以工作👍。
  • 对于新变量,以**glpi_agent__**开头便于 在Ansible的host_vars中管理。

欢迎分享任何好的实践(针对Debian/CentOS)和请求(及PR😀)。

许可证

WTFPL

作者信息

Jérémy Gardais

关于项目

Install and manage glpi-agent

安装
ansible-galaxy install ipr-cnrs.glpi_agent
许可证
Unknown
下载
220.2k
拥有者
Institut de Physique de Rennes https://ipr.univ-rennes1.fr/ Tutelles CNRS et Université Rennes 1