クローンのヒントとテクニック<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } .mce-toc { background-color: #f7f7f7; padding: 10px; border-radius: 5px; border: 1px solid #dedede; width: 70%; min-width: 500px; } この記事では、クローン作成のヒントとコツについて説明します。詳細については、ATF ジョブの保持、インスタンスの名前変更後の新しいクローンターゲットの作成に関する問題、ユーザー、ロール、およびグループの除外と保持、含めないテーブル、およびプロファイルを参照してください。 この記事は、クローンに関する 3 部構成のシリーズの一部です。 クローンの基本 - KB1214608クローンに関する FAQ - KB0715621 目次 ATF ジョブを保持するにはどうすればよいですか?インスタンスの名前を変更しましたが、新しいクローンターゲットを作成できませんか?ユーザー、ロール、およびグループを除外および保持するにはどうすればよいですか?除外すべきでないのはどのテーブルですか?プロファイルの仕組みシステムプロファイルはデフォルトですが、使用する必要がありますか? ATF ジョブを保持するにはどうすればよいですか? クローン実行中に ATF ジョブを保持する方法について、多くのリクエストをいただいています。ATF はプリザーバーと連携するように設計されておらず、更新セットを介して移動するように設計されているため、ATF を保持することは最善なオプションではありません。 最適なオプションは、更新セットを介して ATF テストを本番環境に移動することです。その後、準本番環境上で本番環境のクローンを作成するときに、ATF テストを使用できます。本番環境で ATF テストをコミットしても、本番環境でテストを実行する必要はありません。クローンの内容を保持する必要がないため、クローン作成が非常に簡単になります。 注意:現在準本番環境で ATF ジョブをテストしていて、本番環境にプッシュする準備ができていないが、クローンを作成する必要がある場合は、更新セットを介して ATF テストをエクスポートし、ターゲットインスタンスをクローンしてから、その ATF テストを含む更新セットを再コミットします。 インスタンスの名前を変更しましたが、新しいクローンターゲットを作成できませんか? インスタンスの名前を変更してインスタンスへのログインを試み、インスタンスの新しいクローンターゲットの作成を試みた場合、そのインスタンスは古い名前で既に存在するため、この処理は機能しません。 これを修正するには、KB0550896 : インスタンスの名前変更後にクローンターゲットを追加できませんで詳述されている手順に従います。 ユーザー、ロール、およびグループを除外および保持するにはどうすればよいですか? 状況によっては、ソースインスタンスからユーザーを引き継ぐのではなく、ターゲットインスタンスのユーザーのみを保持したい場合があります。これにはさまざまな理由があり、これを達成する方法はいくつかあります。 推奨方法:除外せずにターゲットのアクセス権とユーザーを保持します。 シンプルなグループとプリザーバーのロジックを使用して、ターゲットインスタンスでアクセスを保持できます。この方法では除外は必要ありません (除外すると、参照が破損する可能性がありますsys_userまたはsys_user_role)。 ターゲットに対してクローンソースクローン作成後も引き続きアクセスする必要があるすべてのユーザーを含むユーザーグループ (「開発者」など) を作成します。クローン後にアクセス権を必要としないターゲット内のすべてのユーザーアカウントを無効にします。 (アクティブ = false、ロックアウト = true に設定)アクティブなユーザーに、このターゲットインスタンスで必要な、ソースにまだない追加アクセス権 (グループ/ロールなど) を提供します。sys_user の preserver を作成します。 (これにより、ターゲット内のすべてのユーザーが保持されるため、無効にされていた場合は無効のまま保持されます。)追加のグループ、ロール、およびそれらのグループとロールへのアクセスを作成した場合は、それらの preserver を作成します。 (sys_user_group、sys_group_has_role、sys_user_grmember、sys_user_role、sys_user_has_role)これらのプリザーバーを使用してクローンを作成する場合でも、ソースからのすべてのユーザーは保持されますが、ターゲットでは非アクティブとして保持され (ログインできません)、ターゲットインスタンスで保持した追加のロール/グループと継承が保持されます。そのため、sys_userテーブルを保持しているため、新しいユーザーをソースインスタンスに追加すると、それらのユーザーはターゲットに存在しない可能性があるため、次回クローンを作成するときにターゲットでアクティブになります。そのため、この問題を解決するには、2つの異なる方法があります。 すべてのアクティブなユーザーをチェックし、グループに属していない場合は無効にするクリーンアップスクリプトを作成します。#2 で上記のグループを使用する。(添付のスクリプト例:User_clone_cleanup.txt)これはスクリプトの例であり、パラメーターを設定する必要があります。条件を追加する場合は、設定できます。 または次のクローンで再度保持されるように、クローン後にユーザーを非アクティブに手動で調整します。 注意:ソースとターゲットが異なるかのように機能するには、ユーザーのsys_idが一致する必要があります。そうするとターゲットインスタンスで重複が発生します。調整するには:ソースから完全なクローンを実行し、sys_userレコードをクリーンアップするとこれが機能します。 従来のメソッド:(引き続き使用できますが、注意が必要です。関連するテーブルとインスタンス機能が損なわれる可能性があります。) データの除外と保持を設定できます。 これはよりトリッキーなソリューションであり、実装時に、テーブルを除外するオプションをオフにしてクローンを作成した場合、これは機能せず、この方法を使用する将来のクローンが壊れることを意味します。 これを行うには、次の 除外を作成する必要があります。 sys_usersys_user_role**sys_user_has_rolesys_user_groupsys_user_grmembersys_group_has_rolesys_user_role_containscmn_notif_devicecustomer_contact ( カスタマーサービス管理 (CSM) プラグイン がインストールされている場合のみ) これにより、ソースインスタンスからユーザーが引き継がれたり、グループやロールへの参照が引き継がれたりすることはありませんが、ターゲットインスタンスでsys_userを保持する必要があります。多くの人が忘れているのは、ロール、グループ、およびユーザーからロールやグループへのリンクも保持する必要があるということです。これはよくある間違いで、クローン作成後に admin ロールが表示されず、ロールへのリンクがないためログインできません。次に、次の 保持者 を作成する必要があります (要件に応じて条件を追加します)。 sys_usersys_user_role**sys_user_groupsys_user_grmembersys_user_has_rolesys_group_has_rolesys_user_role_containscmn_notif_devicecustomer_contact ( カスタマーサービス管理 (CSM) プラグイン がインストールされている場合のみ) これにより、ターゲットインスタンス内のすべてのユーザー、ロール、およびグループが保持されますが、それらのグループおよびロールに対するこれらのユーザーの権限も保持されます。これらをインスタンスに配置すると、クローン作成後のターゲットインスタンスからまったく同じユーザーが存在し、クローン作成元のすべてのアクセス権が保持されます。 **sys_user_roleテーブルは慎重に扱ってください。 sys_user_roleテーブルを除外/保持する場合。プラグイン関連のロールは除外/保持できます。プラグインがソースではアクティブステータスであり、ターゲットではアクティブではない場合、プラグインがアクティブステータスであるターゲットにはロールがない可能性があります。プラグインがソース上でアクティブではなく、ターゲット上でアクティブ状態でない場合、プラグインがアクティブでなくてもターゲットでロールが使用可能になるため、sys_user_roleを除外/保持すると破損した参照が作成されます。sys_user_roleテーブルの名前には一意のインデックスがあるため、ロール名が重複することはありません。したがって、ソースとターゲットの間でインデックスの競合が発生したレコードの場合、ターゲットレコードは保持され、ソースは除外されます。(ソースロールsys_idへのすべての参照が壊れる可能性があるため、ソースにないターゲットのロールのみを保持することをお勧めします。)例:ロールを保持した場合:TestRoleソース:TestRole - sys_id = 77c8e0a61b88d10739e2f48b04bcbdcターゲット:TestRole - sys_id = 32f4f3t23b42a23425e1f63g12efaseクローン後はターゲットインスタンスのロールのみを持ちますが、一意のインデックスで両方を持つことはできないため、ソースからのロールはありません。 除外すべきでないのはどのテーブルですか? サポートを通じて発生した問題を確認したところ、クローン後に除外され、問題を引き起こしたテーブルが多数確認されています。このテーブルを除外する必要がある場合は、このテーブルも保持するか、そのテーブルからデータの一部を削除してクローンクリーンアップスクリプトを使用することをお勧めします。 除外しないテーブル: sys_properties sys_propertiesは、インスタンスのメタデータと構成を処理するベーステーブルです。除外すると、構成とメタデータが転送されるターゲットインスタンスで関連情報が失われます。保持されている場合、sys_propertiesはターゲットに保持され、関連するメタデータと構成はワイプされ、ソースデータに置き換えられます。 sys_triggersys_plugins (ターゲットインスタンスがダウンする可能性があります。)sys_user (前述のとおりですが、他のテーブルで保持されている場合は問題ありません。)ソースからのこれらのテーブルデータはターゲットで除外されるため、sys_* テーブルのカスタム除外は注意して扱う必要があります (アプリケーションがターゲットにインストールされていない場合、E.g. sys_app、sys_store_app、および除外sys_scopeによってモジュールが強制終了される可能性があります。)sys_user_preference テーブルには、インターフェイスのレンダリング方法を決定する「system=true」UI 表示プロパティが格納されます。このテーブルは、フィルターなしで全体が保持されている場合にのみ 除外できます。 これらを除外すると、ターゲットインスタンスが悪い状態になる可能性があり、クローンをロールバックして調整し、再度クローンを作成する必要があります。 プロファイルの仕組みシステムプロファイルはデフォルトですが、使用する必要がありますか? クローンプロファイルは再利用可能なクローンテンプレートです。異なる環境で異なるクローン結果が必要な場合に役立ちます。さまざまなクローンシナリオに対して、必要な数のクローンプロファイルを作成できます。 (例:アップグレードテスト用のプロファイルとカスタムアプリテスト用のプロファイル。)クローンを要求するときに、以前に作成したクローンプロファイルを選択できます。選択すると、クローンプロファイルによって、選択した除外、プリザーバー、クリーンアップスクリプト、およびその他のプロファイル設定がクローン要求に自動的に入力されます。 プロファイルの詳細情報は次のとおりです。 クローンプロファイルが空のままになっている場合、またはクローンアドミンコンソールのクローンリクエストフォームで[なし(none)] が選択されている場合: システムは利用可能な可能な全てのプリザーバー/除外およびクリーンアップスクリプトをプルします。既存のカスタムプロファイルを簡単に複製できます。 (クローンアドミンコンソールで任意のプロファイルを開き、[複製] ボタンをクリックします。)システムプロファイルは OOTB (標準機能)であるため、変更できません。新しいクローンプロファイルが作成されると、作成された既存のすべてのプリザーバー/除外およびクリーンアップスクリプトが含まれます。 システムプロファイルに関する注意: ServiceNow には、「システムプロファイル」と呼ばれる 1 つのプロファイルが用意されています。このプロファイルには、OOB 定義の除外テーブルのリスト、データエントリの保持、およびクリーンアップスクリプトのみが含まれます。作成した除外/保持は含まれ ません 。作成したカスタムプリザーバー/除外およびクリーンアップスクリプトをクローンに含めない場合にのみ、[システムプロファイル] を選択します。