From 9e32a232cdf5f33b2a2eaf69f76c5f13619b137b Mon Sep 17 00:00:00 2001 From: Ryan Hamilton Date: Sun, 10 Aug 2025 20:59:11 -0500 Subject: [PATCH] Add playbook for installing and configuring GLPI Agent --- playbooks/install_glpi-agent.yml | 66 ++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 playbooks/install_glpi-agent.yml diff --git a/playbooks/install_glpi-agent.yml b/playbooks/install_glpi-agent.yml new file mode 100644 index 0000000..8cfcb06 --- /dev/null +++ b/playbooks/install_glpi-agent.yml @@ -0,0 +1,66 @@ +--- +- 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