syntro_gmbh.silverstripe
Rôle Ansible : silverstripe
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_
- Silverstripe ne supprime pas la Table, mais y ajoute le préfixe
- 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_
- Silverstripe ne supprime pas la Table, mais y ajoute le préfixe
- 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
ansible-galaxy install syntro_gmbh.silverstripe