Un archivo plugins.yml para dos sitios de Discourse

Hola a todos,

¿Es posible usar un comando para incluir un archivo desde una ubicación remota en el archivo app.yml?

Tengo dos sitios para los que me gustaría tener una lista estándar de plugins. En lugar de copiar y pegar todo cada vez, y a veces olvidarme de hacerlo, ¿podría tenerlo en <ubicación A> y simplemente importarlo cada vez que reconstruya la aplicación?

por ejemplo
<include executable="wget --no-check-certificate -q -O - http://LocationA/plugins.yml" noexec="no">

Hola @IAmGav

Esto puede no ser exactamente lo que buscas; y aún no he terminado de desarrollar esto completamente, pero aquí tienes lo esencial:

  1. Crea un directorio /var/discourse/mytemplates
  2. Añade un nuevo archivo de plantilla llamado plugins.templates.yml en ese directorio, por ejemplo:
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/discourse/discourse-sitemap.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-checklist.git
  1. Crea un nuevo repositorio git para ese directorio y súbelo a GitHub.
  2. Añade una plantilla a tus archivos yml para estos plugins, por ejemplo:
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

Ya he probado hasta este punto, y puedo añadir plugins y construir el contenedor usando un archivo de plantilla de esta manera, sin problemas.

La única parte que aún no he probado es añadir una o dos líneas en launcher para extraer el repositorio; y, francamente, aún no he trabajado en esta parte.

 git clone https://github.com/my_super_repo/mytemplates.git

Aunque aún no he trabajado en esta parte, estoy seguro de que es factible; porque ya he probado la parte de incorporar los plugins en la construcción del contenedor desde una plantilla, y funciona bien; así que lo único que falta para este enfoque es añadir código a launcher y probarlo para extraer el repositorio mytemplates de GitHub.

Sin embargo, para ser franco; esta técnica parece un trabajo innecesario:

  • Editar launcher para extraer la plantilla desde un repositorio
  • Añadir una nueva entrada de plantilla al archivo yml (para los plugins)

Es tan fácil copiar y pegar en los archivos yml y “terminar con ello”; pero también encuentro interesante esta idea. Los acertijos de administración de sistemas siempre son divertidos para mí, así que fue divertido pensar en esto para ti.

De todos modos, la respuesta corta a tu pregunta @IAmGav es que “sí, es factible” y, por supuesto, si quieres probarlo, entonces “adelante”.

Espero que esto ayude.