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 |
|||
type: ssh |
|||
name: default |
|||
name: master_push |
|||
|
|||
clone: |
|||
disable: true |
|||
disable: true |
|||
|
|||
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: |
|||
- 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: |
|||
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 |
|||
/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 |
|||
|
|||
.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: |
|||
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" |
|||
|
|||
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: |
|||
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 |
|||
!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