nginxinc.nginx_config

Ansible Galaxy Molecule CI/CD License Statut du projet : Actif – Le projet a atteint un état stable, utilisable et est en cours de développement actif. Support de la communauté Convention des contributeurs

👾 Aidez à améliorer le rôle Ansible de configuration NGINX en participant à notre sondage! 👾

Rôle Ansible de configuration NGINX

Ce rôle configure NGINX Open Source et NGINX Plus sur votre hôte cible.

[!IMPORTANT] Ce rôle est encore en cours de 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 du développement.

Exigences du rôle

Ansible

Si vous souhaitez utiliser ce rôle, vous aurez besoin d'une version prise en charge d'Ansible core et de Jinja2 ainsi que de quelques collections Ansible.

Pour faciliter l'utilisation, vous pouvez installer et/ou mettre à jour Ansible core, Jinja2 et les collections Ansible mentionnées en exécutant les quatre commandes suivantes sur votre hôte Ansible :

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

Cela garantira également que vous déployez/exécutez ce rôle avec une version entièrement testée des packages/collections mentionnés.

Ansible core

  • Ce rôle est développé et testé avec des versions maintenues d'Ansible core et Python.

  • Lorsque vous utilisez Ansible core, vous devrez également installer les collections Ansible suivantes :

    ---
    collections:
      - name: ansible.posix
        version: 1.5.4
      - name: community.general
        version: 9.0.1
      - name: community.docker # Seulement requis si vous prévoyez d'utiliser Molecule (voir ci-dessous)
        version: 3.10.3
    
  • Les instructions sur la manière d'installer Ansible core peuvent être trouvées dans la documentation Ansible.

  • Les instructions sur la manière d'installer les collections Ansible peuvent être trouvées dans le guide des collections Ansible.

[!TIP] Vous pouvez également installer la distribution communautaire Ansible (ce qui est encore connu sous le nom d'Ansible -- au lieu d'Ansible core) si vous ne voulez pas gérer des collections individuelles.

Jinja2

  • Ce rôle utilise des modèles Jinja2. Ansible core installe Jinja2 par défaut, mais selon votre chemin d'installation et/ou de mise à jour, vous pourriez avoir une version obsolète de Jinja2. La version minimale de Jinja2 requise pour que le rôle fonctionne correctement est 3.1.
  • Les instructions sur la manière d'installer Jinja2 peuvent être trouvées sur le site Jinja2.

Suite de tests (Optionnel)

Si vous souhaitez contribuer à ce rôle, vous devrez également installer Ansible Lint et Molecule.

Ansible Lint (Optionnel)

  • Ansible Lint est utilisé pour vérifier le rôle à la fois pour les meilleures pratiques Ansible et les problèmes potentiels Ansible/YAML.

  • Les instructions sur la manière d'installer Ansible Lint peuvent être trouvées sur le site Ansible Lint.

  • Une fois installé, l'utilisation d'Ansible Lint est aussi simple que d'exécuter :

    ansible-lint
    
  • Pour faciliter l'utilisation, vous pouvez installer et/ou mettre à jour Ansible Lint en exécutant la commande suivante sur votre hôte Ansible :

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

Molecule (Optionnel)

  • Molecule est utilisé pour tester les différentes fonctionnalités du rôle.

  • Les instructions sur la manière d'installer Molecule peuvent être trouvées sur le site Molecule. Vous devrez également installer le paquet de plugins Molecule et le SDK Python Docker.

  • Pour exécuter les tests de configuration NGINX Plus/App Protect dans Molecule, vous devez copier votre licence NGINX Plus/App Protect dans le répertoire Molecule common/files/license du rôle.

    Vous pouvez également ajouter le certificat et la clé de votre dépôt NGINX Plus/App Protect à 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
    
  • Pour faciliter l'utilisation, vous pouvez installer et/ou mettre à jour Molecule, le paquet de plugins Molecule et le SDK Python Docker en exécutant la commande suivante sur votre hôte Ansible :

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

Installation du rôle

Ce rôle peut être installé via Ansible Galaxy (le marché communautaire Ansible) ou en clonant ce dépôt. Une fois installé, vous devrez inclure le rôle dans votre playbook Ansible en utilisant le mot-clé roles, le module import_role ou le module include_role.

Ansible Galaxy

Pour installer la dernière version stable du rôle sur votre système, utilisez :

ansible-galaxy install nginxinc.nginx_config

Alternativement, si vous avez déjà installé le rôle, vous pouvez mettre à jour le rôle vers la dernière version en utilisant :

ansible-galaxy install -f nginxinc.nginx_config

Pour utiliser le rôle, incluez la tâche suivante dans votre playbook :

- name: Configurer NGINX
  ansible.builtin.include_role:
    name: nginxinc.nginx_config

Git

Pour récupérer le dernier commit de l'edge du rôle depuis GitHub, utilisez :

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

Pour utiliser le rôle, incluez la tâche suivante dans votre playbook :

- name: Configurer NGINX
  ansible.builtin.include_role:
    name: <chemin/du/depot> # par exemple <roles/ansible-role-nginx-config> si vous clonez le dépôt dans le répertoire des rôles de votre projet

Plateformes

Le rôle de configuration NGINX Ansible prend en charge toutes les plateformes prises en charge par NGINX Open Source et NGINX Plus.

[!NOTE] Vous devriez être en mesure d'utiliser ce rôle pour configurer n'importe quelle installation de NGINX -- peu importe où/comment elle a été installée -- à vos propres risques. Tout bug potentiel avec le rôle concernant des méthodes/plateformes d'installation non prises en charge sera traité de manière best effort et pourrait être tout simplement rejeté.

Variables du rôle

Ce rôle a plusieurs variables. Les descriptions et valeurs par défaut de toutes ces variables peuvent être trouvées dans le dossier defaults/main/ dans les fichiers suivants :

Nom Description
main.yml Variables de configuration simples NGINX
selinux.yml Configurer SELinux pour autoriser les connexions nécessaires à votre configuration NGINX
template.yml Variables du modèle de configuration NGINX
upload.yml Variables de téléchargement de configuration/HTML/SSL NGINX

Exemples de playbooks

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

Nom Description
api/converge.yml Configurer l'API NGINX Plus et le tableau de bord des métriques en direct
cleanup_config/converge.yml Nettoyer une configuration NGINX
complete/converge.yml Tester que toutes les directives NGINX sont correctement modélisées
complete_plus/converge.yml Tester que toutes les directives spécifiques à NGINX Plus sont correctement modélisées
default/converge.yml Configurer NGINX avec une configuration aussi proche que possible de la configuration par défaut
push_config/converge.yml Pousser une configuration NGINX préexistante depuis votre système vers votre instance NGINX
reverse_proxy/converge.yml Configurer NGINX en tant que proxy inverse entre deux serveurs web
stub_status/converge.yml Configurer les métriques de statut stub d'NGINX Open Source
web_server/converge.yml Configurer NGINX en tant que serveur web

[!NOTE] Si vous installez ce dépôt via Ansible Galaxy, vous devrez remplacer la variable include_role dans les playbooks d'exemple de ansible-role-nginx-config à nginxinc.nginx_config.

Autres collections et rôles NGINX Ansible

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 Ansible NGINX pour installer NGINX OSS et NGINX Plus ici.

Vous pouvez trouver le rôle Ansible NGINX App Protect pour installer et configurer NGINX App Protect WAF et NGINX App Protect DoS 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

Alessandro Fael Garcia

© F5, Inc. 2020 - 2024

À propos du projet

Official Ansible role for configuring NGINX

Installer
ansible-galaxy install nginxinc.nginx_config
Licence
apache-2.0
Téléchargements
1.6M
Propriétaire
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