mirror of
https://github.com/bb-Ricardo/netbox-sync.git
synced 2026-01-18 23:10:09 -06:00
394 lines
16 KiB
INI
394 lines
16 KiB
INI
;;; Welcome to the NetBox Sync configuration file.
|
|
;;; Version: 1.4.1 (2023-04-20)
|
|
;;; Project URL: https://github.com/bb-ricardo/netbox-sync
|
|
|
|
; The values in this file override the default values used by the system if a config
|
|
; option is not specified. The commented out lines are the configuration field and the
|
|
; default value used. Uncommenting a line and changing the value will change the value
|
|
; used at runtime when the process is restarted.
|
|
|
|
;;;
|
|
;;; [common]
|
|
;;;
|
|
;;; Controls the parameters for logging
|
|
;;;
|
|
|
|
[common]
|
|
|
|
; Logs will always be printed to stdout/stderr.
|
|
; Logging can be set to following log levels:
|
|
; ERROR: Fatal Errors which stops regular a run
|
|
; WARNING: Warning messages won't stop the syncing process but mostly worth
|
|
; to have a look at.
|
|
; INFO: Information about objects that will be create/updated/deleted in NetBox
|
|
; DEBUG: Will log information about retrieved information, changes in internal
|
|
; data structure and parsed config
|
|
; DEBUG2: Will also log information about how/why data is parsed or skipped.
|
|
; DEBUG3: Logs all source and NetBox queries/results to stdout. Very useful for
|
|
; troubleshooting, but will log any sensitive data contained within a query.
|
|
;log_level = INFO
|
|
|
|
; Enabling this options will write all logs to a log file defined in 'log_file'
|
|
;log_to_file = False
|
|
|
|
; Destination of the log file if "log_to_file" is enabled. Log file will be rotated
|
|
; maximum 5 times once the log file reaches size of 10 MB
|
|
;log_file = log/netbox_sync.log
|
|
|
|
;;;
|
|
;;; [netbox]
|
|
;;;
|
|
;;; Controls the connection parameters to your netBox instance
|
|
;;;
|
|
|
|
[netbox]
|
|
|
|
; Requires an NetBox API token with full permissions on all objects except 'auth',
|
|
; 'secrets' and 'users'
|
|
api_token = XYZ
|
|
|
|
; Requires a hostname or IP which points to your NetBox instance
|
|
host_fqdn = netbox.example.com
|
|
|
|
; Define the port your NetBox instance is listening on. If 'disable_tls' is set to "true"
|
|
; this option might be set to 80
|
|
;port = 443
|
|
|
|
; Whether TLS encryption is enabled or disabled
|
|
;disable_tls = False
|
|
|
|
; Enforces TLS certificate validation. If this system doesn't trust the NetBox web server
|
|
; certificate then this option needs to be changed
|
|
;validate_tls_certs = True
|
|
|
|
; Defines a proxy which will be used to connect to NetBox. Proxy setting needs to include
|
|
; the schema. Proxy basic auth example: http://user:pass@10.10.1.10:312
|
|
;proxy = http://example.com:3128
|
|
|
|
; Specify a client certificate which can be used to authenticate to NetBox
|
|
;client_cert = client.pem
|
|
|
|
; Specify the client certificate private key belonging to the client cert
|
|
;client_cert_key = client.key
|
|
|
|
; Whether items which were created by this program but can't be found in any source
|
|
; anymore will be deleted or not
|
|
;prune_enabled = False
|
|
|
|
; Orphaned objects will first be tagged before they get deleted. Once the amount of days
|
|
; passed the object will actually be deleted
|
|
;prune_delay_in_days = 30
|
|
|
|
; This will tell netbox-sync to ignore objects in NetBox with tag 'NetBox-synced' from
|
|
; pruning if the source is not defined in this config file (https://github.com/bb-
|
|
; Ricardo/netbox-sync/issues/176)
|
|
;ignore_unknown_source_object_pruning = False
|
|
|
|
; The maximum number of objects returned in a single request. If a NetBox instance is very
|
|
; quick responding the value should be raised
|
|
;default_netbox_result_limit = 200
|
|
|
|
; The maximum time a query is allowed to execute before being killed and considered failed
|
|
;timeout = 30
|
|
|
|
; The amount of times a failed request will be reissued. Once the maximum is reached the
|
|
; syncing process will be stopped completely.
|
|
;max_retry_attempts = 4
|
|
|
|
; Defines if caching of NetBox objects is used or not. If problems with unresolved
|
|
; dependencies occur, switching off caching might help.
|
|
;use_caching = True
|
|
|
|
; The location of the directory where the cache files should be stored
|
|
;cache_directory_location = cache
|
|
|
|
;;;
|
|
;;; [source/*]
|
|
;;;
|
|
;;; Controls the parameters of a defined source. The string past the slash will be used as
|
|
;;; a sources name. Sources can be defined multiple times to represent different sources.
|
|
;;;
|
|
|
|
[source/my-vcenter-example]
|
|
|
|
; Defines if this source is enabled or not
|
|
;enabled = True
|
|
|
|
; type of source. This defines which source handler to use
|
|
type = vmware
|
|
|
|
; host name / IP address of the vCenter
|
|
host_fqdn = vcenter.example.com
|
|
|
|
; TCP port to connect to
|
|
;port = 443
|
|
|
|
; username to use to log into vCenter
|
|
username = vcenter-readonly
|
|
|
|
; password to use to log into vCenter
|
|
password = super-secret
|
|
|
|
; Enforces TLS certificate validation. If vCenter uses a valid TLS certificate then this
|
|
; option should be set to 'true' to ensure a secure connection.
|
|
;validate_tls_certs = False
|
|
|
|
; EXPERIMENTAL: Connect to a vCenter using a proxy server (socks proxies are not
|
|
; supported). define a host name or an IP address
|
|
;proxy_host = 10.10.1.10
|
|
|
|
; EXPERIMENTAL: Connect to a vCenter using a proxy server (socks proxies are not
|
|
; supported). define proxy server port number
|
|
;proxy_port = 3128
|
|
|
|
; IP networks eligible to be synced to NetBox. If an IP address is not part of this
|
|
; networks then it WON'T be synced to NetBox. To excluded small blocks from bigger IP
|
|
; blocks a leading '!' has to be added
|
|
;permitted_subnets = 172.16.0.0/12, 10.0.0.0/8, 192.168.0.0/16, fd00::/8, !10.23.42.0/24
|
|
|
|
; filter options
|
|
|
|
; filters can be used to include/exclude certain objects from importing into NetBox.
|
|
; Include filters are checked first and exclude filters after. An object name has to pass
|
|
; both filters to be synced to NetBox. If a filter is unset it will be ignored. Filters
|
|
; are all treated as regex expressions! If more then one expression should match, a '|'
|
|
; needs to be used
|
|
;
|
|
; Example: (exclude all VMs with "replica" in their name and all VMs starting with
|
|
; "backup"): vm_exclude_filter = .*replica.*|^backup.*
|
|
|
|
; If a cluster is excluded from sync then ALL VMs and HOSTS inside the cluster will be
|
|
; ignored! a cluster can be specified as "Cluster-name" or "Datacenter-name/Cluster-name"
|
|
; if multiple clusters have the same name
|
|
;cluster_exclude_filter =
|
|
;cluster_include_filter =
|
|
|
|
; This will only include/exclude the host, not the VM if Host is part of a multi host
|
|
; cluster
|
|
;host_exclude_filter =
|
|
;host_include_filter =
|
|
|
|
; simply include/exclude VMs
|
|
;vm_exclude_filter =
|
|
;vm_include_filter =
|
|
|
|
; relations options
|
|
|
|
; This option defines which vCenter cluster is part of a NetBox site.
|
|
; This is done with a comma separated key = value list.
|
|
; key: defines the cluster name as regex
|
|
; value: defines the NetBox site name (use quotes if name contains commas)
|
|
; This is a quite important config setting as IP addresses, prefixes, VLANs
|
|
; and VRFs are site dependent. In order to assign the correct prefix to an IP
|
|
; address it is important to pick the correct site.
|
|
; A VM always depends on the cluster site relation
|
|
; a cluster can be specified as "Cluster-name" or
|
|
; "Datacenter-name/Cluster-name" if multiple clusters have the same name
|
|
;cluster_site_relation = Cluster_NYC = New York, Cluster_FFM.* = Frankfurt, Datacenter_TOKIO/.* = Tokio
|
|
|
|
; Same as cluster site but on host level. If unset it will fall back to
|
|
; cluster_site_relation
|
|
;host_site_relation = nyc02.* = New York, ffm01.* = Frankfurt
|
|
|
|
; This option defines which cluster/host/VM belongs to which tenant.
|
|
; This is done with a comma separated key = value list.
|
|
; key: defines a hosts/VM name as regex
|
|
; value: defines the NetBox tenant name (use quotes if name contains commas)
|
|
; a cluster can be specified as "Cluster-name" or
|
|
; "Datacenter-name/Cluster-name" if multiple clusters have the same name
|
|
;cluster_tenant_relation = Cluster_NYC.* = Customer A
|
|
;host_tenant_relation = esxi300.* = Infrastructure
|
|
;vm_tenant_relation = grafana.* = Infrastructure
|
|
|
|
; This option defines custom platforms if the VMWare created platforms are not suitable.
|
|
; Pretty much a mapping of VMWare platform name to your own platform name.
|
|
; This is done with a comma separated key = value list.
|
|
; key: defines a VMWare returned platform name
|
|
; value: defines the desired NetBox platform name
|
|
;vm_platform_relation = centos-7.* = centos7, microsoft-windows-server-2016.* = Windows2016
|
|
|
|
; Define the NetBox device role used for hosts and VMs. The default is
|
|
; set to "Server". This is done with a comma separated key = value list.
|
|
; key: defines a hosts/VM name as regex
|
|
; value: defines the NetBox role name (use quotes if name contains commas)
|
|
;host_role_relation = .* = Server
|
|
;vm_role_relation = .* = Server
|
|
|
|
; Define NetBox tags which are assigned to a cluster, host or VM. This is
|
|
; done with a comma separated key = value list.
|
|
; key: defines a hosts/VM name as regex
|
|
; value: defines the NetBox tag (use quotes if name contains commas)
|
|
; a cluster can be specified as "Cluster-name" or
|
|
; "Datacenter-name/Cluster-name" if multiple clusters have the same name
|
|
;cluster_tag_relation = Cluster_NYC.* = Infrastructure
|
|
;host_tag_relation = esxi300.* = Infrastructure
|
|
;vm_tag_relation = grafana.* = Infrastructure
|
|
|
|
; Try to find existing host based on serial number. This can cause issues with blade
|
|
; centers if VMWare does not report the blades serial number properly.
|
|
;match_host_by_serial = True
|
|
|
|
; Attempt to collect asset tags from vCenter hosts
|
|
;collect_hardware_asset_tag = True
|
|
|
|
; Perform a reverse lookup for all collected IP addresses. If a dns name was found it will
|
|
; be added to the IP address object in NetBox
|
|
;dns_name_lookup = True
|
|
|
|
; use custom DNS server to do the reverse lookups
|
|
;custom_dns_servers = 192.168.1.11, 192.168.1.12
|
|
|
|
; define how the primary IPs should be set
|
|
; possible values:
|
|
;
|
|
; always: will remove primary IP from the object where this address is
|
|
; currently set as primary and moves it to new object
|
|
;
|
|
; when-undefined:
|
|
; only sets primary IP if undefined, will cause ERRORs if same IP is
|
|
; assigned more then once to different hosts and IP is set as the
|
|
; objects primary IP
|
|
;
|
|
; never: don't set any primary IPs, will cause the same ERRORs
|
|
; as "when-undefined"
|
|
;set_primary_ip = when-undefined
|
|
|
|
; Do not sync notes from a VM in vCenter to the comments field on a VM in netbox
|
|
;skip_vm_comments = False
|
|
|
|
; Do not sync template VMs
|
|
;skip_vm_templates = True
|
|
|
|
; Skip virtual machines which are reported as offline.
|
|
; ATTENTION: this option will keep purging stopped VMs if activated!
|
|
;skip_offline_vms = False
|
|
|
|
; If the VMware Site Recovery Manager is used to can skip syncing placeholder/replicated
|
|
; VMs from fail-over site to NetBox.
|
|
;skip_srm_placeholder_vms = False
|
|
|
|
; strip domain part from host name before syncing device to NetBox
|
|
;strip_host_domain_name = False
|
|
|
|
; strip domain part from VM name before syncing VM to NetBox
|
|
;strip_vm_domain_name = False
|
|
|
|
; tag source options
|
|
|
|
; sync tags assigned to clusters, hosts and VMs in vCenter to NetBox
|
|
; INFO: this requires the installation of the 'vsphere-automation-sdk',
|
|
; see docs about installation possible values:
|
|
; * object : the host or VM itself
|
|
; * parent_folder_1 : the direct folder this object is organized in (1 level up)
|
|
; * parent_folder_2 : the indirect folder this object is organized in (2 levels up)
|
|
; * cluster : the cluster this object is organized in
|
|
; * datacenter : the datacenter this object is organized in
|
|
; this is a comma separated list of options. example: vm_tag_source = object, cluster
|
|
;
|
|
; Example: vm_tag_source = object, cluster
|
|
;cluster_tag_source =
|
|
;host_tag_source =
|
|
;vm_tag_source =
|
|
|
|
; sync custom attributes defined for hosts and VMs in vCenter to NetBox as custom fields
|
|
;sync_custom_attributes = False
|
|
|
|
; custom object attributes options
|
|
|
|
; add arbitrary host/vm object attributes as custom fields to NetBox.
|
|
; multiple attributes can be defined comma separated.
|
|
; to get a list of available attributes use '-l DEBUG3' as cli param (CAREFUL: output might be long)
|
|
; and here 'https://gist.github.com/bb-Ricardo/538768487bdac4efafabe56e005cb4ef' can be seen how to
|
|
; access these attributes
|
|
;host_custom_object_attributes = summary.runtime.bootTime
|
|
;vm_custom_object_attributes = config.uuid
|
|
|
|
; this will set the sources name as cluster group name instead of the datacenter. This
|
|
; works if the vCenter has ONLY ONE datacenter configured. Otherwise it will rename all
|
|
; datacenters to the source name!
|
|
;set_source_name_as_cluster_group = False
|
|
|
|
; activating this option will also include "dummy/virtual" interfaces which are only
|
|
; visible inside the VM and are exposed through VM guest tools. Dummy interfaces without
|
|
; an IP address will be skipped.
|
|
;sync_vm_dummy_interfaces = False
|
|
|
|
; disables syncing of any VLANs visible in vCenter to NetBox
|
|
;disable_vlan_sync = False
|
|
|
|
; enabling this option will add the ESXi host this VM is running on to the VM details
|
|
;track_vm_host = False
|
|
|
|
; define if the name of the device interface discovered overwrites the interface name in
|
|
; NetBox. The interface will only be matched by identical MAC address
|
|
;overwrite_device_interface_name = True
|
|
|
|
; define if the name of the VM interface discovered overwrites the interface name in
|
|
; NetBox. The interface will only be matched by identical MAC address
|
|
;overwrite_vm_interface_name = True
|
|
|
|
; set a matching value for ESXi host management interface description (case insensitive,
|
|
; comma separated). Used to figure out the ESXi primary IP address
|
|
;host_management_interface_match = management, mgmt
|
|
|
|
; define in which order the IP address tenant will be assigned if tenant is undefined.
|
|
; possible values:
|
|
; * device : host or VM tenant will be assigned to the IP address
|
|
; * prefix : if the IP address belongs to an existing prefix and this prefix has a tenant assigned, then this one is used
|
|
; * disabled : no tenant assignment to the IP address will be performed
|
|
; the order of the definition is important, the default is "device, prefix" which means:
|
|
; If the device has a tenant then this one will be used. If not, the prefix tenant will be used if defined
|
|
;ip_tenant_inheritance_order = device, prefix
|
|
|
|
; Usually netbox-sync grabs the MTU size for the VM interface from the ESXi hosts vSwitch.
|
|
; If this is not fitting or incorrect it is possible to disable the synchronisation by
|
|
; setting this option to 'False'
|
|
;sync_vm_interface_mtu = True
|
|
|
|
[source/my-redfish-example]
|
|
|
|
; Defines if this source is enabled or not
|
|
;enabled = True
|
|
|
|
; type of source. This defines which source handler to use
|
|
type = check_redfish
|
|
|
|
; define the full path where the check_redfish inventory json files are located
|
|
inventory_file_path = /full/path/to/inventory/files
|
|
|
|
; IP networks eligible to be synced to NetBox. If an IP address is not part of this
|
|
; networks then it WON'T be synced to NetBox. To excluded small blocks from bigger IP
|
|
; blocks a leading '!' has to be added
|
|
;permitted_subnets = 172.16.0.0/12, 10.0.0.0/8, 192.168.0.0/16, fd00::/8, !10.23.42.0/24
|
|
|
|
; define if the host name discovered via check_redfish overwrites the device host name in
|
|
; NetBox
|
|
;overwrite_host_name = False
|
|
|
|
; define if the name of the power supply discovered via check_redfish overwrites the power
|
|
; supply name in NetBox
|
|
;overwrite_power_supply_name = False
|
|
|
|
; define if existing power supply attributes are overwritten with data discovered via
|
|
; check_redfish if False only data which is not preset in NetBox will be added
|
|
;overwrite_power_supply_attributes = True
|
|
|
|
; define if the name of the interface discovered via check_redfish overwrites the
|
|
; interface name in NetBox
|
|
;overwrite_interface_name = False
|
|
|
|
; define if existing interface attributes are overwritten with data discovered via
|
|
; check_redfish if False only data which is not preset in NetBox will be added
|
|
;overwrite_interface_attributes = True
|
|
|
|
; define in which order the IP address tenant will be assigned if tenant is undefined.
|
|
; possible values:
|
|
; * device : host or VM tenant will be assigned to the IP address
|
|
; * prefix : if the IP address belongs to an existing prefix and this prefix has a tenant assigned, then this one is used
|
|
; * disabled : no tenant assignment to the IP address will be performed
|
|
; the order of the definition is important, the default is "device, prefix" which means:
|
|
; If the device has a tenant then this one will be used. If not, the prefix tenant will be used if defined
|
|
;ip_tenant_inheritance_order = device, prefix
|
|
|
|
;EOF
|