lae.netbox
Here is the translated text in German:
:role-author: lae
:role-name: netbox
:role: {role-author}.{role-name}
:gh-name: {role-author}/ansible-role-{role-name}
:netbox-version: 3.7.3
= {role}
:toc:
:toc-placement: vorwort
ifdef::env-github[]
:tip-caption: :bulb:
:warning-caption: :warning:
endif::[]
ifdef::env-github[]
image:https://img.shields.io/badge/role-{role}-blue?style=for-the-badge[Ansible Galaxy Rolle,link=https://galaxy.ansible.com/{role-author}/{role-name}]
endif::env-github[]
Implementiert und konfiguriert https://github.com/netbox-community/netbox[NetBox], ein Tool für das IP-Adressmanagement (IPAM) und das Management von Rechenzentrumsinfrastrukturen (DCIM).
Diese Rolle installiert NetBox in einer eigenen virtuellen Umgebung entweder durch ein Release-Archiv oder über Git unter Verwendung von uWSGI als Anwendungsserver.
Unterstützt CentOS 7, 8 / RHEL 9 / Debian 9, 10, 11, 12 / Ubuntu 16, 18, 20 und 22.
Beachte, dass diese Rolle leicht anders ist und sich von den Installationsanweisungen in der NetBox-Dokumentation unterscheidet. Die Hauptunterschiede sind:
- Verwendet das vom Distro bereitgestellte systemd anstelle von supervisord
- Verwendet uWSGI als Anwendungsserver anstelle von gunicorn
- Härtert den NetBox/uWSGI-Dienst (siehe
templates/netbox.service.j2
) - Führt ein Hot-Reload bei Upgrades und Änderungen der Konfiguration durch
== Schnellstart
Vorausgesetzt, Sie haben Ansible installiert und nutzen die Standardwerte:
[source,bash,subs="attributes"]
ansible-galaxy install geerlingguy.postgresql davidwittman.redis {role}
ansible-galaxy collection install community.postgresql
ansible-playbook -i your.server.fqdn, ~/.ansible/roles/{role}/examples/playbook_single_host_deploy.yml -K
Dies wird NetBox und PostgreSQL auf your.server.fqdn
bereitstellen; nach Abschluss sollte es auf Port 80 erreichbar sein. Bei Bedarf anpassen. Lesen Sie unten für weitere Informationen.
Sie können auch Vagrant verwenden, wenn Sie möchten, um NetBox unter localhost:8080
zu starten:
[source,bash,subs="attributes"]
ansible-galaxy install geerlingguy.postgresql davidwittman.redis {role}
ansible-galaxy collection install community.postgresql
cd ~/.ansible/roles/{role}/
vagrant up
== Unterstützung/Beitrag
Wenn Sie zu dieser Rolle beitragen möchten, lesen Sie bitte DEVELOPING.md
für den Workflow dieses Repositories und (optional) Anweisungen zur Einrichtung einer Entwicklungsumgebung. Diese Rolle verwendet die lae.travis-lxc
Rolle beim Testen unter Travis CI, die Sie in dem Verzeichnis tests/
finden können.
ifeval::["{role-author}" == "lae"]
Für Unterstützung oder wenn Sie zu dieser Rolle beitragen möchten, aber Anleitung benötigen, können Sie gerne im Discord-Server von @lae fragen: https://discord.gg/cjqr6Fg
endif::[]
== Voraussetzungen
=== PostgreSQL
Diese Rolle richtet keinen PostgreSQL-Server ein (wird jedoch eine Datenbank erstellen, falls erforderlich), daher müssen Sie einen PostgreSQL-Server einrichten und einen Datenbankbenutzer getrennt von dieser Rolle erstellen. Schauen Sie sich den Abschnitt Beispiel-Playbook an.
Außerdem müssen Sie möglicherweise für Ansible 2.10+ die Sammlung community.postgresql
installieren. Es wird empfohlen, dies in der requirements.yml
-Datei Ihres Playbooks anzugeben. Zum Beispiel:
[source,yaml]
collections:
- name: community.postgresql
version: 3.4.0
WARNUNG: NetBox v2.2.0+ benötigt mindestens PostgreSQL 9.4, was möglicherweise nicht in den Repos Ihrer Distribution verfügbar ist. Vielleicht möchten Sie dafür eine Rolle verwenden.
=== Redis
Diese Rolle richtet keine Redis-Instanz ein oder verwaltet sie. Sie sollten entweder redis-server
über eine Aufgabe in pre_tasks
innerhalb Ihres Playbooks installieren oder eine Redis-Installationsrolle wie https://galaxy.ansible.com/davidwittman/redis[DavidWittman.redis] verwenden.
WARNUNG: NetBox v2.9.0+ benötigt mindestens Redis 4.0. Die obige empfohlene Rolle verwendet standardmäßig eine Version 2.8, stellen Sie also sicher, dass Sie eine neuere Version in einer Rollenvariable angeben oder Redis 4.0+ auf andere Weise bereitstellen.
== Rollenvariablen
TIPP: Siehe examples/
für einige Playbooks, die Sie für verschiedene Szenarien schreiben könnten.
WARNUNG: Einige Rollenvariablen sind zwingend erforderlich. Suchen Sie nach dem fett gedruckten erforderlich unten.
[source,yaml]
netbox_stable: false
netbox_git: false
Es ist erforderlich, eine der oben genannten Variablen auf true
zu setzen. netbox_stable
weist die Rolle an, durch das Extrahieren von Tarball-Releases von GitHub bereitzustellen, während netbox_git
der Rolle sagt, ein NetBox-Git-Repository zu klonen - sie sind gegenseitig ausschließend.
[source,yaml,subs="attributes"]
netbox_stable_version: {netbox-version}
netbox_stable_uri: "https://github.com/netbox-community/netbox/archive/v{{ netbox_stable_version }}.tar.gz"
Diese können konfiguriert werden, um eine Version festzulegen (z. B. erhöhen, um ein Upgrade auszulösen) oder zur Bereitstellung einer Tarball-Datei, die sich an einem anderen Ort befindet. Nützlich für den Fall, dass Sie etwas in einer Veröffentlichung ändern müssen oder lokal hinter einer Firewall bereitstellen.
[source,yaml]
netbox_git_version: develop
netbox_git_uri: "https://github.com/netbox-community/netbox.git"
netbox_git_version
kann ein beliebiger gültiger Ref innerhalb eines Git-Repositories sein. netbox_git_uri
kann verwendet werden, um auf z. B. ein internes Repo oder einen Fork zu verweisen.
[source,yaml]
netbox_superuser_enabled: true
netbox_superuser_username: admin
#netbox_superuser_password: changeme
netbox_superuser_email: admin@localhost
netbox_superuser_create_token: false
Diese Variablen werden verwendet, um ein lokales Superuser-Konto zu konfigurieren. Deaktivieren Sie dies, wenn Sie kein Konto erstellen möchten (z. B. wenn Sie LDAP verwenden - obwohl es in diesem Fall vorteilhaft sein kann, einen lokalen Superuser zu haben). Wenn aktiviert, ist es erforderlich, das Superuser-Passwort zu setzen. Diese Rolle erstellt einen neuen Superuser, wenn der Benutzer nicht existiert, oder ändert einen vorhandenen Benutzer, wenn er kein Superuser ist oder eine andere E-Mail oder ein anderes Passwort hat. (Ja, Sie können dies verwenden, um Ihr Superuser-Passwort zurückzusetzen, wenn Sie es vergessen haben.) netbox_superuser_create_token
kann verwendet werden, um ein zufälliges API-Token für den Superuser zu generieren, falls erforderlich.
[source,yaml]
netbox_database: netbox
netbox_database_user: netbox
#netbox_database_password: changeme
#netbox_database_host: localhost
netbox_database_port: 5432
#netbox_database_socket: /var/run/postgresql
Es ist erforderlich, entweder ein Socket-Verzeichnis (um über UNIX-Sockets zu kommunizieren) oder einen Host/Passwort (um TCP/IP zu verwenden) zu konfigurieren. Siehe den Abschnitt Beispiel-Playbook für weitere Informationen zur Konfiguration der Datenbank.
Beachten Sie, dass diese zur Konfiguration von DATABASE
in configuration.py
verwendet werden.
[source,yaml]
netbox_database_conn_age: 300
Um NetBox zu konfigurieren, damit Datenbankverbindungen länger als eine einzige Anfrage offen bleiben, setzen Sie netbox_database_conn_age
auf Ihre bevorzugte maximale Verbindungsdauer in Sekunden. 300 Sekunden (5 Minuten) sind normalerweise eine gute Zahl, um zu beginnen.
[source,yaml]
netbox_database_maintenance: postgres
Wenn die PostgreSQL-Datenbank so konfiguriert ist, dass sie den Zugriff auf bestimmte Tabellen der DB für den Benutzer, der mit NetBox konfiguriert ist, nur zulässt, können Sie netbox_database_maintenance
setzen, um die Standarddatenbank für die Verbindungsprüfung durch eine andere Tabelle als die Standardtabelle postgres
zu ersetzen. Dies ist standardmäßig eine leere Tabelle in jeder PostgreSQL-Datenbank, aber einige Konfigurationen könnten den Zugriff auf diese Tabelle blockieren, sodass hier stattdessen eine andere Tabelle (z. B. netbox_prod
) verwendet werden kann.
[source,yaml]
Beispielverwendung, standardmäßig ist leeres dict
netbox_database_options:
sslmode: require
isolation_level: 3
Wenn Sie andere PostgreSQL-Parameter-Schlüsselwörter festlegen müssen, können Sie dies hier tun. Für Fälle wie https://docs.djangoproject.com/en/3.1/ref/databases/#isolation-level[Isolationsebenen] muss der numerische Wert anstelle der Konstante verwendet werden:psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE
vs 3
.
Fügen Sie hier nur Dinge hinzu, wenn Sie wirklich wissen, was Sie tun.
[source,yaml]
netbox_redis_host: 127.0.0.1
netbox_redis_port: 6379
netbox_redis_password: ''
netbox_redis_database: 0
netbox_redis_default_timeout: 300
netbox_redis_ssl_enabled: false
netbox_redis_insecure_skip_tls_verify: false
netbox_redis_cache_host: "{{ netbox_redis_host }}"
netbox_redis_cache_port: "{{ netbox_redis_port }}"
netbox_redis_cache_database: 1
netbox_redis_cache_password: "{{ netbox_redis_password }}"
netbox_redis_cache_default_timeout: "{{ netbox_redis_default_timeout }}"
netbox_redis_cache_ssl_enabled: "{{ netbox_redis_ssl_enabled }}"
netbox_redis_cache_insecure_skip_tls_verify: "{{ netbox_redis_insecure_skip_tls_verify }}"
Dies füllt das REDIS
-Konfigurationswörterbuch in configuration.py
. Verwenden Sie die zweite Gruppe von Variablen, wenn Sie Ihre Cache-Datenbank von Ihrer Webhooks-Datenbank trennen möchten.
[source,yaml]
netbox_redis_sentinels:
- { host: '192.168.0.1', port: '5000' },
- { host: '192.168.0.2', port: '5000' }
netbox_redis_sentinel_service: 'netbox'
netbox_redis_password: ''
netbox_redis_database: 0
netbox_redis_default_timeout: 300
netbox_redis_ssl_enabled: false
netbox_redis_cache_sentinels: "{{ netbox_redis_sentinels }}"
netbox_redis_cache_sentinel_service: "{{ netbox_redis_sentinel_service }}"
netbox_redis_cache_database: 1
netbox_redis_cache_password: "{{ netbox_redis_password }}"
netbox_redis_cache_default_timeout: "{{ netbox_redis_default_timeout }}"
netbox_redis_cache_ssl_enabled: "{{ netbox_redis_ssl_enabled }}"
Verwenden Sie diese Syntax, wenn Ihr Redis mit einer Sentinel-Architektur (mehrere Knoten) installiert ist. Verwenden Sie die zweite Gruppe von Variablen, wenn Sie Ihre Cache-Datenbank von Ihrer Webhooks-Datenbank trennen möchten.
[source,yaml]
netbox_rqworker_processes: 1
Geben Sie an, wie viele Anforderungswarteschlangen-Worker vom Systemd-Dienst gestartet werden sollen. Sie können dies auf dem Standardwert von 1 belassen, es sei denn, Sie haben eine große Anzahl von Berichten, Skripten oder anderen Hintergrundaufgaben.
[source,yaml]
netbox_config:
#SECRET_KEY:
ALLOWED_HOSTS:
- localhost
- 127.0.0.1
#NAPALM_USERNAME:
#NAPALM_PASSWORD:
MEDIA_ROOT: "{{ netbox_shared_path }}/media"
REPORTS_ROOT: "{{ netbox_shared_path }}/reports"
SCRIPTS_ROOT: "{{ netbox_shared_path }}/scripts"
Dies ist ein Wörterbuch von Einstellungen, die verwendet werden, um NetBoxs configuration.py
zu erstellen. Siehe http://netbox.readthedocs.io/en/stable/configuration/mandatory-settings/[Erforderliche Einstellungen] und http://netbox.readthedocs.io/en/stable/configuration/optional-settings/[Optionale Einstellungen] aus der NetBox-Dokumentation für weitere Details, sowie examples/netbox_config.yml
in diesem Repository.
Es ist nicht erforderlich, SECRET_KEY
hier anzugeben - diese Rolle erstellt automatisch einen für Sie unter {{ netbox_shared_path }}/generated_secret_key
. Der SECRET_KEY
wird dann bei nachfolgenden Ausführungen aus dieser Datei gelesen, es sei denn, Sie setzen dies später in Ihrem Playbook. Beachten Sie, dass Sie den SECRET_KEY
angeben sollten, wenn Sie mehrere NetBox-Instanzen hinter einem Lastenausgleich bereitstellen.
Wenn Sie die NAPALM-Integration in dieser Rolle aktiviert haben, müssen Sie auch NAPALM-Anmeldeinformationen hier konfigurieren.
MEDIA_ROOT
/REPORTS_ROOT
/SCRIPTS_ROOT
, obwohl nicht zwingend in der NetBox-Dokumentation, ist in dieser Rolle erforderlich, um zu verhindern, dass diese Dateien während Upgrades verloren gehen (diese Rolle aktualisiert NetBox nicht im selben Verzeichnis). Sie sollte auf ein Verzeichnis gesetzt werden, das dauerhaft ist und bei einem Upgrade nicht verloren geht (das oben angegebene Standardverzeichnis kann ohne Probleme verwendet werden). Diese Rolle wird versuchen, diese Verzeichnisse zu erstellen und ihren Besitz wie festgelegt auf netbox_user
zu ändern.
[source,yaml]
netbox_scripts: []
netbox_reports: []
https://netbox.readthedocs.io/en/stable/additional-features/custom-scripts/[Skripte] und https://netbox.readthedocs.io/en/stable/additional-features/reports/[Berichte] zum Hochladen zur Verwendung innerhalb von NetBox. Dies sollten Listen von Wörterbüchern sein, die ein Attribut src
enthalten, das den lokalen Pfad zum Skript oder Bericht angibt, und ein Attribut name
, das den Modulnamen (Skript-/Berichtsname) angibt. Zum Beispiel:
[source,yaml]
Beispiel
netbox_scripts:
- src: netbox_scripts/migrate_application.py
name: migrate_application
netbox_reports: - src: netbox_reports/devices.py
name: devices
Dies wird netbox_scripts/migrate_application.py
von Ihrem Playbook-Verzeichnis nach {{ netbox_config.SCRIPTS_ROOT }}/migrate_application.py
und netbox_reports/devices.py
nach {{ netbox.config.REPORTS_ROOT }}/devices.py
kopieren.
[source,yaml]
netbox_pip_packages: []
Beispiel:
netbox_pip_packages:
- https://github.com/steffann/netbox-example-plugin.git
- netbox-topology-views
Dies ist eine Liste zusätzlicher Pakete, die über pip
innerhalb der virtuellen Umgebung von NetBox installiert werden sollen. Sie können jedes gültige Artefakt angeben, das pip
versteht.
Wenn Sie hier Plugins auflisten, stellen Sie sicher, dass Sie die entsprechenden Plugin-Konfigurationen innerhalb der netbox_config
Rollenvariablen angeben. Lesen Sie https://netbox.readthedocs.io/en/stable/plugins/[Plugins] für weitere Informationen.
[source,yaml]
netbox_user: netbox
netbox_group: netbox
netbox_home: /srv/netbox
netbox_releases_path: "{{ netbox_home }}/releases"
netbox_git_repo_path: "{{ netbox_releases_path }}/git-repo"
netbox_git_deploy_path: "{{ netbox_releases_path }}/git-deploy"
netbox_stable_path: "{{ netbox_releases_path }}/netbox-{{ netbox_stable_version }}"
netbox_current_path: "{{ netbox_home }}/current"
netbox_shared_path: "{{ netbox_home }}/shared"
Dies sind alle Bereitstellungsdetails, die Sie ändern können, um den Anwendungsbenutzer und die Speicherorte für die Anwendung festzulegen. netbox_releases_path
speichert alle NetBox-Releases, die Sie je bereitgestellt haben. netbox_git_repo_path
ist der Ort, an dem das Git-Repository geklont wird und sollte unberührt bleiben - während netbox_git_deploy_path
der Ort ist, an dem ein git archive
, das mit dem Ref netbox_git_version
erstellt wurde, extrahiert wird. netbox_stable_path
ist der extrahierte Ordner aus einem Release-Tarball. netbox_current_path
wird mit dem gewählten Release verlinkt und in Dienst-/Konfigurationsdateien als der Ort verwendet, an dem NetBox installiert ist. netbox_shared_path
soll Konfigurationsdateien und andere "gemeinsame" Inhalte wie Protokolle speichern.
[source,yaml]
netbox_socket: "127.0.0.1:8000"
netbox_protocol: http
netbox_processes: "{{ ansible_processor_vcpus }}"
netbox_socket
definiert, an was der uWSGI-Dienst binden wird und kann auf jede gültige https://www.freedesktop.org/software/systemd/man/systemd.socket.html#ListenStream=[ListenStream]-Adresse (systemd-Socket) gesetzt werden. Setzen Sie netbox_protocol
auf uwsgi
, wenn Sie möchten, dass uWSGI WSGI spricht (zum Beispiel, wenn Sie nginx als Lastenausgleicher verwenden). netbox_processes
definiert, wie viele NetBox-Arbeiter uWSGI hochfahren wird, um Anforderungen zu bedienen.
[source,yaml]
netbox_application_log: "file:{{ netbox_shared_path }}/application.log"
netbox_requests_log: "file:{{ netbox_shared_path }}/requests.log"
Diese definieren, wo Protokolle gespeichert werden. Sie können externe Protokollierungsdienste anstelle von lokalen Dateien verwenden, wenn Sie möchten,
http://uwsgi-docs.readthedocs.io/en/latest/Logging.html#pluggable-loggers[solange uWSGI dies unterstützt]. Das Anwendungsprotokoll korreliert mit logger
und das Anforderungsprotokoll mit req-logger
.
[source,yaml]
netbox_ldap_enabled: false
netbox_ldap_config_template: netbox_ldap_config.py.j2
Schalten Sie netbox_ldap_enabled
auf true
, um die LDAP-Authentifizierung für NetBox zu konfigurieren. netbox_ldap_config_template
sollte der Pfad zu Ihrer Vorlage sein - standardmäßig sucht Ansible im templates/
-Verzeichnis Ihres Playbooks danach. Ein Beispiel finden Sie unter examples/
. Sie müssen auch netbox_config.REMOTE_AUTH_BACKEND
auf netbox.authentication.LDAPBackend
setzen.
TIPP: Standardmäßig wird von dieser Rolle immer noch ein lokaler (nicht LDAP) Superuser erstellt. Wenn dies unerwünscht ist, sollten Sie in Erwägung ziehen, netbox_superuser_enabled
zu deaktivieren.
[source,yaml]
netbox_napalm_enabled: false
netbox_napalm_packages:
- napalm
Schalten Sie netbox_napalm_enabled
ein, um die NAPALM-Integration in NetBox zu aktivieren. Sie müssen NAPALM_USERNAME
und NAPALM_PASSWORD
in der netbox_config
-Variablen definieren, um NAPALM verwenden zu können. Fügen Sie zusätzliche NAPALM-Python-Bibliotheken hinzu, indem Sie sie in netbox_napalm_packages
auflisten (z. B. napalm-eos
).
[source,yaml]
netbox_metrics_enabled: false
Schalten Sie netbox_metrics_enabled
auf true
, um Anwendungsmetriken (über https://github.com/korfuri/django-prometheus[django-prometheus]) zu aktivieren. Dies fügt relevante Konfigurationsbestandteile für die ordnungsgemäße Handhabung von Metriken hinzu.
(https://netbox.readthedocs.io/en/stable/additional-features/prometheus-metrics/[mehr Informationen]).
[source,yaml]
netbox_metrics_dir: netbox_metrics
netbox_metrics_path: "/run/{{ netbox_metrics_dir }}"
Der Verzeichnisname, in dem die Metrikdateien gespeichert werden, kann mit netbox_metrics_dir
festgelegt werden. netbox_metrics_path
muss jedoch als Standard (siehe oben) beibehalten werden, um mit systemd
und dem RuntimeDirectory
-Parameter (der nur auf /run
verweist) zu arbeiten.
[source,yaml]
netbox_keep_uwsgi_updated: false
Schalten Sie netbox_keep_uwsgi_updated
auf true
, wenn Sie sicherstellen möchten, dass Ihr uWSGI-Server die neueste Version ist, andernfalls wird uWSGI bei nachfolgenden Ausführungen Ihres Playbooks nicht aktualisiert.
[source,yaml]
netbox_uwsgi_options: {}
Geben Sie hier zusätzliche Konfigurationsoptionen an, die in uwsgi.ini
eingefügt werden sollen. Dies wird als Wörterbuch von Schlüssel/Wert-Paaren erwartet, z. B. buffer-size: 65535
.
[source,yaml]
netbox_uwsgi_in_venv: false
Schalten Sie netbox_uwsgi_in_venv
auf true
, wenn Sie möchten, dass uwsgi
im selben virtuellen Umfeld wie NetBox installiert wird. Andernfalls wird es systemweit in den Bibliotheks-Pfad der verwendeten Python-Version für die Erstellung der virtuellen Umgebung installiert (normales/klassisches Verhalten).
WARNUNG: Es besteht die Möglichkeit, dass dies in einer späteren Version dieser Rolle zu dem Standard wird (ich denke nach weiteren plattformübergreifenden Tests). Siehe https://github.com/lae/ansible-role-netbox/issues/144[Problem #144] für weitere Details.
[source,yaml]
netbox_install_epel: true
Schalten Sie netbox_install_epel
auf false
, wenn Sie nicht möchten, dass diese Rolle das Fedora EPEL für Sie installiert. Dies kann für Unternehmensumgebungen nützlich sein, in denen die System-Repositorys von der Firma verwaltet/spiegelisiert werden.
[source,yaml]
netbox_packages: []
netbox_python_packages: []
netbox_python_binary: /usr/bin/python{{ some version }}
netbox_ldap_packages: []
Diese Variablen werden dynamisch basierend auf der Ziel-Distribution generiert. Sie können die Standardwerte unter dem Verzeichnis vars/
überprüfen. Sie können diese Variablen verwenden, um ein nicht unterstütztes Betriebssystem anzusprechen (obwohl Sie gerne einen PR öffnen können, um die Unterstützung hinzuzufügen!) oder um einen benutzerdefinierten Python-Interpreter (z. B. PyPy) für die Bereitstellung anzugeben. Beachten Sie jedoch, dass die Unterstützung durch diese Rolle für alternative Python-Installationen möglicherweise eingeschränkt ist.
== Beispiel-Playbook
Das folgende installiert PostgreSQL und erstellt einen Benutzer mit @geerlingguy's robuster Postgres-Rolle und implementiert dann NetBox mit einer lokalen UNIX-Socket-Verbindung zum Postgres-Server mit dem Standard-Datenbankbenutzer.
[source,yaml,subs="attributes"]
- hosts: netbox.idolactiviti.es
become: yes
roles:- geerlingguy.postgresql
- davidwittman.redis
- {role}
vars:
netbox_stable: true
netbox_database_socket: "{{ postgresql_unix_socket_directories[0] }}"
netbox_superuser_password: netbox
netbox_socket: "0.0.0.0:80"
netbox_config:
ALLOWED_HOSTS:- netbox.idolactiviti.es
MEDIA_ROOT: "{{ netbox_shared_path }}/media"
REPORTS_ROOT: "{{ netbox_shared_path }}/reports"
SCRIPTS_ROOT: "{{ netbox_shared_path }}/scripts"
postgresql_users: - name: "{{ netbox_database_user }}"
role_attr_flags: CREATEDB,NOSUPERUSER
redis_bind: 127.0.0.1
redis_version: 6.0.9
redis_checksum: sha256:dc2bdcf81c620e9f09cfd12e85d3bc631c897b2db7a55218fd8a65eaa37f86dd
- netbox.idolactiviti.es
Beachten Sie das CREATEDB
-Attribut.
Vorausgesetzt, Sie haben bereits einen PG-Server, der mit dem Benutzer netbox_prod_user
eingerichtet ist, der eine Datenbank namens netbox_prod
besitzt und dem Host, auf dem Sie NetBox installieren, die Authentifizierung über TCP ermöglicht:
[source,yaml,subs="attributes"]
- hosts: netbox.idolactiviti.es
become: yes
roles:- davidwittman.redis
- {role}
vars:
netbox_stable: true
netbox_superuser_password: netbox
netbox_socket: "0.0.0.0:80"
netbox_config:
ALLOWED_HOSTS:- "{{ inventory_hostname }}"
MEDIA_ROOT: "{{ netbox_shared_path }}/media"
REPORTS_ROOT: "{{ netbox_shared_path }}/reports"
SCRIPTS_ROOT: "{{ netbox_shared_path }}/scripts"
netbox_database_host: pg-netbox.idolactiviti.es
netbox_database_port: 15432
netbox_database: netbox_prod
netbox_database_user: netbox_prod_user
netbox_database_password: "very_secure_password_for_prod"
netbox_database_maintenance: netbox_prod
redis_bind: 127.0.0.1
redis_version: 6.0.9
redis_checksum: sha256:dc2bdcf81c620e9f09cfd12e85d3bc631c897b2db7a55218fd8a65eaa37f86dd
- "{{ inventory_hostname }}"
Siehe das Verzeichnis examples/
für weitere Informationen.
== Fehlersuche
=== uWSGI, die TCP-Verbindungen zurücksetzt
Wenn netbox_protocol
auf http
gesetzt ist, kann uWSGI seltsames Verhalten zeigen und TCP-Verbindungen zufällig zurücksetzen. Dies kann sich in einem "Verbindung zurückgesetzt durch Peer"-Fehler äußern, beispielsweise beim Arbeiten mit der API unter Verwendung von https://github.com/netbox-community/pynetbox[pynetbox]. Wenn Sie betroffen sind, versuchen Sie netbox_protocol
auf uwsgi
zu ändern und einen Lastenausgleicher zu verwenden oder Ihre netbox_uwsgi_options
wie folgt anzupassen. Siehe https://github.com/lae/ansible-role-netbox/issues/130#issuecomment-847571006[Dieses GitHub-Problem] für eine verwandte Diskussion
[source,yaml,subs="attributes"]
netbox_uwsgi_options:
http-keepalive: "true"
http-auto-chunked: "true"
add-header: "Verbindung: Schließen"
Installs and configures NetBox, a DCIM suite, in a production setting.
ansible-galaxy install lae.netbox