Files
semaphore/playbooks/install_glpi-agent.yml

67 lines
2.0 KiB
YAML

---
- name: Install and configure GLPI Agent (Perl installer)
hosts: all
become: true
vars:
glpi_agent_version: "1.15"
glpi_agent_installer_url: "https://github.com/glpi-project/glpi-agent/releases/download/{{ glpi_agent_version }}/glpi-agent-{{ glpi_agent_version }}-linux-installer.pl"
glpi_server_url: "https://glpi.ryans.tools/" # see notes below
glpi_agent_tag: "PurpleRaft"
glpi_httpd_trust: "10.0.0.0/8,192.168.0.0/16,100.64.0.0/10" # GLPI server or management subnets
tasks:
- name: Ensure prerequisites (perl, curl, lsb-release)
package:
name:
- perl
- curl
- lsb-release
state: present
- name: Download GLPI Agent Perl installer
get_url:
url: "{{ glpi_agent_installer_url }}"
dest: /usr/local/src/glpi-agent-installer.pl
mode: "0755"
- name: Run the GLPI Agent installer (idempotent-ish)
command: perl /usr/local/src/glpi-agent-installer.pl
args:
creates: /usr/bin/glpi-agent
- name: Ensure conf.d directory exists
file:
path: /etc/glpi-agent/conf.d
state: directory
mode: "0755"
- name: Configure GLPI Agent (server/tag/trust)
copy:
dest: /etc/glpi-agent/conf.d/atlas.cfg
mode: "0644"
content: |
# Managed by Ansible
server = {{ glpi_server_url }}
tag = {{ glpi_agent_tag }}
httpd-trust = {{ glpi_httpd_trust }}
# Optional: uncomment to reduce load after first full inventory
# full-inventory-postpone = 14
notify: restart glpi-agent
- name: Enable and start agent service
service:
name: glpi-agent
enabled: true
state: started
- name: Do a first inventory now (one-shot)
command: glpi-agent --server {{ glpi_server_url }} --force
changed_when: false
handlers:
- name: restart glpi-agent
service:
name: glpi-agent
state: restarted