Um arquivo plugins.yml para dois sites Discourse

E aí, pessoal,

É possível usar um comando para incluir um arquivo de um local remoto no arquivo app.yml?

Tenho dois sites e gostaria que eles tivessem uma lista padrão de plugins. Em vez de copiar e colar tudo toda vez, e às vezes esquecer de fazer isso, eu poderia ter essa lista em e simplesmente importá-la sempre que reconstruir o app?

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

Olá @IAmGav

Isso pode não ser exatamente o que você está procurando; e eu ainda não terminei de desenvolver isso completamente, mas aqui está a essência:

  1. Crie um diretório /var/discourse/mytemplates
  2. Adicione um novo arquivo de template chamado plugins.templates.yml nesse diretório, por exemplo:
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. Crie um novo repositório git para esse diretório e faça o push para o GitHub.
  2. Adicione um template aos seus arquivos yml para esses plugins, por exemplo:
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

Já testei até este ponto e consigo adicionar plugins e construir o container usando um arquivo de template dessa maneira, sem problemas.

A única parte que ainda não testei é adicionar uma ou duas linhas no launcher para puxar o repositório; e, francamente, ainda não trabalhei nessa parte.

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

Embora eu ainda não tenha trabalhado nessa parte, tenho certeza de que é viável; porque já testei a parte de incluir os plugins na construção do container a partir de um template, e funciona perfeitamente. Portanto, a única parte restante para essa abordagem é adicionar código ao launcher e testar para puxar o repositório mytemplates do GitHub.

No entanto, para ser franco, essa técnica parece um trabalho desnecessário:

  • Editar o launcher para puxar o template de um repositório
  • Adicionar uma nova entrada de template ao arquivo yml (para os plugins)

É tão fácil copiar e colar nos arquivos yml e “acabar com isso”; mas também acho essa ideia interessante. Quebra-cabeças de sysadmin são sempre divertidos para mim, então foi divertido pensar nisso para você.

De qualquer forma, a resposta curta para sua pergunta @IAmGav é que “sim, é viável” e, claro, se você quiser tentar, “vá em frente”.

Espero que isso ajude.