Un fichier plugins.yml pour deux sites Discourse

Bonjour à tous,

Est-il possible d’utiliser une commande pour inclure un fichier depuis un emplacement distant dans le fichier app.yml ?

J’ai deux sites pour lesquels je souhaite avoir une liste standardisée de plugins. Au lieu de copier-coller cette liste partout et d’oublier parfois de le faire, pourrais-je la placer à et l’importer automatiquement à chaque reconstruction de l’application ?

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

Bonjour @IAmGav

Ce n’est peut-être pas exactement ce que vous recherchez ; et je n’ai pas encore tout finalisé, mais voici l’essentiel :

  1. Créez un répertoire /var/discourse/mytemplates
  2. Ajoutez un nouveau fichier modèle nommé plugins.templates.yml dans ce répertoire, par exemple :
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. Créez un nouveau dépôt git pour ce répertoire et poussez-le sur GitHub.
  2. Ajoutez un modèle à vos fichiers yml pour ces plugins, par exemple :
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

J’ai déjà testé jusqu’à ce point, et je peux ajouter des plugins et construire le conteneur en utilisant un fichier modèle de cette manière, sans problème.

La seule partie que je n’ai pas encore testée consiste à ajouter une ou deux lignes dans le launcher pour récupérer le dépôt ; et franchement, je n’ai pas encore travaillé sur cette partie.

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

Même si je n’ai pas encore travaillé sur cette partie, je suis sûr que c’est réalisable ; car j’ai déjà testé la partie consistant à intégrer les plugins dans la construction du conteneur à partir d’un modèle, et cela fonctionne parfaitement ; donc la seule partie restante pour cette approche consiste à ajouter du code au launcher et à le tester pour récupérer le dépôt mytemplates depuis GitHub.

Cependant, pour être honnête ; cette technique semble être beaucoup de travail inutile :

  • Modifier le launcher pour récupérer le modèle depuis un dépôt
  • Ajouter une nouvelle entrée de modèle au fichier yml (pour les plugins)

Il est si facile de copier-coller dans les fichiers yml et “d’en finir” ; mais je trouve aussi cette idée intéressante. Les énigmes d’administration système sont toujours amusantes pour moi, donc c’était amusant d’y réfléchir pour vous.

En tout cas, la réponse courte à votre question @IAmGav est que “oui, c’est réalisable” et bien sûr, si vous voulez essayer, alors “foncez”.

J’espère que cela vous aidera.