Un file plugins.yml per due siti Discourse

Ciao a tutti,

È possibile utilizzare un comando per includere un file da una posizione remota nel file app.yml?

Ho due siti per cui vorrei avere un elenco standard di plugin. Invece di copiare e incollare tutto ogni volta, e a volte dimenticare di farlo, potrei avere il file in e importarlo ogni volta che ricompilo l’app?

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

Ciao @IAmGav

Forse non è esattamente quello che cerchi; e non ho ancora completato tutti i dettagli, ma ecco l’essenziale:

  1. Crea una directory /var/discourse/mytemplates
  2. Aggiungi un nuovo file di template chiamato plugins.templates.yml in quella directory, ad esempio:
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 nuovo repository Git per quella directory e caricalo su GitHub.
  2. Aggiungi un template ai tuoi file yml per questi plugin, ad esempio:
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

Ho già testato fino a questo punto e riesco ad aggiungere plugin e costruire il container utilizzando un file di template in questo modo, senza problemi.

L’unica parte che non ho ancora testato è aggiungere una o due righe al launcher per clonare il repository; e francamente, non ho ancora lavorato su questa parte.

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

Anche se non ho ancora lavorato su questa parte, sono sicuro che sia fattibile; perché ho già testato la parte relativa all’inclusione dei plugin nella costruzione del container partendo da un template, e funziona perfettamente; quindi l’unica cosa che manca per questo approccio è aggiungere del codice al launcher e testarlo per clonare il repository mytemplates da GitHub.

Tuttavia, per essere sincero; questa tecnica sembra richiedere un sacco di lavoro inutile:

  • Modificare launcher per clonare il template da un repository
  • Aggiungere una nuova voce di template al file yml (per i plugin)

È così semplice copiare e incollare nei file yml e “aver finito”; ma trovo anche quest’idea interessante. I puzzle da sysadmin sono sempre divertenti per me, quindi è stato piacevole pensarci per te.

Comunque, la risposta breve alla tua domanda @IAmGav è che “sì, è fattibile” e, naturalmente, se vuoi provarci, allora “vai pure avanti”.

Spero che questo ti sia d’aiuto.