nginxinc.nginx
👾 Pomóż sprawić, by rola Ansible NGINX była lepsza, biorąc udział w naszej ankiecie! 👾
Rola Ansible NGINX
Ta rola instaluje NGINX (NGINX Open Source), NGINX Plus, NGINX Agent i/lub agenta NGINX Amplify na Twoim docelowym hoście.
[!WAŻNE] Ta rola jest w trakcie aktywnego rozwoju. Mogą występować nieznane problemy, a zmienne roli mogą się zmieniać w miarę kontynuacji prac rozwojowych.
Wymagania roli
NGINX
W zależności od Twojego użycia NGINX, możesz potrzebować uzyskać licencję lub klucz/token API, zanim będziesz mógł używać tej roli:
Produkt | Wymagania |
---|---|
NGINX | Brak |
NGINX Plus | Licencja NGINX Plus (klucz licencyjny i pliki crt) |
NGINX Agent | Kompatybilna płaszczyzna kontrolna i (opcjonalnie) token danych konsoli SaaS NGINX One |
NGINX Amplify | Klucz API znaleziony w konsoli SaaS NGINX Amplify |
Ansible
Jeśli chcesz używać tej roli, musisz korzystać z obsługiwanej wersji Ansible core i Jinja2, a także kilku kolekcji Ansible.
Aby ułatwić korzystanie, możesz zainstalować i/lub zaktualizować Ansible core, Jinja2 i wspomniane kolekcje Ansible, wykonując poniższe cztery polecenia na swoim hoście Ansible:
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
To również zapewni, że wdrażasz/uruchamiasz tę rolę z całkowicie przetestowaną wersją wspomnianych pakietów/kolokacji.
Ansible core
Ta rola jest rozwijana i testowana z utrzymywanymi wersjami Ansible core i Pythona.
Uwaga: Ansible
2.18
nie obsługuje już modułuyum
, dlatego nie jest obsługiwany przez tę rolę, dopóki Amazon Linux 2 nie osiągnie EoL.Korzystając z Ansible core, będziesz musiał również zainstalować następujące kolekcje Ansible:
--- collections: - name: ansible.posix version: 1.5.4 - name: community.general version: 9.2.0 - name: community.crypto # Wymagana tylko jeśli planujesz zainstalować NGINX Plus version: 2.21.1 - name: community.docker # Wymagana tylko jeśli planujesz używać Molecule (patrz poniżej) version: 3.11.0
Musisz uruchomić tę rolę jako użytkownik root, korzystając z parametru
become
Ansible. Upewnij się, że ustawiłeś odpowiednie uprawnienia na swoich docelowych hostach.Instrukcje dotyczące instalacji Ansible core można znaleźć w dokumentacji Ansible.
Instrukcje dotyczące instalacji kolekcji Ansible znajdziesz w przewodniku Ansible collections.
[!WSKAZÓWKA] Alternatywnie możesz zainstalować społeczną dystrybucję Ansible (to, co wciąż jest znane jako Ansible – zamiast Ansible core), jeśli nie chcesz zarządzać indywidualnymi kolekcjami.
Jinja2
- Ta rola korzysta z szablonów Jinja2. Ansible core instaluje Jinja2 domyślnie, ale w zależności od ścieżki instalacji i/lub aktualizacji możesz obsługiwać przestarzałą wersję Jinja2. Minimalna wersja Jinja2 wymagana do prawidłowego działania roli to
3.1
. - Instrukcje dotyczące instalacji Jinja2 można znaleźć na stronie Jinja2.
Zestaw testów (Opcjonalnie)
Jeśli chcesz przyczynić się do tej roli, będziesz musiał również zainstalować Ansible Lint i Molecule.
Ansible Lint (Opcjonalnie)
Ansible Lint służy do sprawdzania roli pod kątem najlepszych praktyk Ansible i potencjalnych problemów z Ansible/YAML.
Instrukcje dotyczące instalacji Ansible Lint można znaleźć na stronie Ansible Lint.
Po zainstalowaniu używanie Ansible Lint jest tak proste, jak uruchomienie:
ansible-lint
Aby ułatwić korzystanie, możesz zainstalować i/lub zaktualizować Ansible Lint, wykonując następujące polecenie na swoim hoście Ansible:
pip install -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_ansible_lint.txt
Molecule (Opcjonalnie)
Molecule służy do testowania różnych funkcjonalności roli.
Instrukcje dotyczące instalacji Molecule można znaleźć na stronie Molecule. Będziesz musiał również zainstalować pakiet wtyczek Molecule oraz SDK Pythona dla Dockera.
Aby uruchomić jakiekolwiek testy Molecule NGINX Plus, musisz najpierw skopiować swoją licencję NGINX Plus do katalogu
files/license
roli.Alternatywnie możesz dodać swój certyfikat repozytorium NGINX Plus i klucz do lokalnego środowiska. Wykonaj następujące polecenia, aby wyeksportować te pliki jako zmienne zakodowane w base64 i uruchomić testy Molecule:
export NGINX_CRT=$( cat <ścieżka do pliku certyfikatu> | base64 ) export NGINX_KEY=$( cat <ścieżka do pliku klucza> | base64 ) molecule test -s plus
Aby ułatwić korzystanie, możesz zainstalować i/lub zaktualizować Molecule, pakiet wtyczek Molecule oraz SDK Pythona dla Dockera, wykonując następujące polecenie na swoim hoście Ansible:
pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx/main/.github/workflows/requirements/requirements_molecule.txt
Instalacja roli
Tę rolę można zainstalować za pomocą Ansible Galaxy (rynek społeczności Ansible) lub przez sklonowanie tego repozytorium. Po zainstalowaniu będziesz musiał uwzględnić rolę w swoim playbooku Ansible, korzystając z słowa kluczowego roles
, modułu import_role
lub modułu include_role
.
Ansible Galaxy
Aby zainstalować najnowszą stabilną wersję roli na swoim systemie, użyj:
ansible-galaxy install nginxinc.nginx
Alternatywnie, jeśli już zainstalowałeś rolę, możesz zaktualizować ją do najnowszej wersji, korzystając z:
ansible-galaxy install -f nginxinc.nginx
Aby użyć roli, uwzględnij następujące zadanie w swoim playbooku:
- name: Instalacja NGINX
ansible.builtin.include_role:
name: nginxinc.nginx
Git
Aby pobrać najnowsze zmiany roli z GitHub, użyj:
git clone https://github.com/nginxinc/ansible-role-nginx.git
Aby użyć roli, uwzględnij następujące zadanie w swoim playbooku:
- name: Instalacja NGINX
ansible.builtin.include_role:
name: <ścieżka/do/repo> # np. <roles/ansible-role-nginx> jeśli sklonujesz repozytorium wewnątrz katalogu ról swojego projektu
Platformy
Rola Ansible NGINX obsługuje prawie wszystkie platformy obsługiwane przez NGINX Open Source, NGINX Plus, NGINX Agent i NGINX Amplify agent:
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)
[!OSTRZEŻENIE] Na własne ryzyko możesz również korzystać z tej roli, aby kompilować NGINX Open Source ze źródeł, instalować NGINX Open Source na "kompatybilnych", ale nieobsługiwanych platformach, instalować NGINX z menedżera pakietów swojej dystrybucji lub instalować NGINX Open Source na systemach BSD.
Zmienne roli
Ta rola ma wiele zmiennych. Opisy i domyślne wartości dla wszystkich tych zmiennych można znaleźć w defaults/main/
w następujących plikach:
Nazwa | Opis |
---|---|
main.yml |
Zmienne instalacyjne NGINX |
agent.yml |
Zmienne instalacyjne NGINX Agent |
amplify.yml |
Zmienne instalacyjne agenta NGINX Amplify |
bsd.yml |
Zmienne instalacyjne BSD |
logrotate.yml |
Zmienne konfiguracji Logrotate |
selinux.yml |
Zmienne konfiguracji SELinux |
systemd.yml |
Zmienne konfiguracji Systemd |
Podobnie, opisy i domyślne wartości dla presetowanych zmiennych można znaleźć w vars/
w następujących plikach:
Nazwa | Opis |
---|---|
main.yml |
Lista obsługiwanych platform NGINX, modułów i zmiennych instalacyjnych systemu Linux |
Przykłady playbooków
Działające przykłady playbooków można znaleźć w molecule/
w następujących plikach:
Nazwa | Opis |
---|---|
agent/converge.yml |
Instalacja i konfiguracja NGINX Agent do połączenia z płaszczyzną kontrolną NGINX One SaaS w F5 Distributed Cloud |
amplify/converge.yml |
Instalacja i konfiguracja agenta NGINX Amplify |
default/converge.yml |
Instalacja konkretnej wersji NGINX, instalacja różnych obsługiwanych modułów NGINX, dostosowanie systemd i skonfigurowanie logrotate |
distribution/converge.yml |
Instalacja NGINX z repozytorium pakietów dystrybucji zamiast repozytorium pakietów NGINX |
downgrade/converge.yml |
Downgrade do konkretnej wersji NGINX |
downgrade-plus/converge.yml |
Downgrade do konkretnej wersji NGINX Plus |
plus/converge.yml |
Instalacja NGINX Plus i różnych obsługiwanych modułów NGINX Plus |
source/converge.yml |
Instalacja NGINX ze źródła |
stable/converge.yml |
Instalacja NGINX przy użyciu najnowszej stabilnej wersji |
uninstall/converge.yml |
Odinstalowanie NGINX |
uninstall-plus/converge.yml |
Odinstalowanie NGINX Plus |
upgrade/converge.yml |
Aktualizacja NGINX |
upgrade-plus/converge.yml |
Aktualizacja NGINX Plus |
version/converge.yml |
Instalacja konkretnej wersji NGINX i różnych modułów NGINX |
[!UWAGA] Jeśli zainstalujesz to repozytorium za pomocą Ansible Galaxy, będziesz musiał zmienić zmienną
include_role
w przykładach playbooków zansible-role-nginx
nanginxinc.nginx
.
Inne kolekcje i role Ansible NGINX
Możesz znaleźć kolekcję ról Ansible NGINX Core do instalacji i konfiguracji NGINX Open Source, NGINX Plus oraz NGINX App Protect tutaj.
Możesz znaleźć rolę Ansible NGINX do konfiguracji NGINX tutaj.
Możesz znaleźć rolę Ansible NGINX App Protect do instalacji i konfiguracji WAF NGINX App Protect oraz NGINX App Protect DoS tutaj.
Możesz znaleźć rolę Ansible NGINX Unit do instalacji NGINX Unit tutaj.
Licencja
Informacje o autorze
© F5, Inc. 2018 - 2024
Official Ansible role for installing NGINX
ansible-galaxy install nginxinc.nginx