syntro_gmbh.silverstripe

Rôle Ansible : silverstripe

Rôle Ansible Version GitHub (la plus récente) Test Molecule Score Qualité Ansible Rôle Ansible

Description

Silverstripe est un cadre open source polyvalent pour les sites web. Ce rôle installe Silverstripe de votre choix sur un serveur LAMP.

Les principales caractéristiques de ce rôle comprennent :

  • Exigences minimales pour le déploiement -> déployez partout
  • Conservation des versions -> revenez rapidement en cas d'erreur
  • Déploiement sans temps d'arrêt -> déployez sans interrompre l'utilisation
  • Prêt pour l'intégration continue -> spécifiez des tags ou maintenez les branches à jour
  • Compatible avec les sauvegardes -> exécutez des scripts de sauvegarde avant de vider et de construire

Déploiement sans temps d'arrêt

Par défaut, ce rôle déploie toute version sans temps d'arrêt. Cela signifie que les processus de construction et de vidage se feront avant que le code ne soit réellement utilisé par html/index.php. Cela présente des avantages, car aucun utilisateur n'est exclu de l'utilisation du site, ce qui rend les déploiements possibles pendant les périodes de disponibilité critique. Dans la plupart des cas, Silverstripe peut être déployé ainsi, car la structure de la base de données est généralement compatible avec les versions précédentes. Les seules fois où cela pourrait poser des problèmes sont :

  • Suppression de DataObjects
    • Silverstripe ne supprime pas la Table, mais y ajoute le préfixe deprecated_
  • Changement des valeurs Enum

Ces scénarios sont très spécifiques et ne devraient théoriquement pas se produire, car cela indiquerait une mauvaise planification de la part du développeur.

Cependant, cela peut également entraîner des problèmes avec les sauvegardes de la base de données, car une attention supplémentaire doit être portée pour obtenir des sauvegardes cohérentes ! Cette responsabilité incombe à l'utilisateur de ce rôle.

Installation

ansible-galaxy install syntro_gmbh.silverstripe

Exigences

  • Composer
  • Git

Dépendances

Aucune, mais assurez-vous d'avoir Composer et Git installés sur l'hôte sur lequel vous déployez.

Utilisation

À part quelques variables requises, ce rôle peut être utilisé pour n'importe quel projet Silverstripe. Consultez le fichier defaults pour avoir une idée de ce que vous pouvez personnaliser.

Le webroot et les fichiers générés

Ce rôle utilise la structure de répertoires suivante pour servir votre application :

{{ WorkingDir }}/
├── {{ current }}
│   ├── .htaccess
│   ├── index.php
│   ├── assets --> ../shared/assets
│   └── _resources --> ../releases/<current sha>/_resources
├── releases/
│   ├── <current sha>/
│   │   ├── .git
│   │   └── ...
│   └── <other sha>/
│       ├── .git
│       └── ...
├── shared/
│   └── assets/
└── logs/

votre webroot doit pointer vers le répertoire {{ WorkingDir }}/{{ current }}/. Vous pouvez configurer ces répertoires en utilisant silverstripe_working_dir et silverstripe_current_dir_name, respectivement.

Construction et mise à jour de la base de données et exécution des sauvegardes

Pour que Silverstripe fonctionne avec une nouvelle installation, il faut construire ou mettre à jour la base de données. Par défaut, ce rôle exécute la tâche de construction standard combinée avec le paramètre flush=1 avant de mettre à jour les fichiers dans le webroot.

Vous pouvez ajouter d'autres commandes, mais n'oubliez pas de réajouter la commande de construction à l'aide de silverstripe_provisioning_cmds. C'est aussi l'endroit pour ajouter toutes les commandes de sauvegarde dont vous pourriez avoir besoin. (Vous pourriez utiliser notre rôle restic pour installer un utilitaire de sauvegarde et créer automatiquement les scripts.) En ajoutant ces scripts avant l'étape de construction, vous avez la version la plus récente de votre installation en cas de besoin de retour en arrière.

Déploiement sans temps d'arrêt

Ce rôle déploie la version de silverstripe sans temps d'arrêt. Cela signifie que les processus de construction et de vidage se feront avant que le code ne soit réellement utilisé par index.php. Cela présente des avantages, car aucun utilisateur n'est exclu de l'utilisation du site, ce qui rend les déploiements possibles à tout moment. Silverstripe peut être déployé ainsi, car la structure de la base de données est généralement compatible avec les versions précédentes. Les seules fois où cela pourrait poser problème sont :

  • Suppression de DataObjects
    • Silverstripe ne supprime pas la Table, mais y ajoute le préfixe deprecated_
  • Changement des valeurs Enum

Ces scénarios sont très spécifiques et ne devraient théoriquement pas se produire, car cela indiquerait une mauvaise planification de la part du développeur. Néanmoins, vous devez toujours créer une sauvegarde de la base de données avant de mettre à jour.

Variables du rôle

Consultez le fichier defaults pour avoir une idée de ce que vous pouvez contrôler.

Exemple de playbook minimal

- hosts: all
  vars:
    silverstripe_project_repository: https://github.com/silverstripe/demo.silverstripe.org
    silverstripe_project_version: master
    silverstripe_ss_database_name: silverstripe
    silverstripe_ss_database_username: root
    silverstripe_ss_database_password: root
  roles:
    - silverstripe

Auteur

  • Matthias Leutenegger

Licence

MIT

Droits d'auteur

(c) 2020, Syntro GmbH

À propos du projet

Role to deploy a Silverstripe installation.

Installer
ansible-galaxy install syntro_gmbh.silverstripe
Licence
mit
Téléchargements
1.1k
Propriétaire