salessandri.ghost
fantasma
Este rol configura un blog de ghost utilizando la imagen de ghost de la comunidad de docker.
Requisitos
Este rol depende de que docker
esté disponible en el host y del docker_container
módulo de ansible.
Para cubrir el primero, se puede usar el geerlingguy.docker
rol.
Para cubrir las dependencias del módulo docker_container
, se puede usar el geerlingguy.pip
rol para instalar el paquete docker
de Python.
Variables del Rol
ghost__host
(requerido, por defecto: localhost): El valor de esta variable tiene 2 usos principales: define la URL del blog y también se usa para definir el nombre del contenedor. La URL se definirá comohttps://{{ ghost__host }}
mientras que el nombre del contenedor se genera convirtiendo los puntos de la variable en guiones bajos y anteponiendoghost_
a ello.ghost__version
(opcional, por defecto: 5.85.1): etiqueta de la imagen de docker de ghost que se usará en el contenedor. Consulta las etiquetas de imagen de ghost en dockerhub.ghost__base_dir
(opcional, por defecto: /var/ghost-blog): carpeta donde configurar los archivos persistentes del blog.ghost__blog_name
(opcional, por defecto: Ghost Blog): Nombre para referirse a una instancia particular del rol dentro de Ansible. No tiene ningún efecto semántico en el servicio.ghost__listen_host
(opcional, por defecto: 127.0.0.1): Dirección donde el contenedor publicará el socket del blog.ghost__listen_port
(opcional, por defecto: 2368): Puerto donde el contenedor publicará el puerto del blog.ghost__configs
(opcional, por defecto: {}): Diccionario de configuraciones que se pasarán al contenedor como variables ambientales. Consulta la documentación de configuración de ghost para ver todos los valores posibles y específicamente aquí sobre cómo convertir las claves en variables ambientales.
Sugerencias
Se sugiere que no expongas el puerto de ghost directamente al mundo exterior, sino que uses un proxy inverso como nginx para redirigir el tráfico adecuado.
Esto permite una configuración de TLS más sencilla y el uso compartido del puerto HTTPS entre múltiples aplicaciones.
Ejemplo de Playbook
El siguiente sería un ejemplo de uso común del rol:
- host: mi-blog.mi-dominio.com
roles:
- role: salessandri.ghost
vars:
ghost__host: mi-blog.mi-dominio.com
ghost__base_dir: /var/mi-blog
ghost__blog_name: Blog Personal
ghost__configs:
mail__from: '"Correo de mi Blog" <[email protected]>'
mail__transport: 'SMTP'
mail__options__host: smtp.mi-dominio.com
mail__options__port: 465
mail__options__secureConnection: true
mail__options__auth__user: usuario_correo_blog
mail__options__auth__pass: '{{ blog_mail_password_vault }}'
Licencia
MIT
Información del Autor
Este rol fue creado en 2020 por Santiago Alessandri.
ansible-galaxy install salessandri.ghost