summaryrefslogtreecommitdiff
path: root/src/conf_mode/snmp.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/conf_mode/snmp.py')
-rwxr-xr-xsrc/conf_mode/snmp.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/conf_mode/snmp.py b/src/conf_mode/snmp.py
index 918c7f128..0ad229bed 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 snmp -g 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,