nginxinc.nginx
👾 Aidez à améliorer le rôle NGINX Ansible en participant à notre sondage! 👾
Rôle Ansible NGINX
Ce rôle installe NGINX (NGINX Open Source), NGINX Plus, NGINX Agent et/ou l'agent NGINX Amplify sur votre ou vos hôtes cibles.
[!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
NGINX
En fonction de votre cas d'utilisation de NGINX, vous pourriez avoir besoin d'obtenir une licence ou une clé/tokén API avant de pouvoir utiliser le rôle :
Produit | Exigences |
---|---|
NGINX | Aucune |
NGINX Plus | Licence NGINX Plus (à la fois une clé de licence et des fichiers crt) |
NGINX Agent | Un plan de contrôle compatible et (facultativement) un token de plan de données de la console SaaS NGINX One |
NGINX Amplify | Clé API trouvée dans la console SaaS NGINX Amplify |
Ansible
Si vous souhaitez utiliser ce rôle, vous devrez utiliser une version prise en charge d'Ansible core et de Jinja2 ainsi que plusieurs 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/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
Cela garantira également que vous déployez/exécutez ce rôle avec une version complètement testée des packages/collections mentionnés.
Ansible core
Ce rôle est développé et testé avec les versions maintenues d'Ansible core et de Python.
Remarque : Ansible
2.18
ne prend plus en charge le moduleyum
et, par conséquent, n'est pas pris en charge par ce rôle tant qu'Amazon Linux 2 n'est pas en fin de vie.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.2.0 - name: community.crypto # Seulement nécessaire si vous prévoyez d'installer NGINX Plus version: 2.21.1 - name: community.docker # Seulement nécessaire si vous prévoyez d'utiliser Molecule (voir ci-dessous) version: 3.11.0
Vous devrez exécuter ce rôle en tant qu'utilisateur root en utilisant le paramètre
become
d'Ansible. Assurez-vous d'avoir configuré les autorisations appropriées sur vos hôtes cibles.Des instructions sur la façon d'installer Ansible core peuvent être trouvées dans la documentation Ansible.
Des instructions sur la façon d'installer des collections Ansible peuvent être trouvées dans le guide des collections Ansible.
[!TIP] Vous pouvez alternativement installer la distribution communautaire Ansible (ce qui est toujours connu sous le nom d'Ansible -- au lieu d'Ansible core) si vous ne souhaitez 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 installation et/ou votre chemin de mise à jour, vous pourriez utiliser une version obsolète de Jinja2. La version minimale de Jinja2 requise pour que le rôle fonctionne correctement est
3.1
. - Des instructions sur la façon d'installer Jinja2 peuvent être trouvées sur le site Jinja2.
Suite de tests (facultatif)
Si vous souhaitez contribuer à ce rôle, vous devrez également installer Ansible Lint et Molecule.
Ansible Lint (facultatif)
Ansible Lint est utilisé pour vérifier le rôle selon les meilleures pratiques Ansible et les problèmes potentiels Ansible/YAML.
Des instructions sur la façon d'installer Ansible Lint peuvent être trouvées sur le site Ansible Lint.
Une fois installé, utiliser 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/main/.github/workflows/requirements/requirements_ansible_lint.txt
Molecule (facultatif)
Molecule est utilisé pour tester les différentes fonctionnalités du rôle.
Des instructions sur la façon d'installer Molecule peuvent être trouvées sur le site Molecule. Vous devrez également installer le package de plugins Molecule et le SDK Python Docker.
Pour exécuter l'un des tests Molecule pour NGINX Plus, vous devez d'abord copier votre licence NGINX Plus dans le répertoire
files/license
du rôle.Vous pouvez alternativement ajouter votre certificat de dépôt NGINX Plus et votre clé à l'environnement local. Exécutez les commandes suivantes pour exporter ces fichiers sous forme de 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 package 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/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
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
Pour utiliser le rôle, incluez la tâche suivante dans votre playbook :
- name: Installer NGINX
ansible.builtin.include_role:
name: nginxinc.nginx
Git
Pour récupérer le dernier commit de développement du rôle depuis GitHub, utilisez :
git clone https://github.com/nginxinc/ansible-role-nginx.git
Pour utiliser le rôle, incluez la tâche suivante dans votre playbook :
- name: Installer NGINX
ansible.builtin.include_role:
name: <chemin/vers/repo> # par exemple, <roles/ansible-role-nginx> si vous clonez le dépôt dans le répertoire des rôles de votre projet
Plates-formes
Le rôle NGINX Ansible prend en charge presque toutes les plates-formes prises en charge par NGINX Open Source, NGINX Plus, NGINX Agent, et l'agent NGINX Amplify:
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)
- bookworm (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)
Agent NGINX Amplify
Amazon Linux:
- 2
Debian:
- buster (10)
- bullseye (11)
Red Hat:
- 8
- 9
Ubuntu:
- bionic (18.04)
- focal (20.04)
- jammy (22.04)
[!WARNING] À vos risques et périls, vous pouvez également utiliser ce rôle pour compiler NGINX Open Source à partir des sources, installer NGINX Open Source sur des plates-formes "compatibles" mais non prises en charge, installer NGINX à partir du gestionnaire de paquets de votre distribution respective, ou installer NGINX Open Source sur des systèmes BSD.
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 répertoire defaults/main/
dans les fichiers suivants :
Nom | Description |
---|---|
main.yml |
Variables d'installation de NGINX |
agent.yml |
Variables d'installation de l'agent NGINX |
amplify.yml |
Variables d'installation de l'agent NGINX Amplify |
bsd.yml |
Variables d'installation BSD |
logrotate.yml |
Variables de configuration logrotate |
selinux.yml |
Variables de configuration SELinux |
systemd.yml |
Variables de configuration Systemd |
De même, les descriptions et valeurs par défaut des variables prédéfinies peuvent être trouvées dans le répertoire vars/
dans les fichiers suivants :
Nom | Description |
---|---|
main.yml |
Liste des plates-formes supportées par NGINX, modules et variables d'installation Linux |
Exemples de Playbooks
Des exemples de playbook fonctionnels peuvent être trouvés dans le dossier molecule/
dans les fichiers suivants :
Nom | Description |
---|---|
agent/converge.yml |
Installer et configurer l'agent NGINX pour se connecter au plan de contrôle SaaS NGINX One sur F5 Distributed Cloud |
amplify/converge.yml |
Installer et configurer l'agent NGINX Amplify |
default/converge.yml |
Installer une version spécifique de NGINX, installer divers modules NGINX pris en charge, ajuster systemd et configurer logrotate |
distribution/converge.yml |
Installer NGINX à partir du dépôt de paquets de la distribution plutôt que du dépôt de paquets de NGINX |
downgrade/converge.yml |
Rétrograder vers une version spécifique de NGINX |
downgrade-plus/converge.yml |
Rétrograder vers une version spécifique de NGINX Plus |
plus/converge.yml |
Installer NGINX Plus et divers modules pris en charge par NGINX Plus |
source/converge.yml |
Installer NGINX à partir des sources |
stable/converge.yml |
Installer NGINX en utilisant la dernière version stable |
uninstall/converge.yml |
Désinstaller NGINX |
uninstall-plus/converge.yml |
Désinstaller NGINX Plus |
upgrade/converge.yml |
Mettre à jour NGINX |
upgrade-plus/converge.yml |
Mettre à jour NGINX Plus |
version/converge.yml |
Installer une version spécifique de NGINX et divers modules NGINX |
[!NOTE] Si vous installez ce dépôt via Ansible Galaxy, vous devrez remplacer la variable
include_role
dans les exemples de playbooks deansible-role-nginx
parnginxinc.nginx
.
Autres collections et rôles Ansible NGINX
Vous pouvez trouver la collection Ansible NGINX Core de rôles 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 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
Informations sur les auteurs
© F5, Inc. 2018 - 2024
Official Ansible role for installing NGINX
ansible-galaxy install nginxinc.nginx