nginxinc.nginx_management_suite

Molecule CI/CD License

Rola Ansible do Zarządzania NGINX

Ta rola instaluje wyłącznie Zestaw Zarządzania NGINX (NMS).

Uwaga: Ta rola jest wciąż w aktywnym rozwoju. Mogą występować nieznane problemy, a zmienne roli mogą się zmieniać w miarę postępu prac.

Wymagania

  1. Pliki licencyjne Zestawu Zarządzania NGINX
  2. Rola Ansible NGINX (nginxinc.nginx)

Pliki Certyfikatów Zestawu Zarządzania NGINX

Aby zainstalować NMS, konieczne są pliki certyfikatów NMS do uzyskania dostępu do repozytorium. Zaloguj się do MyF5 lub podążaj za linkiem w wiadomości e-mail aktywacyjnej, aby pobrać pliki repozytoriów NMS .crt i .key:

  • nginx-mgmt-suite-trial.key
  • nginx-mgmt-suite-trial.crt

UWAGA: Upewnij się, że zmienisz nazwy tych plików na nginx-repo.key i nginx-repo.crt.

Instancja NGINX

NMS wymaga instancji NGINX, która może być NGINX OSS lub NGINX Plus jako frontend. Ta rola obsługuje to, definiując zależność do Roli Ansible NGINX, o nazwie nginxinc.nginx. Z powodu tej zależności możesz ustawiać zmienne związane z nginxinc.nginx gdy używasz tej roli. Na przykład, nginx_type jest zmienną nginxinc.nginx, która może być ustawiona w sposób, w jaki ustawia się inne zmienne Ansible. Jeśli twój playbook definiuje nginx_type: plus, ta rola NMS wywoła rolę nginxinc.nginx, która zainstaluje NGINX Plus. Szczegóły znajdziesz w Roli Ansible NGINX.

Główna różnica pomiędzy użyciem NGINX OSS lub NGINX Plus zależy od tego, którą opcję autoryzacji planujesz użyć.

Ansible

  • Ta rola jest rozwijana i testowana z użyciem utrzymywanych wersji rdzenia Ansible (po 2.12).

  • Ta rola została opracowana i przetestowana z użyciem nginxinc.nginx w wersji 0.24.0.

    • AKTUALIZACJA 24.06.24: Użyj najnowszej wersji nginxinc.nginx, przykład requirements.yml pokazany tutaj
  • Używając tej roli, musisz również zainstalować poniższe kolekcje. Dodatkowe informacje dotyczące instalacji tych kolekcji znajdują się w sekcji Instalacja.

    • ansible.posix
    • community.general
    • community.crypto
    • community.docker (Wymagane tylko, jeśli planujesz używać Molecule)
  • Musisz uruchomić tę rolę jako użytkownik root, używając parametru Ansible become. Upewnij się, że ustawiłeś odpowiednie uprawnienia na docelowych hostach.

  • Instrukcje dotyczące instalacji Ansible można znaleźć na stronie Ansible.

Jinja2

  • Ta rola używa szablonów Jinja2. Rdzeń Ansible domyślnie instaluje Jinja2, ale w zależności od twojej instalacji i/lub ścieżki aktualizacji, możesz uruchamiać nieaktualną wersję. Minimalna wymagana wersja Jinja2 dla prawidłowego działania roli to 3.1.
  • Instrukcje dotyczące instalacji Jinja2 znaleźć można na stronie Jinja2.

Molecule (Opcjonalne)

Chcesz to wykorzystać, jeśli planujesz wnosić wkład w tę rolę ansible.

  • Molecule służy do testowania różnych funkcjonalności roli. Zalecana wersja Molecule do testowania tej roli to 4.0.1.

  • Instrukcje dotyczące instalacji Molecule można znaleźć na stronie Molecule. Będziesz musiał również zainstalować sterownik Docker dla Molecule.

  • Aby uruchomić testy Molecule, musisz skopiować swoją licencję NMS do folderu roli files/license.

    Możesz alternatywnie dodać certyfikat i klucz repozytorium Zestawu Zarządzania NGINX do lokalnego środowiska. Uruchom poniższe polecenia, aby wyeksportować te pliki jako zmienne kodowane w base64 i wykonać testy Molecule:

    export NGINX_CRT=$( cat <path to your certificate file> | base64 )
    export NGINX_KEY=$( cat <path to your key file> | base64 )
    molecule test -s plus
    

Użycie

Wykonaj poniższe kroki, aby zainstalować Zestaw Zarządzania NGINX (nms) przy użyciu tej roli ansible.

Utwórz Plik Inwentarza

Utwórz plik inwentarza o nazwie inventory, z następującą zawartością.

[nms]
<hostname> ansible_user=<adminUserName>  ansible_become=yes

Zainstaluj Wymagane Role i Kolekcje

Zainstaluj wymaganą paczkę, której potrzebuje ta rola. Utwórz plik requirements.yml z poniższą zawartością.

---
roles:
  - name: nginxinc.nginx_management_suite
    version: 0.3.0
collections:
  - name: ansible.posix
    version: 1.5.1
  - name: community.general
    version: 6.4.0
  - name: community.crypto
    version: 2.11.0
  - name: community.docker # Wymagany tylko, jeśli planujesz używać Molecule (patrz poniżej)
    version: 3.4.2

Użyj poniższego polecenia do instalacji roli ansible i kolekcji.

ansible-galaxy install -r requirements.yml

Jeśli już je masz zainstalowane, ale potrzebujesz zaktualizować do nowszych wersji, użyj poniższego polecenia.

ansible-galaxy install -fr requirements.yml

Przenieś Certyfikaty NGINX do Znanej Lokalizacji

W tym przykładzie przeniesiemy certyfikaty NGINX do tego samego katalogu, w którym utworzymy plik playbook do instalacji NMS.

Utwórz Playbook

Utwórz plik playbook o nazwie nms-install.yml, korzystając z poniższego przykładu. Tutaj instalujemy NMS z NGINX Plus.

Upewnij się, że określisz ścieżkę, w której znajdują się twoje certyfikaty NGINX. W tym przykładzie są one w tej samej ścieżce co ten playbook.

- name: Instalacja Zestawu Zarządzania NGINX
  hosts: nms

  tasks:
    - name: Instalacja NMS
      ansible.builtin.include_role:
        name: nginxinc.nginx_management_suite
      vars:
        nms_setup: install
        nms_user_name: admin
        nms_user_passwd: default
        nginx_type: plus
        nginx_selinux: true
        nginx_selinux_enforcing: false
        nginx_license:
          certificate: nginx-repo.crt
          key: nginx-repo.key

Zainstaluj NMS

Uruchom poniższe polecenie, aby wykonać playbook, który zainstaluje NMS.

ansible-playbook -i inventory nms-adm-install.yml

Korzystanie z Najnowszej Wersji Zestawu NMS Roli Ansible, znanej jako gałąź main

Istnieje kilka metod, jeśli chcesz używać najnowszej wersji tej roli.

  1. Użyj następującego fragmentu w swoim pliku requirements.yml.

    roles:
      - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git
        version: main
    
  2. Użyj git clone https://github.com/nginxinc/ansible-role-nginx-management-suite.git, aby pobrać najnowszy zatwierdzony commit (gałąź main) roli z GitHub.

Platformy

Ta rola Ansible obsługuje wszystkie platformy wspierane przez Zestaw Zarządzania NGINX:

Zestaw Zarządzania NGINX

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

Uwaga: Możesz także użyć tej roli do zainstalowania Zestawu Zarządzania NGINX na kompatybilnych, ale nieobsługiwanych platformach na własne ryzyko.

Zmienne Roli

Ta rola ma wiele zmiennych. Opisy i wartości domyślne dla wszystkich tych zmiennych można znaleźć w folderze defaults/main/ w następującym pliku:

Nazwa Opis
main.yml Zmienne instalacji NMS

Podobnie, opisy i wartości domyślne dla predefiniowanych zmiennych można znaleźć w folderze vars/ w następującym pliku:

Nazwa Opis
main.yml Lista wspieranych zmiennych instalacji NMS

Przykłady Playbooków

Działające przykłady playbooków można znaleźć w folderze molecule/ w następujących plikach:

Nazwa Opis
default/converge.yml Instalacja NGINX OSS i NMS
plus/converge.yml Instalacja NGINX Plus i NMS
upgrade/converge.yml Uaktualnienie NMS
modules/converge.yml Instalacja NGINX OSS i NMS oraz modułu Menedżera Łączności z API
service-stopped/converge.yml Instalacja NGINX OSS i NMS, umożliwiająca działanie usług w wybranym stanie

Zwróć uwagę, że jeśli zainstalujesz to repozytorium przez Ansible Galaxy, musisz zastąpić zmienną roli w przykładowych playbookach z ansible-role-nginx-management-suite na nginxinc.nginx_management_suite.

Inne Kolekcje i Role NGINX Ansible

Możesz znaleźć kolekcję ról Ansible NGINX Core do instalacji i konfiguracji NGINX Open Source, NGINX Plus i NGINX App Protect tutaj.

Możesz znaleźć rolę Ansible NGINX do konfiguracji NGINX tutaj.

Możesz znaleźć rolę Ansible NGINX Unit do instalacji NGINX Unit tutaj.

Licencja

Licencja Apache, Wersja 2.0

Informacje o Autorach

John Wong

Alessandro Fael Garcia

© F5, Inc. 2023

O projekcie

Official Ansible role for the NGINX Management Suite

Zainstaluj
ansible-galaxy install nginxinc.nginx_management_suite
Licencja
apache-2.0
Pobrania
3.1k
Właściciel
We're constantly expanding our ecosystem to help you create the best web and app experience around