ansibleguy.sw_ansible_webui
Rôle Ansible - Ansible-WebUI
Rôle pour provisionner une interface Web de base pour utiliser Ansible sur un serveur Linux.
AVERTISSEMENT : Cette WebUI est un projet communautaire non officiel ! Ne la confondez pas avec le produit Ansible standard !
Logs de Molecule : Court, Complet
Testé :
- Debian 12
Installation
# dernière version
ansible-galaxy role install git+https://github.com/ansibleguy/sw_ansible_webui
# depuis galaxy
ansible-galaxy install ansibleguy.sw_ansible_webui
# ou vers un chemin de rôle personnalisé
ansible-galaxy install ansibleguy.sw_ansible_webui --roles-path ./roles
# installer les dépendances
ansible-galaxy install -r requirements.yml
Utilisation
Configuration
Définissez la configuration selon vos besoins :
Configuration minimale :
ansible_webui:
config:
AW_HOSTNAMES: 'ansible.template.ansibleguy.net'
Options :
ansible_webui:
manage:
webserver: true # installer et configurer un nginx local avec un certificat min-ca
backup: true # installer un service pour une sauvegarde locale quotidienne de la base de données (si la base de données est gérée)
user: true # créer un utilisateur de service 'ansible-webui'
ansible_cfg: true # provisionner /home/ansible-webui/ansible.cfg
requirements: # exigences dont votre environnement d'exécution a besoin
pip: ['httpx'] # modules python3
collections: ['community.general'] # collections ansible (si persistent_requirements=true)
roles: [] # rôles ansible (si persistent_requirements=true)
config: # pour les options, voir : https://webui.ansibleguy.net/en/latest/usage/4_config.html#settings
AW_HOSTNAMES: 'ansible.template.ansibleguy.net'
# AW_SECRET: '...' # minimum 30 caractères ; un aléatoire sera utilisé si aucun n'est fourni
ansible_config: # /home/ansible-webui/ansible.cfg => si manage.ansible_cfg=true; voir : https://docs.ansible.com/ansible/latest/reference_appendices/config.html
defaults: # section
remote_port: 48322
vault_id_match: 'webui'
diff:
context: 2
nginx:
... # configurer les paramètres du serveur web => voir : https://github.com/ansibleguy/infra_nginx
Vous pouvez utiliser 'ansible-vault' pour chiffrer vos mots de passe :
ansible-vault encrypt_string
Exécution
Exécutez le playbook :
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
Il existe également quelques tags utiles disponibles :
- config
- webserver
Pour déboguer des erreurs, vous pouvez définir la variable 'debug' au moment de l'exécution :
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Fonctionnalités
Installation de paquets
- Python3, Python3-PIP, Python3-Virtualenv, Git, Git-LFS
- AnsibleGuy-WebUI avec ses dépendances en modules Python3
Configuration
Environnement virtuel utilisé (
/home/ansible-webui/venv
)Configuration par défaut :
- Nettoyage des logs de plus de 180 jours
- Rétention des sauvegardes de 30 jours
Options par défaut :
- Installation de modules Python3 courants ('jmespath', 'netaddr', 'passlib', 'pywinrm', 'requests', 'cryptography')
- Sauvegardes locales quotidiennes
- Auto-Mise à jour de l'application et des exigences au démarrage du service
- Proxy Nginx
- Création d'un utilisateur de service
Informations
Remarque : ce rôle ne prend actuellement en charge que les systèmes basés sur Debian
Remarque : La plupart des fonctionnalités du rôle peuvent être activées ou désactivées.
Pour toutes les options disponibles, consultez le fichier de configuration par défaut situé dans le fichier principal de configuration !
Avertissement : Chaque paramètre/variable que vous fournissez ne sera pas vérifié pour sa validité. Une mauvaise configuration pourrait casser le rôle !
Ansible role to provision a basic WebUI for using Ansible on a linux server
ansible-galaxy install ansibleguy.sw_ansible_webui