nginxinc.nginx
👾 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 dasyum
-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 vonansible-role-nginx
aufnginxinc.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
Autoreninformation
© F5, Inc. 2018 - 2024
Official Ansible role for installing NGINX
ansible-galaxy install nginxinc.nginx