二つのDiscourseサイトで一つのplugins.ymlファイル

皆さん、こんにちは。

コマンドを使って、リモート場所からファイルを app.yml に含めることは可能でしょうか?

2 つのサイトで標準的なプラグインリストを使用したいと考えています。毎回コピー&ペーストするのは手間がかかり、忘れることもあります。もし可能なら、にファイルを置いておき、アプリを再構築するたびに自動的に読み込ませることはできるでしょうか?

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

こんにちは、@IAmGav さん

これが完全に求めるものとは限らないかもしれませんし、まだ完全に検証も終わっていないのですが、要点をまとめます:

  1. ディレクトリ /var/discourse/mytemplates を作成します。
  2. そのディレクトリ内に plugins.templates.yml という名前の新しいテンプレートファイルを追加します。例:
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. そのディレクトリ用の新しい Git リポジトリを作成し、GitHub にプッシュします。
  2. これらのプラグイン用に yml ファイルにテンプレートを追加します。例:
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

ここまでで既にテスト済みであり、この方法でテンプレートファイルを使ってプラグインを追加し、コンテナをビルドすることは問題なく動作します。

まだテストしていない部分は、launcher にリポジトリをプルするための数行を追加する箇所です。正直なところ、この部分はまだ着手していません。

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

この部分はまだ作業していませんが、実現可能だと確信しています。なぜなら、テンプレートからコンテナビルド時にプラグインを取り込む部分は既にテスト済みで問題なく動作しているからです。このアプローチで残っているのは、launcher にコードを追加して GitHub から mytemplates リポジトリをプルする動作をテストするだけです。

ただし、率直に言えば、この手法はあまりに多くの不要な作業を伴います:

  • テンプレートをリポジトリからプルするように launcher を編集する
  • (プラグイン用の)新しいテンプレートエントリを yml ファイルに追加する

yml ファイルにコピー&ペーストして「それで終わり」にする方がずっと簡単です。でも、このアイデア自体は興味深いですね。システム管理者向けのパズルはいつも楽しいので、あなたのために考えてみるのも楽しかったです。

いずれにせよ、@IAmGav さんへの質問への簡潔な答えは、「はい、実現可能です」ということです。もちろん、試してみたい場合は「ぜひどうぞ」です。

お役に立てれば幸いです。