40 changed files with 806 additions and 791 deletions
-
83.drone.yml
-
10.editorconfig
-
1.gitignore
-
196LICENSE
-
49Makefile
-
4README.md
-
152docker-compose.yml
-
4env/.gitignore
-
45env/netbox.env-dist
-
3env/postgres.env-dist
-
1env/redis-cache.env-dist
-
1env/redis.env-dist
-
12etc/netbox/opt/netbox/initializers/aggregates.yml
-
4etc/netbox/opt/netbox/initializers/cluster_types.yml
-
10etc/netbox/opt/netbox/initializers/clusters.yml
-
192etc/netbox/opt/netbox/initializers/custom_fields.yml
-
34etc/netbox/opt/netbox/initializers/dcim_interfaces.yml
-
30etc/netbox/opt/netbox/initializers/device_roles.yml
-
46etc/netbox/opt/netbox/initializers/device_types.yml
-
88etc/netbox/opt/netbox/initializers/devices.yml
-
68etc/netbox/opt/netbox/initializers/groups.yml
-
54etc/netbox/opt/netbox/initializers/ip_addresses.yml
-
8etc/netbox/opt/netbox/initializers/manufacturers.yml
-
30etc/netbox/opt/netbox/initializers/platforms.yml
-
4etc/netbox/opt/netbox/initializers/prefix_vlan_roles.yml
-
58etc/netbox/opt/netbox/initializers/prefixes.yml
-
6etc/netbox/opt/netbox/initializers/rack_groups.yml
-
24etc/netbox/opt/netbox/initializers/rack_roles.yml
-
82etc/netbox/opt/netbox/initializers/racks.yml
-
6etc/netbox/opt/netbox/initializers/regions.yml
-
18etc/netbox/opt/netbox/initializers/rirs.yml
-
64etc/netbox/opt/netbox/initializers/sites.yml
-
8etc/netbox/opt/netbox/initializers/tenant_groups.yml
-
10etc/netbox/opt/netbox/initializers/tenants.yml
-
46etc/netbox/opt/netbox/initializers/users.yml
-
56etc/netbox/opt/netbox/initializers/virtual_machines.yml
-
24etc/netbox/opt/netbox/initializers/virtualization_interfaces.yml
-
12etc/netbox/opt/netbox/initializers/vlan_groups.yml
-
38etc/netbox/opt/netbox/initializers/vlans.yml
-
16etc/netbox/opt/netbox/initializers/vrfs.yml
@ -1,27 +1,76 @@ |
|||||
|
--- |
||||
|
kind: pipeline |
||||
|
type: docker |
||||
|
name: pull_request |
||||
|
image_pull_secrets: |
||||
|
- dockerconfigjson |
||||
|
|
||||
|
steps: |
||||
|
- name: lint yaml |
||||
|
image: registry.fedy95.com/baseimage-yamllint:latest |
||||
|
commands: |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/aggregates.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/cluster_types.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/clusters.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/custom_fields.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/dcim_interfaces.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/device_roles.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/device_types.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/devices.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/groups.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/ip_addresses.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/manufacturers.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/platforms.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/prefix_vlan_roles.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/prefixes.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/rack_groups.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/rack_roles.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/racks.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/regions.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/rirs.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/sites.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/tenant_groups.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/tenants.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/users.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/virtual_machines.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/virtualization_interfaces.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/vlan_groups.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/vlans.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml etc/netbox/opt/netbox/initializers/vrfs.yml |
||||
|
- yamllint -c /yamllint/relaxed.yaml docker-compose.yml |
||||
|
when: |
||||
|
event: pull_request |
||||
|
|
||||
|
--- |
||||
kind: pipeline |
kind: pipeline |
||||
type: ssh |
type: ssh |
||||
name: default |
|
||||
|
name: master_push |
||||
|
|
||||
clone: |
clone: |
||||
disable: true |
|
||||
|
disable: true |
||||
|
|
||||
server: |
server: |
||||
host: |
|
||||
from_secret: host |
|
||||
user: |
|
||||
from_secret: user |
|
||||
password: |
|
||||
from_secret: password |
|
||||
|
host: |
||||
|
from_secret: host |
||||
|
user: |
||||
|
from_secret: user |
||||
|
password: |
||||
|
from_secret: password |
||||
|
|
||||
steps: |
steps: |
||||
- name: release |
|
||||
commands: |
|
||||
- cd /mnt/md0/experimental/netbox |
|
||||
- git pull |
|
||||
- make restart |
|
||||
|
- name: release |
||||
|
commands: |
||||
|
- cd /mnt/md0/infra/netbox |
||||
|
- git pull |
||||
|
- make restart |
||||
|
- name: cleanup |
||||
|
commands: |
||||
|
- cd /mnt/md0/infra/netbox |
||||
|
- make cleanup |
||||
|
|
||||
trigger: |
trigger: |
||||
branch: |
|
||||
- master |
|
||||
event: |
|
||||
- push |
|
||||
|
branch: |
||||
|
- master |
||||
|
event: |
||||
|
- push |
||||
|
... |
@ -0,0 +1,10 @@ |
|||||
|
root = true |
||||
|
|
||||
|
[*] |
||||
|
charset = utf-8 |
||||
|
end_of_line = lf |
||||
|
indent_style = space |
||||
|
indent_size = 2 |
||||
|
trim_trailing_whitespace = true |
||||
|
insert_final_newline = true |
||||
|
max_line_length = 100 |
@ -1 +1,2 @@ |
|||||
/etc/postgres |
/etc/postgres |
||||
|
/venv |
@ -1,177 +1,19 @@ |
|||||
|
|
||||
Apache License |
|
||||
Version 2.0, January 2004 |
|
||||
http://www.apache.org/licenses/ |
|
||||
|
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
|
||||
|
|
||||
1. Definitions. |
|
||||
|
|
||||
"License" shall mean the terms and conditions for use, reproduction, |
|
||||
and distribution as defined by Sections 1 through 9 of this document. |
|
||||
|
|
||||
"Licensor" shall mean the copyright owner or entity authorized by |
|
||||
the copyright owner that is granting the License. |
|
||||
|
|
||||
"Legal Entity" shall mean the union of the acting entity and all |
|
||||
other entities that control, are controlled by, or are under common |
|
||||
control with that entity. For the purposes of this definition, |
|
||||
"control" means (i) the power, direct or indirect, to cause the |
|
||||
direction or management of such entity, whether by contract or |
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the |
|
||||
outstanding shares, or (iii) beneficial ownership of such entity. |
|
||||
|
|
||||
"You" (or "Your") shall mean an individual or Legal Entity |
|
||||
exercising permissions granted by this License. |
|
||||
|
|
||||
"Source" form shall mean the preferred form for making modifications, |
|
||||
including but not limited to software source code, documentation |
|
||||
source, and configuration files. |
|
||||
|
|
||||
"Object" form shall mean any form resulting from mechanical |
|
||||
transformation or translation of a Source form, including but |
|
||||
not limited to compiled object code, generated documentation, |
|
||||
and conversions to other media types. |
|
||||
|
|
||||
"Work" shall mean the work of authorship, whether in Source or |
|
||||
Object form, made available under the License, as indicated by a |
|
||||
copyright notice that is included in or attached to the work |
|
||||
(an example is provided in the Appendix below). |
|
||||
|
|
||||
"Derivative Works" shall mean any work, whether in Source or Object |
|
||||
form, that is based on (or derived from) the Work and for which the |
|
||||
editorial revisions, annotations, elaborations, or other modifications |
|
||||
represent, as a whole, an original work of authorship. For the purposes |
|
||||
of this License, Derivative Works shall not include works that remain |
|
||||
separable from, or merely link (or bind by name) to the interfaces of, |
|
||||
the Work and Derivative Works thereof. |
|
||||
|
|
||||
"Contribution" shall mean any work of authorship, including |
|
||||
the original version of the Work and any modifications or additions |
|
||||
to that Work or Derivative Works thereof, that is intentionally |
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner |
|
||||
or by an individual or Legal Entity authorized to submit on behalf of |
|
||||
the copyright owner. For the purposes of this definition, "submitted" |
|
||||
means any form of electronic, verbal, or written communication sent |
|
||||
to the Licensor or its representatives, including but not limited to |
|
||||
communication on electronic mailing lists, source code control systems, |
|
||||
and issue tracking systems that are managed by, or on behalf of, the |
|
||||
Licensor for the purpose of discussing and improving the Work, but |
|
||||
excluding communication that is conspicuously marked or otherwise |
|
||||
designated in writing by the copyright owner as "Not a Contribution." |
|
||||
|
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity |
|
||||
on behalf of whom a Contribution has been received by Licensor and |
|
||||
subsequently incorporated within the Work. |
|
||||
|
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of |
|
||||
this License, each Contributor hereby grants to You a perpetual, |
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
|
||||
copyright license to reproduce, prepare Derivative Works of, |
|
||||
publicly display, publicly perform, sublicense, and distribute the |
|
||||
Work and such Derivative Works in Source or Object form. |
|
||||
|
|
||||
3. Grant of Patent License. Subject to the terms and conditions of |
|
||||
this License, each Contributor hereby grants to You a perpetual, |
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
|
||||
(except as stated in this section) patent license to make, have made, |
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work, |
|
||||
where such license applies only to those patent claims licensable |
|
||||
by such Contributor that are necessarily infringed by their |
|
||||
Contribution(s) alone or by combination of their Contribution(s) |
|
||||
with the Work to which such Contribution(s) was submitted. If You |
|
||||
institute patent litigation against any entity (including a |
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work |
|
||||
or a Contribution incorporated within the Work constitutes direct |
|
||||
or contributory patent infringement, then any patent licenses |
|
||||
granted to You under this License for that Work shall terminate |
|
||||
as of the date such litigation is filed. |
|
||||
|
|
||||
4. Redistribution. You may reproduce and distribute copies of the |
|
||||
Work or Derivative Works thereof in any medium, with or without |
|
||||
modifications, and in Source or Object form, provided that You |
|
||||
meet the following conditions: |
|
||||
|
|
||||
(a) You must give any other recipients of the Work or |
|
||||
Derivative Works a copy of this License; and |
|
||||
|
|
||||
(b) You must cause any modified files to carry prominent notices |
|
||||
stating that You changed the files; and |
|
||||
|
|
||||
(c) You must retain, in the Source form of any Derivative Works |
|
||||
that You distribute, all copyright, patent, trademark, and |
|
||||
attribution notices from the Source form of the Work, |
|
||||
excluding those notices that do not pertain to any part of |
|
||||
the Derivative Works; and |
|
||||
|
|
||||
(d) If the Work includes a "NOTICE" text file as part of its |
|
||||
distribution, then any Derivative Works that You distribute must |
|
||||
include a readable copy of the attribution notices contained |
|
||||
within such NOTICE file, excluding those notices that do not |
|
||||
pertain to any part of the Derivative Works, in at least one |
|
||||
of the following places: within a NOTICE text file distributed |
|
||||
as part of the Derivative Works; within the Source form or |
|
||||
documentation, if provided along with the Derivative Works; or, |
|
||||
within a display generated by the Derivative Works, if and |
|
||||
wherever such third-party notices normally appear. The contents |
|
||||
of the NOTICE file are for informational purposes only and |
|
||||
do not modify the License. You may add Your own attribution |
|
||||
notices within Derivative Works that You distribute, alongside |
|
||||
or as an addendum to the NOTICE text from the Work, provided |
|
||||
that such additional attribution notices cannot be construed |
|
||||
as modifying the License. |
|
||||
|
|
||||
You may add Your own copyright statement to Your modifications and |
|
||||
may provide additional or different license terms and conditions |
|
||||
for use, reproduction, or distribution of Your modifications, or |
|
||||
for any such Derivative Works as a whole, provided Your use, |
|
||||
reproduction, and distribution of the Work otherwise complies with |
|
||||
the conditions stated in this License. |
|
||||
|
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise, |
|
||||
any Contribution intentionally submitted for inclusion in the Work |
|
||||
by You to the Licensor shall be under the terms and conditions of |
|
||||
this License, without any additional terms or conditions. |
|
||||
Notwithstanding the above, nothing herein shall supersede or modify |
|
||||
the terms of any separate license agreement you may have executed |
|
||||
with Licensor regarding such Contributions. |
|
||||
|
|
||||
6. Trademarks. This License does not grant permission to use the trade |
|
||||
names, trademarks, service marks, or product names of the Licensor, |
|
||||
except as required for reasonable and customary use in describing the |
|
||||
origin of the Work and reproducing the content of the NOTICE file. |
|
||||
|
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or |
|
||||
agreed to in writing, Licensor provides the Work (and each |
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS, |
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
|
||||
implied, including, without limitation, any warranties or conditions |
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the |
|
||||
appropriateness of using or redistributing the Work and assume any |
|
||||
risks associated with Your exercise of permissions under this License. |
|
||||
|
|
||||
8. Limitation of Liability. In no event and under no legal theory, |
|
||||
whether in tort (including negligence), contract, or otherwise, |
|
||||
unless required by applicable law (such as deliberate and grossly |
|
||||
negligent acts) or agreed to in writing, shall any Contributor be |
|
||||
liable to You for damages, including any direct, indirect, special, |
|
||||
incidental, or consequential damages of any character arising as a |
|
||||
result of this License or out of the use or inability to use the |
|
||||
Work (including but not limited to damages for loss of goodwill, |
|
||||
work stoppage, computer failure or malfunction, or any and all |
|
||||
other commercial damages or losses), even if such Contributor |
|
||||
has been advised of the possibility of such damages. |
|
||||
|
|
||||
9. Accepting Warranty or Additional Liability. While redistributing |
|
||||
the Work or Derivative Works thereof, You may choose to offer, |
|
||||
and charge a fee for, acceptance of support, warranty, indemnity, |
|
||||
or other liability obligations and/or rights consistent with this |
|
||||
License. However, in accepting such obligations, You may act only |
|
||||
on Your own behalf and on Your sole responsibility, not on behalf |
|
||||
of any other Contributor, and only if You agree to indemnify, |
|
||||
defend, and hold each Contributor harmless for any liability |
|
||||
incurred by, or claims asserted against, such Contributor by reason |
|
||||
of your accepting any such warranty or additional liability. |
|
||||
|
|
||||
END OF TERMS AND CONDITIONS |
|
||||
|
MIT License Copyright (c) 2021 fedy95 |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), to deal |
||||
|
in the Software without restriction, including without limitation the rights |
||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
|
copies of the Software, and to permit persons to whom the Software is furnished |
||||
|
to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice (including the next |
||||
|
paragraph) shall be included in all copies or substantial portions of the |
||||
|
Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS |
||||
|
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF |
||||
|
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
@ -1,9 +1,50 @@ |
|||||
MAKEFLAGS += --silent |
MAKEFLAGS += --silent |
||||
|
|
||||
.PHONY: * |
.PHONY: * |
||||
|
|
||||
|
REGISTRY=registry.fedy95.com |
||||
|
YAMLLINT_TAG=baseimage-yamllint:latest |
||||
|
|
||||
|
lint: lint-yaml |
||||
|
|
||||
|
LINT-YAML-CMD=docker run --rm -it -v $(PWD):/data ${REGISTRY}/${YAMLLINT_TAG} |
||||
|
lint-yaml: |
||||
|
docker pull ${REGISTRY}/${YAMLLINT_TAG} |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/aggregates.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/cluster_types.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/clusters.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/custom_fields.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/dcim_interfaces.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/device_roles.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/device_types.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/devices.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/groups.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/ip_addresses.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/manufacturers.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/platforms.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/prefix_vlan_roles.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/prefixes.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/rack_groups.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/rack_roles.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/racks.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/regions.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/rirs.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/sites.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/tenant_groups.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/tenants.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/users.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/virtual_machines.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/virtualization_interfaces.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/vlan_groups.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/vlans.yml |
||||
|
$(LINT-YAML-CMD) etc/netbox/opt/netbox/initializers/vrfs.yml |
||||
|
$(LINT-YAML-CMD) docker-compose.yml |
||||
|
|
||||
restart: |
restart: |
||||
docker-compose -f docker-compose.yml down |
|
||||
docker-compose -f docker-compose.yml up -d |
|
||||
|
docker-compose -f docker-compose.yml pull |
||||
|
docker-compose -f docker-compose.yml restart |
||||
|
|
||||
|
cleanup: |
||||
|
docker system prune --all --force |
||||
|
docker system prune --volumes --force |
||||
|
|
||||
.DEFAULT_GOAL := restart |
|
||||
|
.DEFAULT_GOAL := lint |
@ -1,74 +1,94 @@ |
|||||
|
--- |
||||
version: "3" |
version: "3" |
||||
|
|
||||
volumes: |
volumes: |
||||
netbox-static-files: |
|
||||
driver: local |
|
||||
netbox-nginx-config: |
|
||||
driver: local |
|
||||
netbox-media-files: |
|
||||
driver: local |
|
||||
netbox-redis-data: |
|
||||
driver: local |
|
||||
|
netbox-static-files: |
||||
|
driver: local |
||||
|
netbox-nginx-config: |
||||
|
driver: local |
||||
|
netbox-media-files: |
||||
|
driver: local |
||||
|
netbox-redis-data: |
||||
|
driver: local |
||||
|
|
||||
services: |
services: |
||||
netbox: &netbox |
|
||||
image: netboxcommunity/netbox:v2.9.9 |
|
||||
depends_on: |
|
||||
- postgres |
|
||||
- redis |
|
||||
- redis-cache |
|
||||
- netbox-worker |
|
||||
env_file: env/netbox.env |
|
||||
user: '101' |
|
||||
volumes: |
|
||||
- ./etc/netbox/etc/netbox/config:/etc/netbox/config:z,ro |
|
||||
- ./etc/netbox/etc/netbox/reports:/etc/netbox/reports:z,ro |
|
||||
- ./etc/netbox/etc/netbox/scripts:/etc/netbox/scripts:z,ro |
|
||||
- ./etc/netbox/opt/netbox/initializers:/opt/netbox/initializers:z,ro |
|
||||
- ./etc/netbox/opt/netbox/startup_scripts:/opt/netbox/startup_scripts:z,ro |
|
||||
- netbox-nginx-config:/etc/netbox-nginx:z |
|
||||
- netbox-static-files:/opt/netbox/netbox/static:z |
|
||||
- netbox-media-files:/opt/netbox/netbox/media:z |
|
||||
netbox-worker: |
|
||||
<<: *netbox |
|
||||
depends_on: |
|
||||
- redis |
|
||||
entrypoint: |
|
||||
- python3 |
|
||||
- /opt/netbox/netbox/manage.py |
|
||||
command: |
|
||||
- rqworker |
|
||||
|
netbox: &netbox |
||||
|
image: netboxcommunity/netbox:v2.9.9 |
||||
|
container_name: netbox_instance |
||||
|
hostname: netbox_instance |
||||
|
|
||||
nginx: |
|
||||
command: nginx -c /etc/netbox-nginx/nginx.conf |
|
||||
image: nginx:1.19-alpine |
|
||||
depends_on: |
|
||||
- netbox |
|
||||
ports: |
|
||||
- "3009:8080" |
|
||||
volumes: |
|
||||
- netbox-nginx-config:/etc/netbox-nginx/:ro |
|
||||
- netbox-static-files:/opt/netbox/netbox/static:ro |
|
||||
|
depends_on: |
||||
|
- postgres |
||||
|
- redis |
||||
|
- redis-cache |
||||
|
- netbox-worker |
||||
|
env_file: env/netbox.env |
||||
|
user: '101' |
||||
|
volumes: |
||||
|
- ./etc/netbox/etc/netbox/config:/etc/netbox/config:z,ro |
||||
|
- ./etc/netbox/etc/netbox/reports:/etc/netbox/reports:z,ro |
||||
|
- ./etc/netbox/etc/netbox/scripts:/etc/netbox/scripts:z,ro |
||||
|
- ./etc/netbox/opt/netbox/initializers:/opt/netbox/initializers:z,ro |
||||
|
- ./etc/netbox/opt/netbox/startup_scripts:/opt/netbox/startup_scripts:z,ro |
||||
|
- netbox-nginx-config:/etc/netbox-nginx:z |
||||
|
- netbox-static-files:/opt/netbox/netbox/static:z |
||||
|
- netbox-media-files:/opt/netbox/netbox/media:z |
||||
|
netbox-worker: |
||||
|
<<: *netbox |
||||
|
container_name: netbox_worker |
||||
|
hostname: netbox_worker |
||||
|
|
||||
postgres: |
|
||||
image: postgres:13.1-alpine |
|
||||
env_file: env/postgres.env |
|
||||
volumes: |
|
||||
- ./etc/postgres/var/lib/postgresql/data:/var/lib/postgresql/data |
|
||||
|
depends_on: |
||||
|
- redis |
||||
|
entrypoint: |
||||
|
- python3 |
||||
|
- /opt/netbox/netbox/manage.py |
||||
|
command: |
||||
|
- rqworker |
||||
|
|
||||
redis: |
|
||||
image: redis:6.0.9-alpine |
|
||||
command: |
|
||||
- sh |
|
||||
- -c # this is to evaluate the $REDIS_PASSWORD from the env |
|
||||
- redis-server --appendonly yes --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose |
|
||||
env_file: env/redis.env |
|
||||
volumes: |
|
||||
- netbox-redis-data:/data |
|
||||
redis-cache: |
|
||||
image: redis:6.0.9-alpine |
|
||||
command: |
|
||||
- sh |
|
||||
- -c # this is to evaluate the $REDIS_PASSWORD from the env |
|
||||
- redis-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose |
|
||||
env_file: env/redis-cache.env |
|
||||
|
nginx: |
||||
|
image: nginx:1.19-alpine |
||||
|
container_name: netbox_nginx |
||||
|
hostname: netbox_nginx |
||||
|
|
||||
|
depends_on: |
||||
|
- netbox |
||||
|
ports: |
||||
|
- "3009:8080" |
||||
|
volumes: |
||||
|
- netbox-nginx-config:/etc/netbox-nginx/:ro |
||||
|
- netbox-static-files:/opt/netbox/netbox/static:ro |
||||
|
command: nginx -c /etc/netbox-nginx/nginx.conf |
||||
|
|
||||
|
postgres: |
||||
|
image: postgres:13.1-alpine |
||||
|
container_name: netbox_postgres |
||||
|
hostname: netbox_postgres |
||||
|
|
||||
|
env_file: env/postgres.env |
||||
|
volumes: |
||||
|
- ./etc/postgres/var/lib/postgresql/data:/var/lib/postgresql/data |
||||
|
|
||||
|
redis: |
||||
|
image: redis:6.0.9-alpine |
||||
|
container_name: netbox_redis |
||||
|
hostname: netbox_redis |
||||
|
|
||||
|
env_file: env/redis.env |
||||
|
volumes: |
||||
|
- netbox-redis-data:/data |
||||
|
command: |
||||
|
- sh |
||||
|
- -c # this is to evaluate the $REDIS_PASSWORD from the env |
||||
|
- redis-server --appendonly yes --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose |
||||
|
redis-cache: |
||||
|
image: redis:6.0.9-alpine |
||||
|
container_name: netbox_redis_cache |
||||
|
hostname: netbox_redis_cache |
||||
|
|
||||
|
env_file: env/redis-cache.env |
||||
|
command: |
||||
|
- sh |
||||
|
- -c # this is to evaluate the $REDIS_PASSWORD from the env |
||||
|
- redis-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose |
||||
|
... |
@ -1,2 +1,6 @@ |
|||||
* |
* |
||||
!.gitignore |
!.gitignore |
||||
|
!netbox.env-dist |
||||
|
!postgres.env-dist |
||||
|
!redis.env-dist |
||||
|
!redis-cache.env-dist |
@ -0,0 +1,45 @@ |
|||||
|
CORS_ORIGIN_ALLOW_ALL=True |
||||
|
MAX_PAGE_SIZE=1000 |
||||
|
MEDIA_ROOT=/opt/netbox/netbox/media |
||||
|
METRICS_ENABLED=false |
||||
|
WEBHOOKS_ENABLED=true |
||||
|
SKIP_STARTUP_SCRIPTS=false |
||||
|
|
||||
|
RELEASE_CHECK_URL=https://api.github.com/repos/netbox-community/netbox/releases |
||||
|
SECRET_KEY= |
||||
|
|
||||
|
DB_HOST=postgres |
||||
|
DB_NAME=netbox |
||||
|
DB_USER=netbox |
||||
|
DB_PASSWORD= |
||||
|
|
||||
|
EMAIL_SERVER=localhost |
||||
|
EMAIL_PORT=25 |
||||
|
EMAIL_USERNAME=netbox |
||||
|
EMAIL_PASSWORD= |
||||
|
EMAIL_TIMEOUT=5 |
||||
|
EMAIL_FROM=netbox@bar.com |
||||
|
# EMAIL_USE_SSL and EMAIL_USE_TLS are mutually exclusive, i.e. they can't both be `true`! |
||||
|
EMAIL_USE_SSL=false |
||||
|
EMAIL_USE_TLS=false |
||||
|
EMAIL_SSL_CERTFILE= |
||||
|
EMAIL_SSL_KEYFILE= |
||||
|
|
||||
|
NAPALM_USERNAME= |
||||
|
NAPALM_PASSWORD= |
||||
|
NAPALM_TIMEOUT=10 |
||||
|
|
||||
|
REDIS_HOST=redis |
||||
|
REDIS_PASSWORD= |
||||
|
REDIS_DATABASE=0 |
||||
|
REDIS_SSL=false |
||||
|
REDIS_CACHE_HOST=redis-cache |
||||
|
REDIS_CACHE_PASSWORD= |
||||
|
REDIS_CACHE_DATABASE=1 |
||||
|
REDIS_CACHE_SSL=false |
||||
|
|
||||
|
SKIP_SUPERUSER=false |
||||
|
SUPERUSER_NAME=fedy95 |
||||
|
SUPERUSER_EMAIL=fedy95@protonmail.com |
||||
|
SUPERUSER_PASSWORD= |
||||
|
SUPERUSER_API_TOKEN= |
@ -0,0 +1,3 @@ |
|||||
|
STGRES_DB=netbox |
||||
|
POSTGRES_USER=netbox |
||||
|
POSTGRES_PASSWORD= |
@ -0,0 +1 @@ |
|||||
|
REDIS_PASSWORD= |
@ -0,0 +1 @@ |
|||||
|
REDIS_PASSWORD= |
@ -1,6 +1,6 @@ |
|||||
# - prefix: 10.0.0.0/16 |
|
||||
# rir: RFC1918 |
|
||||
# - prefix: fd00:ccdd::/32 |
|
||||
# rir: RFC4193 ULA |
|
||||
# - prefix: 2001:db8::/32 |
|
||||
# rir: RFC3849 |
|
||||
|
#- prefix: 10.0.0.0/16 |
||||
|
# rir: RFC1918 |
||||
|
#- prefix: fd00:ccdd::/32 |
||||
|
# rir: RFC4193 ULA |
||||
|
#- prefix: 2001:db8::/32 |
||||
|
# rir: RFC3849 |
@ -1,2 +1,2 @@ |
|||||
# - name: Hyper-V |
|
||||
# slug: hyper-v |
|
||||
|
#- name: Hyper-V |
||||
|
# slug: hyper-v |
@ -1,5 +1,5 @@ |
|||||
# - name: cluster1 |
|
||||
# type: Hyper-V |
|
||||
# - name: cluster2 |
|
||||
# type: Hyper-V |
|
||||
# site: SING 1 |
|
||||
|
#- name: cluster1 |
||||
|
# type: Hyper-V |
||||
|
#- name: cluster2 |
||||
|
# type: Hyper-V |
||||
|
# site: SING 1 |
@ -1,97 +1,97 @@ |
|||||
## Possible Choices: |
|
||||
## type: |
|
||||
## - text |
|
||||
## - integer |
|
||||
## - boolean |
|
||||
## - date |
|
||||
## - url |
|
||||
## - select |
|
||||
## filter_logic: |
|
||||
## - disabled |
|
||||
## - loose |
|
||||
## - exact |
|
||||
## |
|
||||
## Examples: |
|
||||
|
# Possible Choices: |
||||
|
# type: |
||||
|
# - text |
||||
|
# - integer |
||||
|
# - boolean |
||||
|
# - date |
||||
|
# - url |
||||
|
# - select |
||||
|
# filter_logic: |
||||
|
# - disabled |
||||
|
# - loose |
||||
|
# - exact |
||||
|
# |
||||
|
# Examples: |
||||
|
|
||||
# text_field: |
|
||||
# type: text |
|
||||
# label: Custom Text |
|
||||
# description: Enter text in a text field. |
|
||||
# required: false |
|
||||
# weight: 0 |
|
||||
# on_objects: |
|
||||
# - dcim.models.Device |
|
||||
# - dcim.models.Rack |
|
||||
# - dcim.models.Site |
|
||||
# - dcim.models.DeviceType |
|
||||
# - ipam.models.IPAddress |
|
||||
# - ipam.models.Prefix |
|
||||
# - tenancy.models.Tenant |
|
||||
# - virtualization.models.VirtualMachine |
|
||||
# integer_field: |
|
||||
# type: integer |
|
||||
# label: Custom Number |
|
||||
# description: Enter numbers into an integer field. |
|
||||
# required: true |
|
||||
# filter_logic: loose |
|
||||
# weight: 10 |
|
||||
# on_objects: |
|
||||
# - tenancy.models.Tenant |
|
||||
# select_field: |
|
||||
# type: select |
|
||||
# label: Choose between items |
|
||||
# required: false |
|
||||
# filter_logic: exact |
|
||||
# weight: 30 |
|
||||
# on_objects: |
|
||||
# - dcim.models.Device |
|
||||
# choices: |
|
||||
# - value: First Item |
|
||||
# weight: 10 |
|
||||
# - value: Second Item |
|
||||
# weight: 20 |
|
||||
# - value: Third Item |
|
||||
# weight: 30 |
|
||||
# - value: Fifth Item |
|
||||
# weight: 50 |
|
||||
# - value: Fourth Item |
|
||||
# weight: 40 |
|
||||
# select_field_auto_weight: |
|
||||
# type: select |
|
||||
# label: Choose between items |
|
||||
# required: false |
|
||||
# filter_logic: loose |
|
||||
# weight: 30 |
|
||||
# on_objects: |
|
||||
# - dcim.models.Device |
|
||||
# choices: |
|
||||
# - value: A |
|
||||
# - value: B |
|
||||
# - value: C |
|
||||
# - value: "D like deprecated" |
|
||||
# weight: 999 |
|
||||
# - value: E |
|
||||
# boolean_field: |
|
||||
# type: boolean |
|
||||
# label: Yes Or No? |
|
||||
# required: true |
|
||||
# filter_logic: loose |
|
||||
# default: "false" # important: but "false" in quotes! |
|
||||
# weight: 90 |
|
||||
# on_objects: |
|
||||
# - dcim.models.Device |
|
||||
# url_field: |
|
||||
# type: url |
|
||||
# label: Hyperlink |
|
||||
# description: Link to something nice. |
|
||||
# required: true |
|
||||
# filter_logic: disabled |
|
||||
# on_objects: |
|
||||
# - tenancy.models.Tenant |
|
||||
# date_field: |
|
||||
# type: date |
|
||||
# label: Important Date |
|
||||
# required: false |
|
||||
# filter_logic: disabled |
|
||||
# on_objects: |
|
||||
# - dcim.models.Device |
|
||||
|
#text_field: |
||||
|
# type: text |
||||
|
# label: Custom Text |
||||
|
# description: Enter text in a text field. |
||||
|
# required: false |
||||
|
# weight: 0 |
||||
|
# on_objects: |
||||
|
# - dcim.models.Device |
||||
|
# - dcim.models.Rack |
||||
|
# - dcim.models.Site |
||||
|
# - dcim.models.DeviceType |
||||
|
# - ipam.models.IPAddress |
||||
|
# - ipam.models.Prefix |
||||
|
# - tenancy.models.Tenant |
||||
|
# - virtualization.models.VirtualMachine |
||||
|
#integer_field: |
||||
|
# type: integer |
||||
|
# label: Custom Number |
||||
|
# description: Enter numbers into an integer field. |
||||
|
# required: true |
||||
|
# filter_logic: loose |
||||
|
# weight: 10 |
||||
|
# on_objects: |
||||
|
# - tenancy.models.Tenant |
||||
|
#select_field: |
||||
|
# type: select |
||||
|
# label: Choose between items |
||||
|
# required: false |
||||
|
# filter_logic: exact |
||||
|
# weight: 30 |
||||
|
# on_objects: |
||||
|
# - dcim.models.Device |
||||
|
# choices: |
||||
|
# - value: First Item |
||||
|
# weight: 10 |
||||
|
# - value: Second Item |
||||
|
# weight: 20 |
||||
|
# - value: Third Item |
||||
|
# weight: 30 |
||||
|
# - value: Fifth Item |
||||
|
# weight: 50 |
||||
|
# - value: Fourth Item |
||||
|
# weight: 40 |
||||
|
#select_field_auto_weight: |
||||
|
# type: select |
||||
|
# label: Choose between items |
||||
|
# required: false |
||||
|
# filter_logic: loose |
||||
|
# weight: 30 |
||||
|
# on_objects: |
||||
|
# - dcim.models.Device |
||||
|
# choices: |
||||
|
# - value: A |
||||
|
# - value: B |
||||
|
# - value: C |
||||
|
# - value: "D like deprecated" |
||||
|
# weight: 999 |
||||
|
# - value: E |
||||
|
#boolean_field: |
||||
|
# type: boolean |
||||
|
# label: Yes Or No? |
||||
|
# required: true |
||||
|
# filter_logic: loose |
||||
|
# default: "false" # important: but "false" in quotes! |
||||
|
# weight: 90 |
||||
|
# on_objects: |
||||
|
# - dcim.models.Device |
||||
|
#url_field: |
||||
|
# type: url |
||||
|
# label: Hyperlink |
||||
|
# description: Link to something nice. |
||||
|
# required: true |
||||
|
# filter_logic: disabled |
||||
|
# on_objects: |
||||
|
# - tenancy.models.Tenant |
||||
|
#date_field: |
||||
|
# type: date |
||||
|
# label: Important Date |
||||
|
# required: false |
||||
|
# filter_logic: disabled |
||||
|
# on_objects: |
||||
|
# - dcim.models.Device |
@ -1,18 +1,18 @@ |
|||||
## Possible Choices: |
|
||||
## type: |
|
||||
## - virtual |
|
||||
## - lag |
|
||||
## - 1000base-t |
|
||||
## - ... and many more. See for yourself: |
|
||||
## https://github.com/netbox-community/netbox/blob/295d4f0394b431351c0cb2c3ecc791df68c6c2fb/netbox/dcim/choices.py#L510 |
|
||||
## |
|
||||
## Examples: |
|
||||
|
# Possible Choices: |
||||
|
# type: |
||||
|
# - virtual |
||||
|
# - lag |
||||
|
# - 1000base-t |
||||
|
# - ... and many more. See for yourself: |
||||
|
# https://github.com/netbox-community/netbox/blob/295d4f0394b431351c0cb2c3ecc791df68c6c2fb/netbox/dcim/choices.py#L510 |
||||
|
# |
||||
|
# Examples: |
||||
|
|
||||
# - device: server01 |
|
||||
# enabled: true |
|
||||
# type: virtual |
|
||||
# name: to-server02 |
|
||||
# - device: server02 |
|
||||
# enabled: true |
|
||||
# type: virtual |
|
||||
# name: to-server01 |
|
||||
|
#- device: server01 |
||||
|
# enabled: true |
||||
|
# type: virtual |
||||
|
# name: to-server02 |
||||
|
#- device: server02 |
||||
|
# enabled: true |
||||
|
# type: virtual |
||||
|
# name: to-server01 |
@ -1,15 +1,15 @@ |
|||||
# - name: switch |
|
||||
# slug: switch |
|
||||
# color: Grey |
|
||||
# - name: router |
|
||||
# slug: router |
|
||||
# color: Cyan |
|
||||
# - name: load-balancer |
|
||||
# slug: load-balancer |
|
||||
# color: Red |
|
||||
# - name: server |
|
||||
# slug: server |
|
||||
# color: Blue |
|
||||
# - name: patchpanel |
|
||||
# slug: patchpanel |
|
||||
# color: Black |
|
||||
|
#- name: switch |
||||
|
# slug: switch |
||||
|
# color: Grey |
||||
|
#- name: router |
||||
|
# slug: router |
||||
|
# color: Cyan |
||||
|
#- name: load-balancer |
||||
|
# slug: load-balancer |
||||
|
# color: Red |
||||
|
#- name: server |
||||
|
# slug: server |
||||
|
# color: Blue |
||||
|
#- name: patchpanel |
||||
|
# slug: patchpanel |
||||
|
# color: Black |
@ -1,23 +1,23 @@ |
|||||
# - model: Model 1 |
|
||||
# manufacturer: Manufacturer 1 |
|
||||
# slug: model-1 |
|
||||
# u_height: 2 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - model: Model 2 |
|
||||
# manufacturer: Manufacturer 1 |
|
||||
# slug: model-2 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - model: Model 3 |
|
||||
# manufacturer: Manufacturer 1 |
|
||||
# slug: model-3 |
|
||||
# is_full_depth: false |
|
||||
# u_height: 0 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - model: Other |
|
||||
# manufacturer: No Name |
|
||||
# slug: other |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
|
#- model: Model 1 |
||||
|
# manufacturer: Manufacturer 1 |
||||
|
# slug: model-1 |
||||
|
# u_height: 2 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- model: Model 2 |
||||
|
# manufacturer: Manufacturer 1 |
||||
|
# slug: model-2 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- model: Model 3 |
||||
|
# manufacturer: Manufacturer 1 |
||||
|
# slug: model-3 |
||||
|
# is_full_depth: false |
||||
|
# u_height: 0 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- model: Other |
||||
|
# manufacturer: No Name |
||||
|
# slug: other |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
@ -1,44 +1,44 @@ |
|||||
## Possible Choices: |
|
||||
## face: |
|
||||
## - front |
|
||||
## - rear |
|
||||
## status: |
|
||||
## - offline |
|
||||
## - active |
|
||||
## - planned |
|
||||
## - staged |
|
||||
## - failed |
|
||||
## - inventory |
|
||||
## - decommissioning |
|
||||
## |
|
||||
## Examples: |
|
||||
|
|
||||
# - name: server01 |
|
||||
# device_role: server |
|
||||
# device_type: Other |
|
||||
# site: AMS 1 |
|
||||
# rack: rack-01 |
|
||||
# face: front |
|
||||
# position: 1 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - name: server02 |
|
||||
# device_role: server |
|
||||
# device_type: Other |
|
||||
# site: AMS 2 |
|
||||
# rack: rack-02 |
|
||||
# face: front |
|
||||
# position: 2 |
|
||||
# primary_ip4: 10.1.1.2/24 |
|
||||
# primary_ip6: 2001:db8:a000:1::2/64 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - name: server03 |
|
||||
# device_role: server |
|
||||
# device_type: Other |
|
||||
# site: SING 1 |
|
||||
# rack: rack-03 |
|
||||
# face: front |
|
||||
# position: 3 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
|
# Possible Choices: |
||||
|
# face: |
||||
|
# - front |
||||
|
# - rear |
||||
|
# status: |
||||
|
# - offline |
||||
|
# - active |
||||
|
# - planned |
||||
|
# - staged |
||||
|
# - failed |
||||
|
# - inventory |
||||
|
# - decommissioning |
||||
|
# |
||||
|
# Examples: |
||||
|
# |
||||
|
#- name: server01 |
||||
|
# device_role: server |
||||
|
# device_type: Other |
||||
|
# site: AMS 1 |
||||
|
# rack: rack-01 |
||||
|
# face: front |
||||
|
# position: 1 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- name: server02 |
||||
|
# device_role: server |
||||
|
# device_type: Other |
||||
|
# site: AMS 2 |
||||
|
# rack: rack-02 |
||||
|
# face: front |
||||
|
# position: 2 |
||||
|
# primary_ip4: 10.1.1.2/24 |
||||
|
# primary_ip6: 2001:db8:a000:1::2/64 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- name: server03 |
||||
|
# device_role: server |
||||
|
# device_type: Other |
||||
|
# site: SING 1 |
||||
|
# rack: rack-03 |
||||
|
# face: front |
||||
|
# position: 3 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
@ -1,35 +1,35 @@ |
|||||
## To list all permissions, run: |
|
||||
## |
|
||||
## docker-compose run --rm --entrypoint /bin/bash netbox |
|
||||
## $ ./manage.py migrate |
|
||||
## $ ./manage.py shell |
|
||||
## > from django.contrib.auth.models import Permission |
|
||||
## > print('\n'.join([p.codename for p in Permission.objects.all()])) |
|
||||
## |
|
||||
## Permission lists support wildcards. See the examples below. |
|
||||
## |
|
||||
## Examples: |
|
||||
|
#To list all permissions, run: |
||||
|
# |
||||
|
#docker-compose run --rm --entrypoint /bin/bash netbox |
||||
|
#$ ./manage.py migrate |
||||
|
#$ ./manage.py shell |
||||
|
#> from django.contrib.auth.models import Permission |
||||
|
#> print('\n'.join([p.codename for p in Permission.objects.all()])) |
||||
|
# |
||||
|
#Permission lists support wildcards. See the examples below. |
||||
|
# |
||||
|
#Examples: |
||||
|
|
||||
# applications: |
|
||||
# users: |
|
||||
# - technical_user |
|
||||
# readers: |
|
||||
# users: |
|
||||
# - reader |
|
||||
# writers: |
|
||||
# users: |
|
||||
# - writer |
|
||||
# permissions: |
|
||||
# - delete_device |
|
||||
# - delete_virtualmachine |
|
||||
# - add_* |
|
||||
# - change_* |
|
||||
# vm_managers: |
|
||||
# permissions: |
|
||||
# - '*_virtualmachine' |
|
||||
# device_managers: |
|
||||
# permissions: |
|
||||
# - '*device*' |
|
||||
# creators: |
|
||||
# permissions: |
|
||||
# - add_* |
|
||||
|
#applications: |
||||
|
# users: |
||||
|
# - technical_user |
||||
|
#readers: |
||||
|
# users: |
||||
|
# - reader |
||||
|
#writers: |
||||
|
# users: |
||||
|
# - writer |
||||
|
# permissions: |
||||
|
# - delete_device |
||||
|
# - delete_virtualmachine |
||||
|
# - add_* |
||||
|
# - change_* |
||||
|
#vm_managers: |
||||
|
# permissions: |
||||
|
# - '*_virtualmachine' |
||||
|
#device_managers: |
||||
|
# permissions: |
||||
|
# - '*device*' |
||||
|
#creators: |
||||
|
# permissions: |
||||
|
# - add_* |
@ -1,6 +1,2 @@ |
|||||
# - name: Manufacturer 1 |
|
||||
# slug: manufacturer-1 |
|
||||
# - name: Manufacturer 2 |
|
||||
# slug: manufacturer-2 |
|
||||
# - name: No Name |
|
||||
# slug: no-name |
|
||||
|
#- name: Manufacturer 1 |
||||
|
# slug: manufacturer-1 |
@ -1,15 +1,15 @@ |
|||||
# - name: Platform 1 |
|
||||
# slug: platform-1 |
|
||||
# manufacturer: Manufacturer 1 |
|
||||
# napalm_driver: driver1 |
|
||||
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}" |
|
||||
# - name: Platform 2 |
|
||||
# slug: platform-2 |
|
||||
# manufacturer: Manufacturer 2 |
|
||||
# napalm_driver: driver2 |
|
||||
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}" |
|
||||
# - name: Platform 3 |
|
||||
# slug: platform-3 |
|
||||
# manufacturer: No Name |
|
||||
# napalm_driver: driver3 |
|
||||
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}" |
|
||||
|
#- name: Platform 1 |
||||
|
# slug: platform-1 |
||||
|
# manufacturer: Manufacturer 1 |
||||
|
# napalm_driver: driver1 |
||||
|
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}" |
||||
|
#- name: Platform 2 |
||||
|
# slug: platform-2 |
||||
|
# manufacturer: Manufacturer 2 |
||||
|
# napalm_driver: driver2 |
||||
|
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}" |
||||
|
#- name: Platform 3 |
||||
|
# slug: platform-3 |
||||
|
# manufacturer: No Name |
||||
|
# napalm_driver: driver3 |
||||
|
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}" |
@ -1,2 +1,2 @@ |
|||||
# - name: Main Management |
|
||||
# slug: main-management |
|
||||
|
#- name: Main Management |
||||
|
# slug: main-management |
@ -1,29 +1,29 @@ |
|||||
## Possible Choices: |
|
||||
## status: |
|
||||
## - container |
|
||||
## - active |
|
||||
## - reserved |
|
||||
## - deprecated |
|
||||
## |
|
||||
## Examples: |
|
||||
|
|
||||
# - description: prefix1 |
|
||||
# prefix: 10.1.1.0/24 |
|
||||
# site: AMS 1 |
|
||||
# status: active |
|
||||
# tenant: tenant1 |
|
||||
# vlan: vlan1 |
|
||||
# - description: prefix2 |
|
||||
# prefix: 10.1.2.0/24 |
|
||||
# site: AMS 2 |
|
||||
# status: active |
|
||||
# tenant: tenant2 |
|
||||
# vlan: vlan2 |
|
||||
# is_pool: true |
|
||||
# vrf: vrf2 |
|
||||
# - description: ipv6 prefix1 |
|
||||
# prefix: 2001:db8:a000:1::/64 |
|
||||
# site: AMS 2 |
|
||||
# status: active |
|
||||
# tenant: tenant2 |
|
||||
# vlan: vlan2 |
|
||||
|
# Possible Choices: |
||||
|
# status: |
||||
|
# - container |
||||
|
# - active |
||||
|
# - reserved |
||||
|
# - deprecated |
||||
|
# |
||||
|
# Examples: |
||||
|
# |
||||
|
#- description: prefix1 |
||||
|
# prefix: 10.1.1.0/24 |
||||
|
# site: AMS 1 |
||||
|
# status: active |
||||
|
# tenant: tenant1 |
||||
|
# vlan: vlan1 |
||||
|
#- description: prefix2 |
||||
|
# prefix: 10.1.2.0/24 |
||||
|
# site: AMS 2 |
||||
|
# status: active |
||||
|
# tenant: tenant2 |
||||
|
# vlan: vlan2 |
||||
|
# is_pool: true |
||||
|
# vrf: vrf2 |
||||
|
#- description: ipv6 prefix1 |
||||
|
# prefix: 2001:db8:a000:1::/64 |
||||
|
# site: AMS 2 |
||||
|
# status: active |
||||
|
# tenant: tenant2 |
||||
|
# vlan: vlan2 |
@ -1,3 +1,3 @@ |
|||||
# - name: cage 101 |
|
||||
# slug: cage-101 |
|
||||
# site: SING 1 |
|
||||
|
#- name: cage 101 |
||||
|
# slug: cage-101 |
||||
|
# site: SING 1 |
@ -1,12 +1,12 @@ |
|||||
# - name: Role 1 |
|
||||
# slug: role-1 |
|
||||
# color: Pink |
|
||||
# - name: Role 2 |
|
||||
# slug: role-2 |
|
||||
# color: Cyan |
|
||||
# - name: Role 3 |
|
||||
# slug: role-3 |
|
||||
# color: Grey |
|
||||
# - name: Role 4 |
|
||||
# slug: role-4 |
|
||||
# color: Teal |
|
||||
|
#- name: Role 1 |
||||
|
# slug: role-1 |
||||
|
# color: Pink |
||||
|
#- name: Role 2 |
||||
|
# slug: role-2 |
||||
|
# color: Cyan |
||||
|
#- name: Role 3 |
||||
|
# slug: role-3 |
||||
|
# color: Grey |
||||
|
#- name: Role 4 |
||||
|
# slug: role-4 |
||||
|
# color: Teal |
@ -1,41 +1,41 @@ |
|||||
## Possible Choices: |
|
||||
## width: |
|
||||
## - 19 |
|
||||
## - 23 |
|
||||
## types: |
|
||||
## - 2-post-frame |
|
||||
## - 4-post-frame |
|
||||
## - 4-post-cabinet |
|
||||
## - wall-frame |
|
||||
## - wall-cabinet |
|
||||
## outer_unit: |
|
||||
## - mm |
|
||||
## - in |
|
||||
## |
|
||||
## Examples: |
|
||||
|
|
||||
# - site: AMS 1 |
|
||||
# name: rack-01 |
|
||||
# role: Role 1 |
|
||||
# type: 4-post-cabinet |
|
||||
# width: 19 |
|
||||
# u_height: 47 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - site: AMS 2 |
|
||||
# name: rack-02 |
|
||||
# role: Role 2 |
|
||||
# type: 4-post-cabinet |
|
||||
# width: 19 |
|
||||
# u_height: 47 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - site: SING 1 |
|
||||
# name: rack-03 |
|
||||
# group: cage 101 |
|
||||
# role: Role 3 |
|
||||
# type: 4-post-cabinet |
|
||||
# width: 19 |
|
||||
# u_height: 47 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
|
# Possible Choices: |
||||
|
# width: |
||||
|
# - 19 |
||||
|
# - 23 |
||||
|
# types: |
||||
|
# - 2-post-frame |
||||
|
# - 4-post-frame |
||||
|
# - 4-post-cabinet |
||||
|
# - wall-frame |
||||
|
# - wall-cabinet |
||||
|
# outer_unit: |
||||
|
# - mm |
||||
|
# - in |
||||
|
# |
||||
|
# Examples: |
||||
|
# |
||||
|
#- site: AMS 1 |
||||
|
# name: rack-01 |
||||
|
# role: Role 1 |
||||
|
# type: 4-post-cabinet |
||||
|
# width: 19 |
||||
|
# u_height: 47 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- site: AMS 2 |
||||
|
# name: rack-02 |
||||
|
# role: Role 2 |
||||
|
# type: 4-post-cabinet |
||||
|
# width: 19 |
||||
|
# u_height: 47 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- site: SING 1 |
||||
|
# name: rack-03 |
||||
|
# group: cage 101 |
||||
|
# role: Role 3 |
||||
|
# type: 4-post-cabinet |
||||
|
# width: 19 |
||||
|
# u_height: 47 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
@ -1,2 +1,4 @@ |
|||||
- name: Saint-Petersburg |
|
||||
slug: spb |
|
||||
|
--- |
||||
|
- name: Saint-Petersburg |
||||
|
slug: spb |
||||
|
... |
@ -1,9 +1,9 @@ |
|||||
# - is_private: true |
|
||||
# name: RFC1918 |
|
||||
# slug: rfc1918 |
|
||||
# - is_private: true |
|
||||
# name: RFC4193 ULA |
|
||||
# slug: rfc4193-ula |
|
||||
# - is_private: true |
|
||||
# name: RFC3849 |
|
||||
# slug: rfc3849 |
|
||||
|
#- is_private: true |
||||
|
# name: RFC1918 |
||||
|
# slug: rfc1918 |
||||
|
#- is_private: true |
||||
|
# name: RFC4193 ULA |
||||
|
# slug: rfc4193-ula |
||||
|
#- is_private: true |
||||
|
# name: RFC3849 |
||||
|
# slug: rfc3849 |
@ -1,32 +1,32 @@ |
|||||
# - name: AMS 1 |
|
||||
# slug: ams1 |
|
||||
# region: Downtown |
|
||||
# status: active |
|
||||
# facility: Amsterdam 1 |
|
||||
# asn: 12345 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - name: AMS 2 |
|
||||
# slug: ams2 |
|
||||
# region: Downtown |
|
||||
# status: active |
|
||||
# facility: Amsterdam 2 |
|
||||
# asn: 54321 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - name: AMS 3 |
|
||||
# slug: ams3 |
|
||||
# region: Suburbs |
|
||||
# status: active |
|
||||
# facility: Amsterdam 3 |
|
||||
# asn: 67890 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
# - name: SING 1 |
|
||||
# slug: sing1 |
|
||||
# region: Singapore |
|
||||
# status: active |
|
||||
# facility: Singapore 1 |
|
||||
# asn: 09876 |
|
||||
# custom_fields: |
|
||||
# text_field: Description |
|
||||
|
#- name: AMS 1 |
||||
|
# slug: ams1 |
||||
|
# region: Downtown |
||||
|
# status: active |
||||
|
# facility: Amsterdam 1 |
||||
|
# asn: 12345 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- name: AMS 2 |
||||
|
# slug: ams2 |
||||
|
# region: Downtown |
||||
|
# status: active |
||||
|
# facility: Amsterdam 2 |
||||
|
# asn: 54321 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- name: AMS 3 |
||||
|
# slug: ams3 |
||||
|
# region: Suburbs |
||||
|
# status: active |
||||
|
# facility: Amsterdam 3 |
||||
|
# asn: 67890 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
||||
|
#- name: SING 1 |
||||
|
# slug: sing1 |
||||
|
# region: Singapore |
||||
|
# status: active |
||||
|
# facility: Singapore 1 |
||||
|
# asn: 09876 |
||||
|
# custom_fields: |
||||
|
# text_field: Description |
@ -1,4 +1,4 @@ |
|||||
# - name: Tenant Group 1 |
|
||||
# slug: tenant-group-1 |
|
||||
# - name: Tenant Group 2 |
|
||||
# slug: tenant-group-2 |
|
||||
|
#- name: Tenant Group 1 |
||||
|
# slug: tenant-group-1 |
||||
|
#- name: Tenant Group 2 |
||||
|
# slug: tenant-group-2 |
@ -1,5 +1,5 @@ |
|||||
# - name: tenant1 |
|
||||
# slug: tenant1 |
|
||||
# - name: tenant2 |
|
||||
# slug: tenant2 |
|
||||
# group: Tenant Group 2 |
|
||||
|
#- name: tenant1 |
||||
|
# slug: tenant1 |
||||
|
#- name: tenant2 |
||||
|
# slug: tenant2 |
||||
|
# group: Tenant Group 2 |
@ -1,23 +1,23 @@ |
|||||
## To list all permissions, run: |
|
||||
## |
|
||||
## docker-compose run --rm --entrypoint /bin/bash netbox |
|
||||
## $ ./manage.py migrate |
|
||||
## $ ./manage.py shell |
|
||||
## > from django.contrib.auth.models import Permission |
|
||||
## > print('\n'.join([p.codename for p in Permission.objects.all()])) |
|
||||
## |
|
||||
## Permission lists support wildcards. See the examples below. |
|
||||
## |
|
||||
## Examples: |
|
||||
|
|
||||
# technical_user: |
|
||||
# api_token: 0123456789technicaluser789abcdef01234567 # must be looooong! |
|
||||
# reader: |
|
||||
# password: reader |
|
||||
# writer: |
|
||||
# password: writer |
|
||||
# permissions: |
|
||||
# - delete_device |
|
||||
# - delete_virtualmachine |
|
||||
# - add_* |
|
||||
# - change_* |
|
||||
|
# To list all permissions, run: |
||||
|
# |
||||
|
# docker-compose run --rm --entrypoint /bin/bash netbox |
||||
|
# $ ./manage.py migrate |
||||
|
# $ ./manage.py shell |
||||
|
# > from django.contrib.auth.models import Permission |
||||
|
# > print('\n'.join([p.codename for p in Permission.objects.all()])) |
||||
|
# |
||||
|
# Permission lists support wildcards. See the examples below. |
||||
|
# |
||||
|
# Examples: |
||||
|
# |
||||
|
#technical_user: |
||||
|
# api_token: 0123456789technicaluser789abcdef01234567 # must be looooong! |
||||
|
#reader: |
||||
|
# password: reader |
||||
|
#writer: |
||||
|
# password: writer |
||||
|
# permissions: |
||||
|
# - delete_device |
||||
|
# - delete_virtualmachine |
||||
|
# - add_* |
||||
|
# - change_* |
@ -1,28 +1,28 @@ |
|||||
## Possible Choices: |
|
||||
## status: |
|
||||
## - active |
|
||||
## - offline |
|
||||
## - staged |
|
||||
## |
|
||||
## Examples: |
|
||||
|
|
||||
# - cluster: cluster1 |
|
||||
# comments: VM1 |
|
||||
# disk: 200 |
|
||||
# memory: 4096 |
|
||||
# name: virtual machine 1 |
|
||||
# platform: Platform 2 |
|
||||
# status: active |
|
||||
# tenant: tenant1 |
|
||||
# vcpus: 8 |
|
||||
# - cluster: cluster1 |
|
||||
# comments: VM2 |
|
||||
# disk: 100 |
|
||||
# memory: 2048 |
|
||||
# name: virtual machine 2 |
|
||||
# platform: Platform 2 |
|
||||
# primary_ip4: 10.1.1.10/24 |
|
||||
# primary_ip6: 2001:db8:a000:1::10/64 |
|
||||
# status: active |
|
||||
# tenant: tenant1 |
|
||||
# vcpus: 8 |
|
||||
|
# Possible Choices: |
||||
|
# status: |
||||
|
# - active |
||||
|
# - offline |
||||
|
# - staged |
||||
|
# |
||||
|
# Examples: |
||||
|
# |
||||
|
#- cluster: cluster1 |
||||
|
# comments: VM1 |
||||
|
# disk: 200 |
||||
|
# memory: 4096 |
||||
|
# name: virtual machine 1 |
||||
|
# platform: Platform 2 |
||||
|
# status: active |
||||
|
# tenant: tenant1 |
||||
|
# vcpus: 8 |
||||
|
#- cluster: cluster1 |
||||
|
# comments: VM2 |
||||
|
# disk: 100 |
||||
|
# memory: 2048 |
||||
|
# name: virtual machine 2 |
||||
|
# platform: Platform 2 |
||||
|
# primary_ip4: 10.1.1.10/24 |
||||
|
# primary_ip6: 2001:db8:a000:1::10/64 |
||||
|
# status: active |
||||
|
# tenant: tenant1 |
||||
|
# vcpus: 8 |
@ -1,12 +1,12 @@ |
|||||
# - description: Network Interface 1 |
|
||||
# enabled: true |
|
||||
# mac_address: 00:77:77:77:77:77 |
|
||||
# mtu: 1500 |
|
||||
# name: Network Interface 1 |
|
||||
# virtual_machine: virtual machine 1 |
|
||||
# - description: Network Interface 2 |
|
||||
# enabled: true |
|
||||
# mac_address: 00:55:55:55:55:55 |
|
||||
# mtu: 1500 |
|
||||
# name: Network Interface 2 |
|
||||
# virtual_machine: virtual machine 1 |
|
||||
|
#- description: Network Interface 1 |
||||
|
# enabled: true |
||||
|
# mac_address: 00:77:77:77:77:77 |
||||
|
# mtu: 1500 |
||||
|
# name: Network Interface 1 |
||||
|
# virtual_machine: virtual machine 1 |
||||
|
#- description: Network Interface 2 |
||||
|
# enabled: true |
||||
|
# mac_address: 00:55:55:55:55:55 |
||||
|
# mtu: 1500 |
||||
|
# name: Network Interface 2 |
||||
|
# virtual_machine: virtual machine 1 |
@ -1,6 +1,6 @@ |
|||||
# - name: VLAN group 1 |
|
||||
# site: AMS 1 |
|
||||
# slug: vlan-group-1 |
|
||||
# - name: VLAN group 2 |
|
||||
# site: AMS 1 |
|
||||
# slug: vlan-group-2 |
|
||||
|
#- name: VLAN group 1 |
||||
|
# site: AMS 1 |
||||
|
# slug: vlan-group-1 |
||||
|
#- name: VLAN group 2 |
||||
|
# site: AMS 1 |
||||
|
# slug: vlan-group-2 |
@ -1,19 +1,19 @@ |
|||||
## Possible Choices: |
|
||||
## status: |
|
||||
## - active |
|
||||
## - reserved |
|
||||
## - deprecated |
|
||||
## |
|
||||
## Examples: |
|
||||
|
|
||||
# - name: vlan1 |
|
||||
# site: AMS 1 |
|
||||
# status: active |
|
||||
# vid: 5 |
|
||||
# role: Main Management |
|
||||
# description: VLAN 5 for MGMT |
|
||||
# - group: VLAN group 2 |
|
||||
# name: vlan2 |
|
||||
# site: AMS 1 |
|
||||
# status: active |
|
||||
# vid: 1300 |
|
||||
|
# Possible Choices: |
||||
|
# status: |
||||
|
# - active |
||||
|
# - reserved |
||||
|
# - deprecated |
||||
|
# |
||||
|
# Examples: |
||||
|
# |
||||
|
#- name: vlan1 |
||||
|
# site: AMS 1 |
||||
|
# status: active |
||||
|
# vid: 5 |
||||
|
# role: Main Management |
||||
|
# description: VLAN 5 for MGMT |
||||
|
#- group: VLAN group 2 |
||||
|
# name: vlan2 |
||||
|
# site: AMS 1 |
||||
|
# status: active |
||||
|
# vid: 1300 |
@ -1,8 +1,8 @@ |
|||||
# - enforce_unique: true |
|
||||
# name: vrf1 |
|
||||
# tenant: tenant1 |
|
||||
# description: main VRF |
|
||||
# - enforce_unique: true |
|
||||
# name: vrf2 |
|
||||
# rd: "6500:6500" |
|
||||
# tenant: tenant2 |
|
||||
|
#- enforce_unique: true |
||||
|
# name: vrf1 |
||||
|
# tenant: tenant1 |
||||
|
# description: main VRF |
||||
|
#- enforce_unique: true |
||||
|
# name: vrf2 |
||||
|
# rd: "6500:6500" |
||||
|
# tenant: tenant2 |
Reference in new issue