diff options
-rwxr-xr-x | src/conf_mode/snmp.py | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/conf_mode/snmp.py b/src/conf_mode/snmp.py index 8f0b0c7c1..cb77f7f22 100755 --- a/src/conf_mode/snmp.py +++ b/src/conf_mode/snmp.py @@ -31,12 +31,12 @@ from stat import S_IRWXU,S_IXGRP,S_IXOTH,S_IROTH,S_IRGRP from vyos.config import Config from vyos import ConfigError -config_file_client = r'/etc/snmp/snmp.conf' -config_file_daemon = r'/etc/snmp/snmpd.conf' -config_file_access = r'/usr/share/snmp/snmpd.conf' -config_file_user = r'/var/lib/snmp/snmpd.conf' -config_file_init = r'/etc/default/snmpd' -default_script_dir = r'/config/user-data/' +config_file_client = r'/etc/snmp/snmp.conf' +config_file_daemon = r'/etc/snmp/snmpd.conf' +config_file_access = r'/usr/share/snmp/snmpd.conf' +config_file_user = r'/var/lib/snmp/snmpd.conf' +config_file_systemd = r'/etc/systemd/system/snmpd.service.d/override.conf' +default_script_dir = r'/config/user-data/' # SNMP OIDs used to mark auth/priv type OIDs = { @@ -213,11 +213,10 @@ init_config_tmpl = """ ### Autogenerated by snmp.py ### # This file controls the activity of snmpd -# snmpd control (yes means start daemon). -SNMPDRUN=yes +[Service] +ExecStart= +ExecStart=/usr/sbin/snmpd -Ls0-5d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf,ipCidrRouteTable,inetCidrRouteTable -f -p /run/snmpd.pid -# snmpd options (use syslog, close stdin/out/err). -SNMPDOPTS='-LSed -u Debian-snmp -g Debian-snmp -I -ipCidrRouteTable,inetCidrRouteTable -p /run/snmpd.pid' """ default_config_data = { @@ -708,10 +707,14 @@ def generate(snmp): with open(config_file_user, 'w') as f: f.write(config_text) - # Write init config file + # Write systemd override file + dir = os.path.dirname(config_file_systemd) + if not os.path.isdir(dir): + os.mkdir(dir, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) + tmpl = jinja2.Template(init_config_tmpl) config_text = tmpl.render(snmp) - with open(config_file_init, 'w') as f: + with open(config_file_systemd, 'w') as f: f.write(config_text) return None @@ -745,6 +748,7 @@ def apply(snmp): os.symlink(nonvolatiledir, volatiledir) # start SNMP daemon + os.system("sudo systemctl daemon-reload") os.system("sudo systemctl restart snmpd.service") # Passwords are not available immediately in the configuration file, |