[Software]

Ansible - Zabbix Agent Installation unter Windows

/ansible-zabbix-agent-installation-unter-windows

Die Verwaltung von IT-Infrastrukturen kann komplex und zeitaufwendig sein, insbesondere wenn es um die Verteilung und Installation von Überwachungsagenten auf einer großen Anzahl von Servern geht. Stell dir vor, wie praktisch es wäre, den Zabbix-Agenten auf tausenden von Servern mit nur einem einzigen Skript verteilen zu können. Mit Ansible, einem mächtigen Tool für die Automatisierung von IT-Aufgaben, ist dies problemlos möglich.

Viele Unternehmen verfügen über Lösungen zur Softwareverteilung auf Client-Geräten, aber oft fehlt eine kostengünstige und effiziente Methode zur Verwaltung von Servern. Ansible bietet hier eine ideale Lösung, da es sich für die automatisierte Konfiguration, Bereitstellung und Verwaltung von Systemen eignet – und das plattformübergreifend. Im Folgenden wird erläutert, wie Sie mit einem Ansible-Playbook den Zabbix-Agenten auf Windows-Servern installieren können.

Warum Ansible?

Ansible ist ein Open-Source-Tool, das für die Orchestrierung und Automatisierung von IT-Prozessen entwickelt wurde. Es verwendet keine Agenten, ist einfach zu bedienen und ermöglicht die Verwaltung von Remote-Systemen über SSH (Linux/Unix) oder Windows Remote Management (WinRM) für Windows-Geräte. Durch die Verwendung von Ansible können Aufgaben automatisiert werden, die sonst manuell und fehleranfällig wären.

Das Ansible-Skript

```yaml
- name: Install Zabbix Agent on Windows
hosts: ansible_test
vars:
zabbix_agent_name: "Zabbix Agent"
zabbix_agent_config_path: 'C:\Program Files\Zabbix Agent\zabbix_agentd.conf'
zabbix_agent_download_url: "https://cdn.zabbix.com/zabbix/binaries/stable/7.0/7.0.0/zabbix_agent-7.0.0-windows-amd64-openssl.msi"
zabbix_agent_temp_path: 'C:\Temp\zabbix_agent.msi'
zabbix_agent_temp_folder: 'C:\Temp'
zabbix_agent_install_folder: 'C:\Program Files\Zabbix Agent'
zabbix_agent_log_path: 'C:\Temp\zabbix_agent_install_log.txt'
zabbix_server_ip: "10.11.2.15"

tasks:
- name: Ensure Temp directory exists
win_file:
path: "{{ zabbix_agent_temp_folder }}"
state: directory

- name: Check if Zabbix Agent is installed
  win_shell: |
    Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "*{{ zabbix_agent_name }}*" }
  register: zabbix_check

- name: Set fact if Zabbix Agent is installed
  set_fact:
    zabbix_installed: "{{ zabbix_check.stdout_lines | length > 0 }}"

- name: Uninstall existing Zabbix Agent if installed
  win_shell: |
    $zabbix = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "*{{ zabbix_agent_name }}*" }
    if ($zabbix) {
      $zabbix.Uninstall()
    }
  when: zabbix_installed

- name: Remove old Zabbix configuration file if it exists
  win_file:
    path: "{{ zabbix_agent_config_path }}"
    state: absent
  when: zabbix_installed

- name: Download Zabbix Agent MSI
  win_get_url:
    url: "{{ zabbix_agent_download_url }}"
    dest: "{{ zabbix_agent_temp_path }}"

- name: Create installation log directory
  win_file:
    path: "{{ zabbix_agent_install_folder }}"
    state: directory

- name: Install Zabbix Agent
  win_package:
    path: "{{ zabbix_agent_temp_path }}"
    arguments: /qn SERVER={{ zabbix_server_ip }} HOSTNAME={{ ansible_hostname }} INSTALLFOLDER="{{ zabbix_agent_install_folder }}"
    log_path: "{{ zabbix_agent_log_path }}"

- name: Start Zabbix Agent service
  win_service:
    name: "{{ zabbix_agent_name }}"
    start_mode: auto
    state: started

````

Funktionsweise des Skripts

Das Playbook prüft zunächst, ob der Zabbix-Agent bereits installiert ist. Falls ja, wird die bestehende Installation sauber entfernt, inklusive der alten Konfigurationsdatei. Anschließend wird die aktuelle MSI-Datei heruntergeladen und der Agent unbeaufsichtigt installiert. Zum Abschluss wird sichergestellt, dass der Zabbix-Agent-Dienst automatisch startet und aktiv ist.

Wichtige Variablen und ihre Funktionen

  • zabbix_agent_name
    Name des Windows-Dienstes des Zabbix-Agenten.

  • zabbix_agent_download_url
    URL zur MSI-Installationsdatei des Zabbix-Agenten.

  • zabbix_agent_temp_path
    Temporärer Speicherort für die heruntergeladene MSI-Datei.

  • zabbix_agent_install_folder
    Zielverzeichnis für die Installation des Zabbix-Agenten.

  • zabbix_server_ip
    IP-Adresse des Zabbix-Servers, mit dem sich der Agent verbindet.

Wichtige Aufgaben

  • Erstellen notwendiger Verzeichnisse
  • Erkennen und Entfernen bestehender Zabbix-Installationen
  • Download und Installation des Zabbix-Agenten
  • Starten und Aktivieren des Zabbix-Dienstes

Weitere Ansible Playbooks

Das gezeigte Beispiel lässt sich leicht erweitern, etwa zur Konfiguration von Firewall-Regeln, zur Verteilung individueller Konfigurationsdateien oder zur Installation weiterer Monitoring-Komponenten.

Anzeige

/comments0 Einträge

Kommentare

> NO_COMMENTS_FOUND

> INITIATE_COMMENT_PROTOCOL

MARKDOWN_SUPPORT: ENABLED
CHARS: 0