ipr-cnrs.glpi_agent
glpi-agent
概述
此角色将尝试在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.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代理的依赖项。 需要从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-1 的dpkg --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-1 的dpkg --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-1 的dpkg --info
输出。 - 要跳过这些软件包的安装, 请参见上面的glpi_agent__suggests。
glpi_agent__suggests_packages:
- smartmontools
- read-edid
开发
欢迎所有的PR :)
对于defaults/main.yml
和变量文件:
- 尝试应用标题中描述的语法。复制/粘贴 现有块应该可以工作👍。
- 对于新变量,以**glpi_agent__**开头便于 在Ansible的host_vars中管理。
欢迎分享任何好的实践(针对Debian/CentOS)和请求(及PR😀)。
许可证
作者信息
Jérémy Gardais