laxathom.passbolt

Passbolt

Rôle Ansible pour installer et configurer l'application Passbolt sur une distribution basée sur RHEL/CentOS (pour l’instant).

Variables du Rôle

Voici les variables configurables pour ce rôle, qui sont pré-définies dans defaults/main.yml avec des valeurs par défaut. Vous devrez peut-être les remplacer en fonction de vos besoins. La plupart d'entre elles ne conviennent pas à un environnement de production.

Variables de base

passbolt_version: # Définit la version de l'application
passbolt_archive: # Définit le nom complet de l'archive de l'application
passbolt_dl_url: # Définit l'URL de téléchargement pour récupérer et installer l'application

Variables liées à la configuration de PHP-fpm

passbolt_php_fpm_includedir: # Définit le répertoire de configuration des pools php-fpm
passbolt_php_fpm_pool: # Définit le chemin absolu de configuration du pool de l'application
passbolt_php_fpm_user: # Définit l'utilisateur sous lequel php-fpm exécutera l'application
passbolt_php_fpm_group: # Définit le groupe sous lequel php-fpm exécutera l'application
passbolt_php_fpm_owner: # Définit le propriétaire du socket php-fpm
passbolt_php_fpm_group: # Définit le groupe du socket php-fpm
passbolt_php_fpm_mode: # Définit le mode du socket php-fpm (principalement si un socket basé sur un fichier est utilisé)
passbolt_php_fpm_whitelist: # Définit une liste d'IP/nom d'hôte autorisés à communiquer avec php-fpm
passbolt_php_fpm_listen: # Définit la méthode du socket php-fpm (basé sur un fichier, hôte:port, etc.)
passbolt_php_fpm_listen_port: # Définit le port du socket php-fpm lorsqu'une URI basée sur `unix:` n'est pas utilisée

Variable liée à la configuration de la base de données

passbolt_dbhost: # Définit le nom d'hôte du serveur de base de données à connecter
passbolt_dbuser: # Définit l'utilisateur de la base de données
passbolt_dbpass: # Définit le mot de passe de la base de données
passbolt_dbname: # Définit le nom de la base de données à connecter

Variables liées à la configuration SMTP

passbolt_smtp_host: # Définit le nom d'hôte du serveur SMTP à connecter
passbolt_smtp_port: # Définit le port du serveur SMTP
passbolt_smtp_auth: # Définit la méthode d'authentification SMTP (TLS, SSL). Laissez vide pour aucun.
passbolt_smtp_user: # Définit l'utilisateur SMTP (si l'authentification est réglée)
passbolt_smtp_pass: # Définit le mot de passe SMTP (si l'authentification est réglée)
passbolt_smtp_timeout: # Définit le délai d'attente de connexion SMTP autorisé
passbolt_smtp_sender: # Définit le nom de l'expéditeur
passbolt_smtp_sender_email: # Définit l'email de l'expéditeur

passbolt_error_report: # Définit si l'application doit envoyer toute erreur SQL capturée
passbolt_error_report_email: # Définit le destinataire pour l'envoi de notification

Dépendances

  • geerlingguy.repo-remi Quand la variable passbolt_install_php est vraie.

  • jdauphant.nginx Quand la variable passbolt_install_webserver est vraie.

  • geerlingguy.php Quand la variable passbolt_install_php est vraie.

  • geerlingguy.mysql Quand la variable passbolt_install_dbserver est vraie.

Notez que si vous parvenez à utiliser d'autres rôles que ceux ci-dessus, envisagez de définir ces variables sur False et assurez-vous de les exécuter et de les déployer en premier.

De plus, vous pouvez remplacer le serveur web NGINX par Apache ou autre si c'est ce que votre infrastructure utilise. Ce rôle ne comprend pas de configuration web prédéfinie. Elle est définie par les variables NGINX fournies par ce rôle (voir tests/test.yml pour plus de détails).

Exemple de Playbook

    - hosts: vault-servers
      vars:
        nginx_sites:
            passbolt:
                - listen 443 ssl
                - server_name vault.domain.tld
                - ssl_certificate     /etc/ssl/domain.tld.cert
                - ssl_certificate_key /etc/ssl/domain.tld.key
                - server_tokens off
                - root "{{ passbolt_webroot }}"
                - location / { try_files $uri /index.php$is_args$args; }
                - location ~ \.php(/|$) {
                  fastcgi_pass {{ passbolt_php_fpm_listen }};
                  fastcgi_split_path_info ^(.+\.php)(/.*)$;
                  fastcgi_read_timeout 500;
                  include fastcgi_params;
                  fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
                  fastcgi_param SERVER_NAME $http_host;
                  fastcgi_param DOCUMENT_ROOT $realpath_root;
                  internal;
                  }
      roles:
         - {
            role: laxathom.passbolt
        }

Tests

  • Exigences pour l'hôte
    • moteur docker. Assurez-vous qu'il est installé et en cours d'exécution.

Configurer l'environnement ansible

printf '[defaults]\nroles_path=../\nhost_key_checking = False' > ansible.cfg

Installer les exigences de test

% ansible-galaxy install -r tests/requirements.yml -p tests/roles

Puis exécutez le playbook pour le test de déploiement

% sudo ansible-playbook -vv -i tests/inventory tests/test.yml

Une fois terminé, vous devriez être en mesure d'accéder à l'application déployée et en cours d'exécution à l'adresse http://localhost:8080/

À propos du projet

Ansible role to install and configure passbolt API

Installer
ansible-galaxy install laxathom.passbolt
Licence
mit
Téléchargements
92
Propriétaire