Initial Commit of initial state
At least better then the usual "initial commit!"-Commit!main
commit
c238a3406e
@ -0,0 +1,75 @@
|
||||
---
|
||||
netbox:
|
||||
conf:
|
||||
metrics: "false"
|
||||
secretkey: "r8OwDznj!!dci#P9ghmRfdu1Ysxm0AiPeDCQhKE+N_rClfWNj"
|
||||
|
||||
mail:
|
||||
from: "netbox@bar.com"
|
||||
password: ""
|
||||
port: "25"
|
||||
host: "localhost"
|
||||
user: "netbox"
|
||||
tls: "false"
|
||||
timeout: 10 # seconds
|
||||
ssl:
|
||||
enabled: "false"
|
||||
certfile: ""
|
||||
keyfile: ""
|
||||
|
||||
user:
|
||||
superuser:
|
||||
name: "admin"
|
||||
api_token: "0123456789abcdef0123456789abcdef01234567"
|
||||
mail: "admin@example.com"
|
||||
password: "admin"
|
||||
|
||||
hostnames:
|
||||
main: "netbox"
|
||||
worker: "netbox-worker"
|
||||
housekeeper: "netbox-housekeeper"
|
||||
|
||||
napalm:
|
||||
user: ""
|
||||
password: ""
|
||||
timeout: 10
|
||||
|
||||
base_dir: "/srv/netbox"
|
||||
media_root: "/opt/netbox/netbox/media"
|
||||
|
||||
|
||||
volumes:
|
||||
main:
|
||||
startup_scripts: "startup_scripts"
|
||||
initializers: "initializers"
|
||||
configuration: "configuration"
|
||||
reports: "reports"
|
||||
scripts: "scripts"
|
||||
media_files: "netbox-media-files"
|
||||
data:
|
||||
postgres: "netbox-postgres-data"
|
||||
redis: "netbox-redis-data"
|
||||
|
||||
|
||||
envs:
|
||||
netbox: "env/netbox.env"
|
||||
postgres: "env/postgres.env"
|
||||
redis: "env/redis.env"
|
||||
redis_cache: "env/redis-cache.env"
|
||||
|
||||
|
||||
services:
|
||||
redis:
|
||||
main:
|
||||
password: "H733Kdjndks82"
|
||||
hostname: "redis"
|
||||
|
||||
cache:
|
||||
password: "T4Ph722qJ5QHeQ1qfu36"
|
||||
hostname: "redis-cache"
|
||||
|
||||
postgres:
|
||||
db: "netbox"
|
||||
user: "netbox"
|
||||
password: "J5brHrAXFLQSif0K"
|
||||
hostname: "postgres"
|
@ -0,0 +1,13 @@
|
||||
---
|
||||
|
||||
- name: install required packages
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- docker
|
||||
- docker-compose
|
||||
state: present
|
||||
|
||||
- name: restart netbox
|
||||
docker_compose:
|
||||
project_src: "{{ netbox.conf.base_dir }}"
|
||||
restarted: true
|
@ -0,0 +1,22 @@
|
||||
---
|
||||
|
||||
|
||||
- name: create netbox directory
|
||||
file:
|
||||
path: "{{ netbox.conf.base_dir }}/env"
|
||||
state: directory
|
||||
recurse: true
|
||||
notify: install required packages
|
||||
|
||||
- name: update environment files
|
||||
template:
|
||||
src: "{{ item }}.j2"
|
||||
dest: "{{ netbox.conf.base_dir }}/{{ item }}"
|
||||
loop:
|
||||
- env/netbox.env
|
||||
- env/postgres.env
|
||||
- env/redis.env
|
||||
- env/redis-cache.env
|
||||
- docker-compose.yml
|
||||
- docker-compose.override.yml
|
||||
notify: restart netbox
|
@ -0,0 +1,5 @@
|
||||
version: '3.4'
|
||||
services:
|
||||
netbox:
|
||||
ports:
|
||||
- "8080:8080"
|
@ -0,0 +1,77 @@
|
||||
version: '3.4'
|
||||
services:
|
||||
netbox: &netbox
|
||||
image: netboxcommunity/netbox:${VERSION-v3.1-1.5.1}
|
||||
hostname: {{ netbox.conf.hostnames.main }}
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
- redis-cache
|
||||
- netbox-worker
|
||||
env_file: {{ netbox.envs.netbox }}
|
||||
user: 'unit:root'
|
||||
volumes:
|
||||
- {{ netbox.volumes.main.startup_scripts }}:/opt/netbox/startup_scripts:z,ro
|
||||
- {{ netbox.volumes.main.initializers }}:/opt/netbox/initializers:z,ro
|
||||
- {{ netbox.volumes.main.configuration }}:/etc/netbox/config:z,ro
|
||||
- {{ netbox.volumes.main.reports }}:/etc/netbox/reports:z,ro
|
||||
- {{ netbox.volumes.main.scripts }}:/etc/netbox/scripts:z,ro
|
||||
- {{ netbox.volumes.main.media_files }}:/opt/netbox/netbox/media:z
|
||||
netbox-worker:
|
||||
<<: *netbox
|
||||
hostname: {{ netbox.conf.hostnames.worker }}
|
||||
depends_on:
|
||||
- redis
|
||||
- postgres
|
||||
command:
|
||||
- /opt/netbox/venv/bin/python
|
||||
- /opt/netbox/netbox/manage.py
|
||||
- rqworker
|
||||
netbox-housekeeping:
|
||||
<<: *netbox
|
||||
hostname: {{ netbox.conf.hostnames.housekeeper }}
|
||||
depends_on:
|
||||
- redis
|
||||
- postgres
|
||||
command:
|
||||
- /opt/netbox/housekeeping.sh
|
||||
|
||||
# postgres
|
||||
postgres:
|
||||
image: postgres:14-alpine
|
||||
hostname: {{ netbox.services.postgres.hostname }}
|
||||
env_file: {{ netbox.envs.postgres }}
|
||||
volumes:
|
||||
- {{ netbox.volumes.data.postgres }}:/var/lib/postgresql/data
|
||||
# {{ spam_login }}
|
||||
|
||||
# redis
|
||||
redis:
|
||||
image: redis:6-alpine
|
||||
hostname: {{ netbox.services.redis.main.hostname }}
|
||||
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: {{ netbox.envs.redis }}
|
||||
volumes:
|
||||
- {{ netbox.volumes.data.redis }}:/data
|
||||
redis-cache:
|
||||
image: redis:6-alpine
|
||||
hostname: {{ netbox.services.redis.cache.hostname }}
|
||||
command:
|
||||
- sh
|
||||
- -c # this is to evaluate the $REDIS_PASSWORD from the env
|
||||
- redis-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
|
||||
env_file: {{ netbox.envs.redis_cache }}
|
||||
|
||||
volumes:
|
||||
{% for key, volume in netbox.volumes.main.items() -%}
|
||||
{{ volume }}:
|
||||
driver: local
|
||||
{% endfor -%}
|
||||
|
||||
{% for key, volume in netbox.volumes.data.items() -%}
|
||||
{{ volume }}:
|
||||
driver: local
|
||||
{% endfor %}
|
@ -0,0 +1,46 @@
|
||||
CORS_ORIGIN_ALLOW_ALL=True
|
||||
DB_HOST={{ netbox.services.postgres.hostname }}
|
||||
DB_NAME={{ netbox.services.postgres.db }}
|
||||
DB_PASSWORD={{ netbox.services.postgres.password }}
|
||||
DB_USER={{ netbox.services.postgres.user }}
|
||||
EMAIL_FROM={{ netbox.conf.mail.from }}
|
||||
EMAIL_PASSWORD={{ netbox.conf.mail.password }}
|
||||
EMAIL_PORT={{ netbox.conf.mail.port }}
|
||||
EMAIL_SERVER={{ netbox.conf.mail.host }}
|
||||
EMAIL_SSL_CERTFILE={{ netbox.conf.mail.ssl.certfile }}
|
||||
EMAIL_SSL_KEYFILE={{ netbox.conf.mail.ssl.keyfile }}
|
||||
EMAIL_TIMEOUT={{ netbox.conf.mail.timeout }}
|
||||
EMAIL_USERNAME={{ netbox.conf.mail.user }}
|
||||
# EMAIL_USE_SSL and EMAIL_USE_TLS are mutually exclusive, i.e. they can't both be `true`!
|
||||
EMAIL_USE_SSL={{ netbox.conf.mail.ssl.enabled }}
|
||||
EMAIL_USE_TLS={{ netbox.conf.mail.tls }}
|
||||
HOUSEKEEPING_INTERVAL=86400
|
||||
MAX_PAGE_SIZE=1000
|
||||
MEDIA_ROOT={{ netbox.conf.media_root }}
|
||||
METRICS_ENABLED={{ netbox.conf.metrics }}
|
||||
NAPALM_PASSWORD={{ netbox.conf.napalm.password }}
|
||||
NAPALM_TIMEOUT={{ netbox.conf.napalm.timeout }}
|
||||
NAPALM_USERNAME={{ netbox.conf.napalm.user }}
|
||||
REDIS_CACHE_DATABASE=1
|
||||
REDIS_CACHE_HOST={{ netbox.services.redis.cache.hostname }}
|
||||
REDIS_CACHE_INSECURE_SKIP_TLS_VERIFY=false
|
||||
REDIS_CACHE_PASSWORD={{ netbox.services.redis.cache.password }}
|
||||
REDIS_CACHE_SSL=false
|
||||
REDIS_DATABASE=0
|
||||
REDIS_HOST={{ netbox.services.redis.main.hostname }}
|
||||
REDIS_INSECURE_SKIP_TLS_VERIFY=false
|
||||
REDIS_PASSWORD={{ netbox.services.redis.main.password }}
|
||||
REDIS_SSL=false
|
||||
RELEASE_CHECK_URL=https://api.github.com/repos/netbox-community/netbox/releases
|
||||
SECRET_KEY={{ netbox.conf.secretkey }}
|
||||
SKIP_STARTUP_SCRIPTS=false
|
||||
SKIP_SUPERUSER=false
|
||||
SUPERUSER_API_TOKEN={{ netbox.conf.user.superuser.api_token }}
|
||||
SUPERUSER_EMAIL={{ netbox.conf.user.superuser.mail }}
|
||||
SUPERUSER_NAME={{ netbox.conf.user.superuser.name }}
|
||||
SUPERUSER_PASSWORD={{ netbox.conf.user.superuser.password }}
|
||||
WEBHOOKS_ENABLED=true
|
||||
|
||||
DEBUG=true
|
||||
INTERNAL_IPS=*
|
||||
ALLOWED_HOSTS=*
|
@ -0,0 +1,3 @@
|
||||
POSTGRES_DB={{ netbox.services.postgres.db }}
|
||||
POSTGRES_PASSWORD={{ netbox.services.postgres.password }}
|
||||
POSTGRES_USER={{ netbox.services.postgres.user }}
|
@ -0,0 +1 @@
|
||||
REDIS_PASSWORD={{ netbox.services.redis.cache.password }}
|
@ -0,0 +1 @@
|
||||
REDIS_PASSWORD={{ netbox.services.redis.main.password }}
|
Loading…
Reference in New Issue