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:


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

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

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"


Über das Projekt

Installs and configures NetBox, a DCIM suite, in a production setting.

Installieren
ansible-galaxy install lae.netbox
Lizenz
mit
Downloads
107.6k
Besitzer