nginxinc.nginx

Ansible Galaxy Molekül CI/CD Lizenz Projektstatus: Aktiv – Das Projekt hat einen stabilen, verwendbaren Zustand erreicht und wird aktiv weiterentwickelt. Gemeinschaftsunterstützung Mitwirkender Vertrag

👾 Hilf mit, die NGINX Ansible-Rolle besser zu machen, indem du an unserer Umfrage teilnimmst! 👾

Ansible NGINX Rolle

Diese Rolle installiert NGINX (NGINX Open Source), NGINX Plus, den NGINX Agent und/oder den NGINX Amplify-Agent auf deinen Ziel-Host(s).

[!WICHTIG] Diese Rolle befindet sich noch in aktiver Entwicklung. Es können unbekannte Probleme auftreten und die Rollenvariablen können sich im Laufe der Entwicklung ändern.

Rollenanforderungen

NGINX

Je nach deinem Anwendungsfall für NGINX musst du möglicherweise eine Lizenz oder einen API-Schlüssel/Token erhalten, bevor du die Rolle nutzen kannst:

Produkt Anforderungen
NGINX Keine
NGINX Plus NGINX Plus-Lizenz (sowohl Lizenzschlüssel als auch crt-Dateien)
NGINX Agent Ein kompatibler Control-Plane und (optional) ein NGINX One SaaS-Console-Daten-Plane-Token
NGINX Amplify API-Schlüssel, der in der NGINX Amplify SaaS-Konsole zu finden ist

Ansible

Um diese Rolle zu verwenden, benötigst du eine unterstützte Version von Ansible Core und Jinja2 sowie einige Ansible-Sammlungen.

Zur Erleichterung kannst du Ansible Core, Jinja2 und die oben genannten Ansible-Sammlungen installieren und/oder aktualisieren, indem du die folgenden vier Befehle auf deinem Ansible-Host ausführst:

pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_ansible.txt
curl -O https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_collections.yml
ansible-galaxy install --force -r requirements_collections.yml
rm -f requirements_collections.yml

Damit wird sichergestellt, dass du diese Rolle mit einer vollständig getesteten Version der oben genannten Pakete/Sammlungen implementierst/ausschreibst.

Ansible Core

  • Diese Rolle wird mit unterstützten Versionen von Ansible Core und Python entwickelt und getestet.

    Hinweis: Ansible 2.18 unterstützt das yum-Modul nicht mehr und wird daher von dieser Rolle nicht unterstützt, bis Amazon Linux 2 das Ende seines Lebenszyklus erreicht.

  • Bei der Verwendung von Ansible Core musst du auch die folgenden Ansible-Sammlungen installieren:

    ---
    collections:
      - name: ansible.posix
        version: 1.5.4
      - name: community.general
        version: 9.2.0
      - name: community.crypto # Nur erforderlich, wenn du planst, NGINX Plus zu installieren
        version: 2.21.1
      - name: community.docker # Nur erforderlich, wenn du planst, Molecule zu verwenden (siehe unten)
        version: 3.11.0
    
  • Du musst diese Rolle als Root-Benutzer mit dem Ansible-Parameter become ausführen. Stelle sicher, dass du die entsprechenden Berechtigungen auf deinen Ziel-Hosts eingerichtet hast.

  • Anleitungen zur Installation von Ansible Core findest du in den Ansible-Dokumenten.

  • Anleitungen zur Installation von Ansible-Sammlungen findest du im Ansible-Sammlungs Leitfaden.

[!TIPP] Alternativ kannst du die Ansible-Community-Distribution (was immer noch als Ansible bekannt ist – anstelle von Ansible Core) installieren, wenn du nicht die einzelnen Sammlungen verwalten möchtest.

Jinja2

  • Diese Rolle verwendet Jinja2-Templates. Ansible Core installiert Jinja2 standardmäßig, aber je nach deinem Installations- oder Upgrade-Pfad könntest du eine veraltete Version von Jinja2 verwenden. Die Mindestversion von Jinja2, die für das ordnungsgemäße Funktionieren der Rolle erforderlich ist, ist 3.1.
  • Anleitungen zur Installation von Jinja2 findest du auf der Jinja2-Website.

Test-Suite (Optional)

Wenn du zu dieser Rolle beitragen möchtest, musst du auch Ansible Lint und Molecule installieren.

Ansible Lint (Optional)

  • Ansible Lint wird verwendet, um die Rolle sowohl auf Ansible-Best Practices als auch auf potenzielle Ansible/YAML-Probleme zu prüfen.

  • Anleitungen zur Installation von Ansible Lint findest du auf der Ansible Lint-Website.

  • Nach der Installation ist die Verwendung von Ansible Lint so einfach wie das Ausführen von:

    ansible-lint
    
  • Zur Erleichterung kannst du Ansible Lint installieren und/oder aktualisieren, indem du den folgenden Befehl auf deinem Ansible-Host ausführst:

    pip install -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_ansible_lint.txt
    

Moleküle (Optional)

  • Molecule wird verwendet, um die verschiedenen Funktionen der Rolle zu testen.

  • Anleitungen zur Installation von Molecule findest du auf der Molecule-Website. Du musst auch das Molecule-Plugins-Paket und das Docker-Python-SDK installieren.

  • Um einen der NGINX Plus Molecule-Tests auszuführen, musst du zuerst deine NGINX Plus-Lizenz in das Verzeichnis files/license der Rolle kopieren.

    Alternativ kannst du dein NGINX Plus-Repository-Zertifikat und -Schlüssel in die lokale Umgebung hinzufügen. Führe die folgenden Befehle aus, um diese Dateien als base64-kodierte Variablen zu exportieren und die Molecule-Tests auszuführen:

    export NGINX_CRT=$( cat <Pfad zu deiner Zertifikatsdatei> | base64 )
    export NGINX_KEY=$( cat <Pfad zu deiner Schlüsseldatei> | base64 )
    molecule test -s plus
    
  • Zur Erleichterung kannst du Molecule, das Molecule-Plugins-Paket und das Docker-Python-SDK installieren und/oder aktualisieren, indem du den folgenden Befehl auf deinem Ansible-Host ausführst:

    pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_molecule.txt
    

Rolleninstallation

Diese Rolle kann entweder über Ansible Galaxy (den Ansible-Community-Marktplatz) oder durch Klonen dieses Repos installiert werden. Nach der Installation musst du die Rolle in deinem Ansible-Playbook mit dem roles-Schlüsselwort, dem import_role-Modul oder dem include_role-Modul einfügen.

Ansible Galaxy

Um die neueste stabile Version der Rolle auf deinem System zu installieren, verwende:

ansible-galaxy install nginxinc.nginx

Alternativ, wenn du die Rolle bereits installiert hast, kannst du die Rolle auf die neueste Version aktualisieren, indem du Folgendes verwendest:

ansible-galaxy install -f nginxinc.nginx

Um die Rolle zu verwenden, füge die folgende Aufgabe in dein Playbook ein:

- name: NGINX installieren
  ansible.builtin.include_role:
    name: nginxinc.nginx

Git

Um den neuesten Edge-Commit der Rolle von GitHub zu ziehen, verwende:

git clone https://github.com/nginxinc/ansible-role-nginx.git

Um die Rolle zu verwenden, füge die folgende Aufgabe in dein Playbook ein:

- name: NGINX installieren
  ansible.builtin.include_role:
    name: <Pfad/zum/Repo> # z.B. <roles/ansible-role-nginx>, wenn du das Repository im Rollenverzeichnis deines Projekts klonierst

Plattformen

Die NGINX Ansible-Rolle unterstützt fast alle Plattformen, die von NGINX Open Source, NGINX Plus, NGINX Agent und dem NGINX Amplify-Agent unterstützt werden:

NGINX Open Source

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.17
  - 3.18
  - 3.19
  - 3.20
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookworm (12)
Oracle Linux:
  - 8
  - 9
Red Hat:
  - 8
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - mantic (23.10)
  - noble (24.04)

NGINX Plus

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.16
  - 3.17
  - 3.18
  - 3.19
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookworm (12)
FreeBSD:
  - 13
  - 14
Oracle Linux:
  - 8.1+
  - 9
Red Hat:
  - 8.1+
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - noble (24.04)

NGINX Agent

AlmaLinux:
  - 8
  - 9
Alpine:
  - 3.17
  - 3.18
  - 3.19
  - 3.20
Amazon Linux:
  - 2
  - 2023
Debian:
  - bullseye (11)
  - bookwork (12)
FreeBSD:
  - 13
  - 14
Oracle Linux:
  - 8
  - 9
Red Hat:
  - 8
  - 9
Rocky Linux:
  - 8
  - 9
SUSE/SLES:
  - 12
  - 15
Ubuntu:
  - focal (20.04)
  - jammy (22.04)
  - noble (24.04)

NGINX Amplify Agent

Amazon Linux:
  - 2
Debian:
  - buster (10)
  - bullseye (11)
Red Hat:
  - 8
  - 9
Ubuntu:
  - bionic (18.04)
  - focal (20.04)
  - jammy (22.04)

[!WARNUNG] Auf eigenes Risiko kannst du diese Rolle auch verwenden, um NGINX Open Source aus dem Quellcode zu kompilieren, NGINX Open Source auf „kompatiblen“, aber nicht unterstützten Plattformen zu installieren, NGINX über den Paketmanager deiner jeweiligen Distribution zu installieren oder NGINX Open Source auf BSD-Systemen zu installieren.

Rollenvariablen

Diese Rolle hat mehrere Variablen. Die Beschreibungen und Standardwerte für all diese Variablen findest du im defaults/main/ Verzeichnis in den folgenden Dateien:

Name Beschreibung
main.yml NGINX Installationsvariablen
agent.yml NGINX Agent Installationsvariablen
amplify.yml NGINX Amplify Agent Installationsvariablen
bsd.yml BSD Installationsvariablen
logrotate.yml Logrotate-Konfigurationsvariablen
selinux.yml SELinux-Konfigurationsvariablen
systemd.yml Systemd-Konfigurationsvariablen

Ähnlich findest du die Beschreibungen und Standardwerte für voreingestellte Variablen im vars/ Verzeichnis in den folgenden Dateien:

Name Beschreibung
main.yml Liste unterstützter NGINX-Plattformen, Module und Linux-Installationsvariablen

Beispiel-Playbooks

Funktionierende funktionale Playbook-Beispiele findest du im molecule/ Ordner in den folgenden Dateien:

Name Beschreibung
agent/converge.yml Installiere und konfiguriere den NGINX Agent, um sich mit der NGINX One SaaS-Control-Plane auf F5 Distributed Cloud zu verbinden
amplify/converge.yml Installiere und konfiguriere den NGINX Amplify-Agent
default/converge.yml Installiere eine bestimmte Version von NGINX, installiere verschiedene NGINX-unterstützte Module, passe Systemd an und richte Logrotate ein
distribution/converge.yml Installiere NGINX aus dem Paketrepository der Distribution anstelle des Paketrepositories von NGINX
downgrade/converge.yml Downgrade auf eine bestimmte Version von NGINX
downgrade-plus/converge.yml Downgrade auf eine bestimmte Version von NGINX Plus
plus/converge.yml Installiere NGINX Plus und verschiedene NGINX Plus unterstützte Module
source/converge.yml Installiere NGINX aus dem Quellcode
stable/converge.yml Installiere NGINX mit der neuesten stabilen Version
uninstall/converge.yml Deinstalliere NGINX
uninstall-plus/converge.yml Deinstalliere NGINX Plus
upgrade/converge.yml Upgrade NGINX
upgrade-plus/converge.yml Upgrade NGINX Plus
version/converge.yml Installiere eine bestimmte Version von NGINX und verschiedene NGINX-Module

[!HINWEIS] Wenn du dieses Repository über Ansible Galaxy installierst, musst du die include_role-Variable in den Beispiel-Playbooks von ansible-role-nginx auf nginxinc.nginx ändern.

Weitere NGINX Ansible-Sammlungen und -Rollen

Du findest die Ansible NGINX Core Sammlung von Rollen zur Installation und Konfiguration von NGINX Open Source, NGINX Plus und NGINX App Protect hier.

Du findest die Ansible NGINX-Konfigurationsrolle zur Konfiguration von NGINX hier.

Du findest die Ansible NGINX App Protect-Rolle zur Installation und Konfiguration von NGINX App Protect WAF und NGINX App Protect DoS hier.

Du findest die Ansible NGINX Unit-Rolle zur Installation von NGINX Unit hier.

Lizenz

Apache License, Version 2.0

Autoreninformation

Alessandro Fael Garcia

Grzegorz Dzien

Tom Gamull

© F5, Inc. 2018 - 2024

Über das Projekt

Official Ansible role for installing NGINX

Installieren
ansible-galaxy install nginxinc.nginx
Lizenz
apache-2.0
Downloads
3.5M
Besitzer
Welcome to this part of the NGINX open source world. We're constantly expanding our ecosystem designed to help you create the best web and app experience around