syntro_gmbh.silverstripe

Rol de Ansible: silverstripe

Rol de Ansible Liberación de GitHub (última por fecha) Prueba de Molecule Calificación de calidad de Ansible Rol de Ansible

Descripción

Silverstripe es un marco de trabajo de código abierto versátil para sitios web. Este rol despliega una instalación de Silverstripe de tu elección en un servidor LAMP.

Las características clave de este rol incluyen:

  • Requisitos mínimos para el despliegue -> despliega en cualquier lugar
  • Retención de versiones -> retrocede rápidamente en caso de un error
  • Despliegue sin tiempo de inactividad -> despliega sin interrumpir el uso
  • Listo para CI -> especifica etiquetas o mantiene ramas actualizadas
  • Amigable con copias de seguridad -> ejecuta scripts de copia de seguridad antes de actualizar y construir

Despliegue Sin Tiempo de Inactividad

Por defecto, este rol despliega cualquier versión sin tiempo de inactividad. Esto significa que los procesos de construcción y actualización se realizarán antes de que la base de código se enlace para ser utilizada por html/index.php. Esto tiene algunas ventajas ya que ningún usuario queda excluido de usar el sitio, lo que hace que los despliegues sean posibles en momentos críticos de tiempo de actividad. Silverstripe, en la mayoría de los casos, puede ser desplegado de esta manera, ya que la estructura de la base de datos es en su mayoría compatible hacia atrás. Los únicos casos en el momento de escribir este archivo donde esto podría llevar a problemas son:

  • Eliminación de DataObjects
    • Silverstripe no elimina la tabla, pero la prefija con deprecated_
  • Cambio de valores de Enum

Estos escenarios son muy específicos y, en teoría, no deberían ocurrir, ya que sería un signo de una mala planificación por parte del desarrollador.

Sin embargo, esto también puede llevar a problemas en las copias de seguridad de la base de datos, ya que se debe tener un cuidado adicional para obtener copias consistentes. Esta responsabilidad recae en el usuario de este rol.

Instalación

ansible-galaxy install syntro_gmbh.silverstripe

Requisitos

  • Composer
  • Git

Dependencias

Ninguna, pero asegúrate de tener Composer y Git instalados en el host donde vas a desplegar.

Uso

Aparte de algunas variables requeridas, este rol puede ser utilizado para cualquier proyecto de Silverstripe. Echa un vistazo al archivo de defaults para tener una idea de lo que puedes personalizar.

La raíz web y los archivos generados

Este rol utiliza la siguiente estructura de directorios para servir tu aplicación:

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

Tu raíz web debería apuntar al directorio {{ WorkingDir }}/{{ current }}/. Puedes configurar estos directorios usando silverstripe_working_dir y silverstripe_current_dir_name, respectivamente.

Construyendo y actualizando la base de datos y ejecutando copias de seguridad

Para que Silverstripe funcione con una nueva instalación, es necesario construir o actualizar la base de datos. Por defecto, este rol ejecuta la tarea estándar de construcción combinada con el parámetro flush=1 antes de actualizar cualquier archivo en la raíz web.

Puedes añadir más comandos, pero no olvides volver a añadir el comando de construcción usando silverstripe_provisioning_cmds. Este es también el lugar para añadir cualquier comando de copia de seguridad que necesites. (Puedes usar nuestro rol de restic para instalar una utilidad de copia de seguridad y crear los scripts automáticamente). Al añadir estos scripts antes del paso de construcción, obtienes la versión más reciente de tu instalación en caso de que necesites retroceder.

Despliegue Sin Tiempo de Inactividad

Este rol despliega Silverstripe sin tiempo de inactividad. Esto significa que los procesos de construcción y actualización se realizarán antes de que la base de código se enlace para ser utilizada por index.php. Esto ofrece algunas ventajas, ya que ningún usuario queda excluido del uso del sitio, lo que hace que los despliegues sean posibles en cualquier momento. Silverstripe, en la mayoría de los casos, puede ser desplegado de esta manera, ya que la estructura de la base de datos es en su mayoría compatible hacia atrás. Los únicos casos en el momento de escribir este archivo donde esto podría llevar a problemas son:

  • Eliminación de DataObjects
    • Silverstripe no elimina la tabla, sino que la prefija con deprecated_
  • Cambio de valores de Enum

Estos escenarios son muy específicos y, en teoría, no deberían ocurrir, ya que sería un signo de mala planificación por parte del desarrollador. No obstante, siempre debes crear una copia de seguridad de la base de datos antes de actualizar.

Variables del Rol

Consulta el archivo de defaults para tener una idea de lo que puedes controlar.

Ejemplo mínimo de playbook

- 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

Autor

  • Matthias Leutenegger

Licencia

MIT

(c) 2020, Syntro GmbH

Acerca del proyecto

Role to deploy a Silverstripe installation.

Instalar
ansible-galaxy install syntro_gmbh.silverstripe
Licencia
mit
Descargas
1.1k
Propietario