ダンプなしで、一意のプロファイルから同様のサイトを展開/管理するにはどうすればよいですか?


15

私は「好きではないクローニング暗示ウェブサイト」ソリューションダンプデータベースを、別の環境でこのダンプをインポートします。これは、同じWebサイト(staging / prod / dev / etc)の複数のインスタンスをデプロイする現実の方法とは異なります。

D7では、通常、カスタムプロファイルを使用し、drushを使用してこれらのプロファイルからWebサイトをインストールしました(そして、後のサイト同期のために機能を使用する場合があります)。これにより、新規インストールが行われ、テストコンテンツは提供されませんでしたが、重要な設定は共有されました。たとえば、一般的なコンテンツの同期は、移行によって行われます。

同じインストールプロファイルを共有する複数のD8インスタンスを管理しようとしました。最終的な目標は、サイト構成を共有および同期することです。また、インストールごとに異なるサイトUUIDがあります。system.site uuidインストール時に設定変数を適用することに成功していません(もちろん後で値を変更できますが、これは遅すぎるようで、すべてのオブジェクトはすでに異なるUUIDで作成されているため、最初の同期は悪夢です、デフォルトのコンテンツを削除する必要がある場合や、デフォルトの言語を削除できないために同期がクラッシュする場合など)。

このUUIDを強制するために、$config['system.site']['uuid']内部に大きな値を持つ生成されたsettings.phpファイルを使用してみました(サイトのインストール後でも設定は完全に無視されました)。

また、構成インストーラーのプロファイルも確認しましたが、これは完全には理解していません。特に、このソリューションを別のインストールプロファイルと混在させる方法については理解していません。

質問は、インストールプロファイルから新しいサイトを展開する最良の方法は何ですか:

  • 「ウェブサイトのクローン」を作成せず、サイトの作成時にSQLダンプを操作しません(クローンサイトの質問のように)。
  • エクスポートされた構成とコードのみを使用した、新規のクリーンインストール(開発者のコ​​ンテンツガベージなし)
  • インストール構成のデフォルトと後の同期の両方を管理できます

回答:


3

機能はUUIDの問題を回避するのに役立ちます。まだバグが多いため、プロセスを完全に自動化することはできませんが、少なくとも手動で構成を変更および維持できます。

機能は引き続きモジュールを作成し、指定された機能モジュールのconfig / installディレクトリに構成をエクスポートします。これは、機能をインストールするときに取得され、機能の変更がエクスポートされると、サイト構成の更新を継続できます(古いdrush features-revertの場合と同様)。

また、drush経由で構成を直接インポートすることもできます。--partialフラグを使用して、configフォルダーにない構成を上書きしないようにしてください。--sourceを使用すると、カスタム構成フォルダーの場所を定義することもできるため、などの操作を実行できますdrush cim --partial --source=docroot/modules/features/myfeature/config/install


わかったなら、機能を使用して、SOIMキー機能の Webサイト設定を同期します。複製されたWebサイトの完全な構成同期を許可しません。
-regilero

2
丁度。完全な設定同期の基本的な問題は、管理者が変更できる設定が1つだけで十分であり、変更を元に戻すことができないため、同期できないことです。機能領域に分割することで、a)構成セットを維持できます(一部、その内容を理解しているため)、b)残りの機能および構成の管理方法について柔軟性を維持できます。
バラージュDianiska

わかりました、これは決定的な答えではないかもしれませんが、私はあなたに報奨金を与えます。誰かが後で更新された回答を追加したい場合(物事が動いているため)、私はそのための別の報奨金を再び開くでしょう。
-regilero

1

別のオプション:

drush config-set system.site uuid 56974bf2-68c2-3453-a211-de8bc754cc23

1

@Ivan Jarosのヒントに基づいて、プロファイルのインストール時に特定の構成オプションを設定できます。明らかに、これはインストール時にのみ機能し、サイトが既にインストールされている場合には機能しません。

プロファイルの.installファイルで、次のデフォルト構成設定を追加できますhook_install()

\Drupal::configFactory()
  ->getEditable('system.site')
  ->set('uuid', 'this is my new uuid')
  ->save(TRUE);

私はこれをローカルで試しましたが、動作します。drush csetサイトのUUIDを変更せずに、上記のコード(適切なUUIDを設定)を使用して、別のサイトから新しくインストールしたローカルサイトに構成をプルすることができました。

おそらく、UUIDを環境のどこかのファイル、環境変数、またはサービスから取得するように設定することができます。したがって、プロファイルがインストールされているすべてのサイトでそれらはすべて同じになります。

似たようなことをしたいと思っていましたsettings.phpが、ConfigFactoryその時点でクラスは利用できず、質問で指摘しているように、inで設定$configsettings.phpても効果はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.