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 Sie Aufgaben automatisieren, die sonst manuell und fehleranfällig wären.
Das Ansible-Skript
- 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
Wichtige Variablen und ihre Funktionen:
zabbix_agent_name
: Name des Zabbix Agenten ("Zabbix Agent"
).zabbix_agent_config_path
: Pfad zur Konfigurationsdatei des Agenten ('C:\\Program Files\\Zabbix Agent\\zabbix_agentd.conf'
).zabbix_agent_download_url
: URL zum Herunterladen des Zabbix Agent MSI-Pakets ("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
: Temporärer Pfad für das heruntergeladene MSI-Paket ('C:\\Temp\\zabbix_agent.msi'
).zabbix_agent_temp_folder
: Temporäres Verzeichnis ('C:\\Temp'
).zabbix_agent_install_folder
: Installationsverzeichnis des Agenten ('C:\\Program Files\\Zabbix Agent'
).zabbix_agent_log_path
: Pfad für das Installationsprotokoll ('C:\\Temp\\zabbix_agent_install_log.txt'
).zabbix_server_ip
: IP-Adresse des Zabbix Servers ("10.11.2.15"
).
Wichtige Aufgaben:
- Temp-Verzeichnis sicherstellen: Erstellen des temporären Verzeichnisses, falls es nicht existiert.
- Zabbix-Installation prüfen: Überprüfen, ob der Zabbix Agent bereits installiert ist.
- Deinstallation des bestehenden Zabbix Agenten: Entfernen des bestehenden Agenten, falls installiert.
- Alte Konfigurationsdatei entfernen: Löschen der alten Konfigurationsdatei, wenn vorhanden.
- Zabbix Agent MSI herunterladen: Herunterladen des Zabbix Agenten von der angegebenen URL.
- Installationsverzeichnis erstellen: Sicherstellen, dass das Installationsverzeichnis existiert.
- Zabbix Agent installieren: Installation des Agenten mittels des heruntergeladenen MSI-Pakets.
- Zabbix Agent Dienst starten: Starten des Agenten und setzen des Startmodus auf automatisch.
Schreibe einen Kommentar