Zabbix Agent for WAPT
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.7 KiB

# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []
variables = {
'zabbix_servers': [ '' ]
# Read local variables file if available
if isfile(makepath(programfiles32,'wapt','private','symetric.txt')) and isfile(makepath(programfiles32,'wapt','private','variables.txt')):
print('Reading local encrypted variables file')
from cryptography.fernet import Fernet
import yaml
f = Fernet(open(makepath(programfiles32,'wapt','private','symetric.txt'),'r').read())
props = {
def install():
version = control['version'].split('-',1)[0]
print('Installing Zabbix Agent version ' + version)
if iswin64():
install_msi_if_needed('zabbix_agent-%s_x64.msi' % version,killbefore=['zabbix_agentd.exe'],properties=props,remove_old_version=True)
install_msi_if_needed('zabbix_agent-%s_x86.msi' % version,killbefore=['zabbix_agentd.exe'],properties=props,remove_old_version=True)
print('Opening port 10050 in the firewall')
# Remove the previous rule if it existed. We don't mind the return code as the rule might not exist
run_notfatal('netsh advfirewall firewall del rule name="Zabbix Agent"')
# And add a new one
run('netsh advfirewall firewall add rule name="Zabbix Agent" dir=in action=allow protocol=TCP localport=10050 enable=yes remoteip=%s' % (','.join(variables['zabbix_servers'])))
def uninstall():
print('Removing firewall rule')
run_notfatal('netsh advfirewall firewall del rule name="Zabbix Agent"')
def update_package():
import requests, re
from waptpackage import PackageEntry
print('Updating Zabbix Agent package')
page = requests.get('',headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'}).text
version ='zabbix_agent-(\d+(\.\d+)*)_x64.msi', page).group(1)
for arch in ['86', '64']:
if not isfile('zabbix_agent-%s_x%s.msi' % (version, arch)):
filename ='zabbix_agent-%s_x%s.msi' % (version, arch)
url = '' % filename
print('Downloading %s from %s' % (filename, url))
wget(url, filename)
for old in glob.glob(r'zabbix_agent-*_x%s' % arch):
if not old == filename:
pe = PackageEntry()
control = pe.load_control_from_wapt(os.getcwd())
if Version(version) > Version(control['version'].split('-',1)[0]):
pe.version = version + '-0'