Faidon Liambotis has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/364753 )
Change subject: (WIP): Add SNMP classes
......................................................................
(WIP): Add SNMP classes
Add an snmp class and, more importantly, and snmp::mibs::source define
that can use snmp-mibs-downloader to fetch third-party MIBs. Populate
the Juniper MIBs in a new snmp::mibs class.
Change-Id: Id34099a3abe8e97cc8fbd023ce810e8658c7f7cf
---
A modules/snmp/files/juniper-mibs
A modules/snmp/manifests/init.pp
A modules/snmp/manifests/mibs.pp
A modules/snmp/manifests/mibs/source.pp
A modules/snmp/templates/mib.conf.erb
5 files changed, 229 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/53/364753/1
diff --git a/modules/snmp/files/juniper-mibs b/modules/snmp/files/juniper-mibs
new file mode 100644
index 0000000..2b1e68f
--- /dev/null
+++ b/modules/snmp/files/juniper-mibs
@@ -0,0 +1,156 @@
+# Up to date as of 16.1R3.10
+#
+# Generate this list with:
+# for mib in *; do
+# new=$(sed -nr 's/\s*(.*) DEFINITIONS.*/\1/p' $mib);
+# old=$(echo $mib |sed 's/^mib-//;s/\.txt$//');
+# echo $old $new;
+# done | column -t | sort
+jnx-alarm JUNIPER-ALARM-EXT-MIB
+jnx-analyzer JUNIPER-ANALYZER-MIB
+jnx-atm-cos JUNIPER-ATM-COS-MIB
+jnx-atm JUNIPER-ATM-MIB
+jnx-bfd-exp BFD-STD-MIB
+jnx-bfd JUNIPER-BFD-MIB
+jnx-bgpmib2 BGP4-V2-MIB-JUNIPER
+jnx-bl JNX-OPT-IF-EXT-MIB
+jnx-cfgmgmt JUNIPER-CFGMGMT-MIB
+jnx-chas-defines JUNIPER-CHASSIS-DEFINES-MIB
+jnx-chassis-alarm JUNIPER-ALARM-MIB
+jnx-chassis-fwdd JUNIPER-CHASSIS-FWDD-MIB
+jnx-chassis JUNIPER-MIB
+jnx-coll JUNIPER-COLLECTOR-MIB
+jnx-cos JUNIPER-COS-MIB
+jnx-dcu JUNIPER-DCU-MIB
+jnx-dfc JUNIPER-DFC-MIB
+jnx-dom JUNIPER-DOM-MIB
+jnx-dot3oam-capability JNX-DOT3OAM-CAPABILITY
+jnx-event JUNIPER-EVENT-MIB
+jnx-ex-mac-notification JUNIPER-EX-MAC-NOTIFICATION-MIB
+jnx-exp JUNIPER-EXPERIMENT-MIB
+jnx-ex-smi JUNIPER-EX-SMI
+jnx-fabric-chassis JUNIPER-FABRIC-CHASSIS
+jnx-fabric JUNIPER-FABRIC-MIB
+jnx-firewall JUNIPER-FIREWALL-MIB
+jnx-fru JUNIPER-FRU-MIB
+jnx-gen-set JUNIPER-SNMP-SET-MIB
+jnx-hostresources JUNIPER-HOSTRESOURCES-MIB
+jnx-if-accounting JUNIPER-IF-ACCOUNTING-MIB
+jnx-if-capability JNX-IF-CAPABILITY
+jnx-if-extensions JUNIPER-IF-MIB
+jnx-ifotn JUNIPER-IFOTN-MIB
+jnx-ip-capability JNX-IP-CAPABILITY
+jnx-ipforward JUNIPER-IPFORWARD-MIB
+jnx-ipmcast-capability IPMCAST-MIB-CAPABILITY
+jnx-ipsec-flow-mon JUNIPER-IPSEC-FLOW-MON-MIB
+jnx-ipsec-monitor-asp JNX-IPSEC-MONITOR-MIB
+jnx-ipv4 JUNIPER-IPv4-MIB
+jnx-ipv6 JUNIPER-IPv6-MIB
+jnx-jdhcp JUNIPER-JDHCP-MIB
+jnx-jdhcpv6 JUNIPER-JDHCPV6-MIB
+jnx-js-auth JUNIPER-JS-AUTH-MIB
+jnx-js-cert JUNIPER-JS-CERT-MIB
+jnx-js-dns JUNIPER-JS-DNS-MIB
+jnx-js-idp JUNIPER-JS-IDP-MIB
+jnx-js-if-ext JUNIPER-JS-IF-EXT-MIB
+jnx-js-ipsec-vpn JUNIPER-JS-IPSEC-VPN-MIB
+jnx-js-nat JUNIPER-JS-NAT-MIB
+jnx-js-packet-mirror JUNIPER-JS-PACKET-MIRROR-MIB
+jnx-js-policy JUNIPER-JS-POLICY-MIB
+jnx-jsrpd JUNIPER-CHASSIS-CLUSTER-MIB
+jnx-js-screening JUNIPER-JS-SCREENING-MIB
+jnx-js-smi JUNIPER-JS-SMI
+jnx-js-spu-monitoring JUNIPER-SRX5000-SPU-MONITORING-MIB
+jnx-js-utm-av JUNIPER-JS-UTM-AV-MIB
+jnx-jvae-infra JUNIPER-JVAE-INFRA-MIB
+jnx-jvae-node JUNIPER-JVAE-NODE-MIB
+jnx-l2ald JUNIPER-L2ALD-MIB
+jnx-l2cp-features JUNIPER-L2CP-FEATURES-MIB
+jnx-l2tp JNX-L2TP-MIB
+jnx-ldp JUNIPER-LDP-MIB
+jnx-license JUNIPER-LICENSE-MIB
+jnx-lsys-securityprofile JUNIPER-LSYS-SECURITYPROFILE-MIB
+jnx-lsys-sp-authentry JUNIPER-LSYSSPAUTHENTRY-MIB
+jnx-lsys-sp-cpu JUNIPER-LSYSSP-CPU-MIB
+jnx-lsys-sp-flowgate JUNIPER-LSYSSP-FLOWGATE-MIB
+jnx-lsys-sp-flowsess JUNIPER-LSYSSP-FLOWSESS-MIB
+jnx-lsys-sp-natconebind JUNIPER-LSYSSP-NATCONEBIND-MIB
+jnx-lsys-sp-natdstpool JUNIPER-LSYSSP-NATDSTPOOL-MIB
+jnx-lsys-sp-natdstrule JUNIPER-LSYSSP-NATDSTRULE-MIB
+jnx-lsys-sp-natpoipnum JUNIPER-LSYSSP-NATPOIPNUM-MIB
+jnx-lsys-sp-natsrcnopatad JUNIPER-LSYSSP-NATSRCNOPATAD-MIB
+jnx-lsys-sp-natsrcpatad JUNIPER-LSYSSP-NATSRCPATAD-MIB
+jnx-lsys-sp-natsrcpool JUNIPER-LSYSSP-NATSRCPOOL-MIB
+jnx-lsys-sp-natsrcrule JUNIPER-LSYSSP-NATSRCRULE-MIB
+jnx-lsys-sp-natstaticrule JUNIPER-LSYSSP-NATSTATICRULE-MIB
+jnx-lsys-sp-policy JUNIPER-LSYSSP-POLICY-MIB
+jnx-lsys-sp-policywcnt JUNIPER-LSYSSP-POLICYWCNT-MIB
+jnx-lsys-sp-scheduler JUNIPER-LSYSSP-SCHEDULER-MIB
+jnx-lsys-sp-zone JUNIPER-LSYSSP-ZONE-MIB
+jnx-mac JUNIPER-MAC-MIB
+jnx-mag JUNIPER-MAG-MIB
+jnx-mbg-smi JUNIPER-MBG-SMI
+jnx-mimstp JUNIPER-MIMSTP-MIB
+jnx-mobile-gateway-aaa JUNIPER-MOBILE-GATEWAY-AAA-MIB
+jnx-mobile-gateway-appfw JUNIPER-MOBILE-GATEWAY-SM-MIB
+jnx-mobile-gateway-charging JUNIPER-MOBILITY-CHARGING-MIB
+jnx-mobile-gateway-dhcp JUNIPER-MOBILE-GATEWAY-DHCP-MIB
+jnx-mobile-gateway-example JUNIPER-MOBILE-GATEWAY-EXAMPLE-MIB
+jnx-mobile-gateway-gtp JUNIPER-MOBILE-GATEWAY-GTP-MIB
+jnx-mobile-gateway-rmps JUNIPER-MOBILE-GATEWAY-RMPS-MIB
+jnx-mobile-gateway-sgw-charging JUNIPER-MOBILITY-SGW-CHARGING-MIB
+jnx-mobile-gateway-sgw-gtp JUNIPER-MOBILE-GATEWAY-SGW-GTP-MIB
+jnx-mobile-gateway-sgw-mfwd JUNIPER-MOBILE-GW-SGW-MFWD-MIB
+jnx-mobile-gateway-sgw-sm JUNIPER-MOBILE-GATEWAY-SGW-SM-MIB
+jnx-mobile-gateways JUNIPER-MOBILE-GATEWAYS
+jnx-mobile-gateway-sm-ip-pool JUNIPER-MOBILE-GATEWAY-SM-IP-POOL-MIB
+jnx-mpls-ldp JUNIPER-MPLS-LDP-MIB
+jnx-mpls MPLS-MIB
+jnx-optics JUNIPER-IFOPTICS-MIB
+jnx-optif JNX-OPT-IF-MIB
+jnx-ospfv3mib OSPFV3-MIB-JUNIPER
+jnx-otn JUNIPER-OTN-MIB
+jnx-p2mp JNX-MPLS-TE-P2MP-STD-MIB
+jnx-pae-extension JUNIPER-PAE-EXTENSION-MIB
+jnx-pfe JUNIPER-PFE-MIB
+jnx-ping JUNIPER-PING-MIB
+jnx-pmon JUNIPER-PMon-MIB
+jnx-power-supply-unit JUNIPER-POWER-SUPPLY-UNIT-MIB
+jnx-ppp JNX-PPP-MIB
+jnx-pppoe JNX-PPPOE-MIB
+jnx-pwatm JUNIPER-PW-ATM-MIB
+jnx-pwtdm JUNIPER-PW-TDM-MIB
+jnx-rmon JUNIPER-RMON-MIB
+jnx-rpf JUNIPER-RPF-MIB
+jnx-rpm JUNIPER-RPM-MIB
+jnx-rpm-twamp JUNIPER-TWAMP-MIB
+jnx-rps JUNIPER-RPS-MIB
+jnx-rsvp JUNIPER-RSVP-MIB
+jnx-rtm JUNIPER-RTM-MIB
+jnx-scu JUNIPER-SCU-MIB
+jnx-secure-access-port JUNIPER-SECURE-ACCESS-PORT-MIB
+jnx-services JUNIPER-Services-MIB
+jnx-sipcommon JUNIPER-SIP-COMMON-MIB
+jnx-smi JUNIPER-SMI
+jnx-snmpv2-capability JNX-SNMPv2-CAPABILITY
+jnx-soam-pm JUNIPER-SOAM-PM-MIB
+jnx-sonetaps APS-MIB
+jnx-sonet JUNIPER-SONET-MIB
+jnx-sp JUNIPER-SP-MIB
+jnx-sp-nat JUNIPER-NAT-MIB
+jnx-srd JUNIPER-SRD-MIB
+jnx-subscriber JUNIPER-SUBSCRIBER-MIB
+jnx-syslog JUNIPER-SYSLOG-MIB
+jnx-timing-notifications JUNIPER-TIMING-NOTFNS-MIB
+jnx-tlb JUNIPER-TLB-MIB
+jnx-traceroute JUNIPER-TRACEROUTE-MIB
+jnx-user-aaa JUNIPER-USER-AAA-MIB
+jnx-util JUNIPER-UTIL-MIB
+jnx-virtualchassis JUNIPER-VIRTUALCHASSIS-MIB
+jnx-vlan JUNIPER-VLAN-MIB
+jnx-vmon JUNIPER-VMON-MIB
+jnx-vpls-bgp VPLS-BGP-DRAFT-01-MIB
+jnx-vpls-generic VPLS-GENERIC-DRAFT-01-MIB
+jnx-vpls-ldp VPLS-LDP-DRAFT-01-MIB
+jnx-vpn JUNIPER-VPN-MIB
+rfc3813-capability MPLS-LSR-STD-CAPABILITY
diff --git a/modules/snmp/manifests/init.pp b/modules/snmp/manifests/init.pp
new file mode 100644
index 0000000..e6e3463
--- /dev/null
+++ b/modules/snmp/manifests/init.pp
@@ -0,0 +1,6 @@
+#
+class snmp {
+ package { 'snmp':
+ ensure => present,
+ }
+}
diff --git a/modules/snmp/manifests/mibs.pp b/modules/snmp/manifests/mibs.pp
new file mode 100644
index 0000000..15d41c7
--- /dev/null
+++ b/modules/snmp/manifests/mibs.pp
@@ -0,0 +1,16 @@
+#
+class snmp::mibs {
+ package { 'snmp-mibs-downloader':
+ ensure => present,
+ }
+
+ snmp::mibs::source { 'juniper':
+ source =>
'http://www.juniper.net/techpubs/software/junos/junos161/juniper-mibs-16.1R3.10.tgz',
+ list => 'puppet:///modules/snmp/juniper-mibs',
+ options => {
+ 'PREFIX' => 'JuniperMibs/mib-',
+ 'SUFFIX' => '.txt',
+ },
+ }
+
+}
diff --git a/modules/snmp/manifests/mibs/source.pp
b/modules/snmp/manifests/mibs/source.pp
new file mode 100644
index 0000000..257ad64
--- /dev/null
+++ b/modules/snmp/manifests/mibs/source.pp
@@ -0,0 +1,43 @@
+#
+define snmp::mibs::source(
+ $source,
+ $list,
+ $options={},
+) {
+
+ $listname = "${title}list"
+
+ # while Net-SNMP would be equally happy if we set this to $title, libsmi
+ # isn't as smart and traverses directories non-recursively. We could either
+ # modify /etc/smi.conf's path, or hardcode all of our sources to "site" but
+ # making cleanup a little more difficult. This define doesn't support
+ # ensure absent anyway, so do that for now.
+ $destdir = 'site'
+
+ file { "/etc/snmp-mibs-downloader/${title}.conf":
+ ensure => present,
+ mode => '0444',
+ owner => 'root',
+ group => 'root',
+ content => template('snmp/mib.conf.erb'),
+ require => Package['snmp-mibs-downloader'],
+ notify => Exec["download-mibs ${title}"],
+ }
+
+ file { "/etc/snmp-mibs-downloader/${listname}":
+ ensure => present,
+ mode => '0444',
+ owner => 'root',
+ group => 'root',
+ source => $list,
+ require => Package['snmp-mibs-downloader'],
+ notify => Exec["download-mibs ${title}"],
+ }
+
+ exec { "download-mibs ${title}":
+ path => '/usr/sbin:/usr/bin:/sbin:/bin',
+ require => Package['snmp-mibs-downloader'],
+ refreshonly => true,
+ }
+
+}
diff --git a/modules/snmp/templates/mib.conf.erb
b/modules/snmp/templates/mib.conf.erb
new file mode 100644
index 0000000..b85105d
--- /dev/null
+++ b/modules/snmp/templates/mib.conf.erb
@@ -0,0 +1,8 @@
+HOST=<%= @source.sub(/^(.+)\/([^\/]+)$/, '\1') %>
+ARCHIVE=<%= @source.sub(/^(.+)\/([^\/]+)$/, '\2') %>
+ARCHTYPE=<%= @source.sub(/.+\.(tar|tgz|zip)$/, '\1') %>
+CONF=<%= @listname %>
+DEST=<%= @destdir %>
+<%- @options.sort.each do |key, value| -%>
+<%= key %>=<%= value %>
+<%- end -%>
--
To view, visit https://gerrit.wikimedia.org/r/364753
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id34099a3abe8e97cc8fbd023ce810e8658c7f7cf
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Faidon Liambotis <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits