nginxinc.nginx_management_suite

Molecule CI/CD License

Rôle Ansible pour la Suite de Gestion NGINX

Ce rôle installe uniquement la Suite de Gestion NGINX (NMS).

Remarque : Ce rôle est encore en développement actif. Il peut y avoir des problèmes non identifiés et les variables du rôle peuvent changer au fur et à mesure que le développement avance.

Exigences

  1. Fichiers de licence de la Suite de Gestion NGINX
  2. Rôle Ansible NGINX (nginxinc.nginx)

Fichiers de certificat de la Suite de Gestion NGINX

L'installation de la NMS nécessite les fichiers de certificat NMS pour accéder au dépôt. Connectez-vous à MyF5 ou suivez le lien dans l'e-mail d'activation d'essai pour télécharger les fichiers .crt et .key du dépôt NMS :

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

REMARQUE : Assurez-vous de renommer ces fichiers en nginx-repo.key et nginx-repo.crt, respectivement.

Instance NGINX

La NMS nécessite une instance NGINX, soit NGINX OSS soit NGINX Plus, uniquement comme frontend. Ce rôle gère cela en définissant une dépendance au Rôle Ansible NGINX, appelé nginxinc.nginx. En raison de cette dépendance, vous pouvez définir des variables liées à nginxinc.nginx lorsque vous utilisez ce rôle. Par exemple, nginx_type est une variable nginxinc.nginx qui peut être définie comme vous le feriez avec n'importe quelle autre variable Ansible. Donc, si votre playbook définit nginx_type: plus, ce rôle NMS appellera le rôle nginxinc.nginx qui installera NGINX Plus. Consultez le Rôle Ansible NGINX pour plus de détails.

La principale différence entre l'utilisation de NGINX OSS ou NGINX Plus dépend de l' Option d'authentification que vous prévoyez d'utiliser.

Ansible

  • Ce rôle est développé et testé avec des versions maintenues du cœur d'Ansible (au-dessus de 2.12).

  • Ce rôle a été développé et testé avec la version 0.24.0 de nginxinc.nginx.

    • MISE À JOUR 24/06/24 : Utilisez la version nginxinc.nginx de l'edge, exemple de requirements.yml montré ici.
  • Lors de l'utilisation de ce rôle, vous devrez également installer les collections suivantes. Des informations supplémentaires sur l'installation de ces collections se trouvent ci-dessous dans la section Installation.

    • ansible.posix
    • community.general
    • community.crypto
    • community.docker (uniquement nécessaire si vous prévoyez d'utiliser Molecule)
  • Vous devez exécuter ce rôle en tant qu'utilisateur root en utilisant le paramètre become d'Ansible. Assurez-vous que vous avez configuré les permissions appropriées sur vos hôtes cibles.

  • Les instructions sur la façon d'installer Ansible se trouvent sur le site web d'Ansible.

Jinja2

  • Ce rôle utilise des modèles Jinja2. Le cœur d'Ansible installe Jinja2 par défaut, mais selon votre installation et/ou votre mise à niveau, vous pourriez utiliser une version obsolète. La version minimale de Jinja2 requise pour que le rôle fonctionne correctement est 3.1.
  • Les instructions sur la façon d'installer Jinja2 se trouvent sur le site web de Jinja2.

Molecule (Optionnel)

Vous voudrez utiliser cela si vous faites des contributions à ce rôle ansible.

  • Molecule est utilisé pour tester les différentes fonctionnalités du rôle. La version recommandée de Molecule pour tester ce rôle est 4.0.1.

  • Les instructions sur la façon d'installer Molecule se trouvent sur le site web de Molecule. Vous devrez également installer le pilote Docker de Molecule.

  • Pour exécuter les tests Molecule, vous devez copier votre licence NMS dans le dossier files/license du rôle.

    Vous pouvez alternativement ajouter votre certificat et votre clé de dépôt de la Suite de Gestion NGINX à l'environnement local. Exécutez les commandes suivantes pour exporter ces fichiers en tant que variables encodées en base64 et exécutez les tests Molecule :

    export NGINX_CRT=$( cat <chemin vers votre fichier de certificat> | base64 )
    export NGINX_KEY=$( cat <chemin vers votre fichier de clé> | base64 )
    molecule test -s plus
    

Utilisation

Suivez ces étapes pour installer la Suite de Gestion NGINX (nms) en utilisant ce rôle ansible.

Créer le fichier d'inventaire

Vous voudrez créer un fichier d'inventaire, inventory, avec le contenu suivant.

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

Installer les rôles et collections requis

Vous voudrez installer les exigences de package dont ce rôle a besoin. Créez un fichier requirements.yml avec le contenu ci-dessous.

---
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 # Uniquement requis si vous prévoyez d'utiliser Molecule (voir ci-dessous)
    version: 3.4.2

Utilisez la commande suivante pour installer le rôle ansible et les collections.

ansible-galaxy install -r requirements.yml

Si vous avez déjà installé ces derniers mais devez les mettre à jour vers de nouvelles versions, utilisez la commande suivante.

ansible-galaxy install -fr requirements.yml

Déplacer les certificats NGINX vers un emplacement connu

Dans cet exemple, nous allons déplacer les certificats NGINX vers le même répertoire où je vais créer le fichier de playbook d'installation de la NMS.

Créer le playbook

Créez un fichier de playbook, nms-install.yml, avec l'exemple suivant. Ici, nous installons la NMS avec NGINX Plus.

Assurez-vous de spécifier le chemin où vos certificats NGINX sont situés. Dans l'exemple ici, ils sont dans le même chemin que ce playbook.

- name: Installer la Suite de Gestion NGINX
  hosts: nms

  tasks:
    - name: Installer la 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

Installer la NMS

Exécutez la commande suivante pour exécuter le playbook qui installera la NMS.

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

Utilisation de la dernière version de la NMS Ansible Role, aka la branche main

Il existe plusieurs méthodes si vous souhaitez utiliser la dernière version de ce rôle.

  1. Utilisez le snippet suivant dans votre requirement.yml.

    roles:
      - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git
        version: main
    
  2. Utilisez git clone https://github.com/nginxinc/ansible-role-nginx-management-suite.git pour récupérer le dernier commit de la branche principale du rôle depuis GitHub.

Plateformes

Ce rôle Ansible prend en charge toutes les plateformes supportées par la Suite de Gestion NGINX :

Suite de Gestion NGINX

Amazon Linux 2:
  - n'importe lequel
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)

Remarque : Vous pouvez également utiliser ce rôle pour installer la Suite de Gestion NGINX sur des plateformes compatibles mais non prises en charge à vos propres risques.

Variables du rôle

Ce rôle possède plusieurs variables. Les descriptions et valeurs par défaut de toutes ces variables peuvent être trouvées dans le dossier defaults/main/ dans le fichier suivant :

Nom Description
main.yml Variables d'installation de la NMS

De même, les descriptions et valeurs par défaut des variables prédéfinies peuvent être trouvées dans le dossier vars/ dans le fichier suivant :

Nom Description
main.yml Liste des variables d'installation prises en charge pour la NMS

Exemples de Playbooks

Des exemples de playbook fonctionnels peuvent être trouvés dans le dossier molecule/ dans les fichiers suivants :

Nom Description
default/converge.yml Installer NGINX OSS et NMS
plus/converge.yml Installer NGINX Plus et NMS
upgrade/converge.yml Mettre à jour NMS
modules/converge.yml Installer NGINX OSS, NMS & le module de Gestion de Connectivité API
service-stopped/converge.yml Installer NGINX OSS et NMS, autoriser les services à être dans l'état choisi

Notez que si vous installez ce dépôt via Ansible Galaxy, vous devrez remplacer la variable du rôle dans les exemples de playbooks de ansible-role-nginx-management-suite à nginxinc.nginx_management_suite.

Autres Collections et Rôles Ansible NGINX

Vous pouvez trouver la collection de rôles Ansible NGINX Core pour installer et configurer NGINX Open Source, NGINX Plus, et NGINX App Protect ici.

Vous pouvez trouver le rôle de configuration Ansible NGINX pour configurer NGINX ici.

Vous pouvez trouver le rôle Ansible NGINX Unit pour installer NGINX Unit ici.

Licence

Licence Apache, Version 2.0

Informations sur l'auteur

John Wong

Alessandro Fael Garcia

© F5, Inc. 2023

À propos du projet

Official Ansible role for the NGINX Management Suite

Installer
ansible-galaxy install nginxinc.nginx_management_suite
Licence
apache-2.0
Téléchargements
2.1k
Propriétaire
We're constantly expanding our ecosystem to help you create the best web and app experience around