# -*- coding: utf-8 -*- from setuphelpers import * import json from cryptography.fernet import Fernet uninstallkey = [] variables = { 'zabbix_servers': [ '127.0.0.1' ] } # 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') f = Fernet(open(makepath(programfiles32,'wapt','private','symetric.txt'),'r').read()) variables.update(json.loads(f.decrypt(open(makepath(programfiles32,'wapt','private','variables.txt'),'r').read()))) props = { 'RMTCMD':0, 'SERVER':','.join(variables['zabbix_servers']) } 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) else: 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"')