クローンのヒントとテクニック<!-- /*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で詳述されている手順に従います変更後にクローンターゲットを追加できません - KB0550896。 ユーザー、ロール、およびグループを除外して保持するにはどうすればよいですか? 場合によっては、ソースインスタンスからユーザーを引き継がず、ターゲットインスタンスのユーザーのみを保持することがあります。これにはさまざまな理由があり、これを達成する方法はたくさんあります。 推奨される方法:ターゲット内のアクセス権とユーザーを除外せずに保持します。 シンプルなグループとプリザーバーのロジックを使用して、ターゲットインスタンスでアクセスを保持できます。この方法では除外は必要ありません (参照が壊れる可能性があるsys_userやsys_user_roleを除く)。 クローンソースオーバーターゲットクローン後も引き続きアクセスできるすべてのユーザーを含むユーザーグループ (「開発者」など) を作成しますクローン後にアクセスを許可しないターゲットのすべてのユーザーアカウントを無効にします (アクティブ = false、ロックアウト = true に設定)ソースにまだなかった、このターゲットインスタンスで必要な追加アクセス権 (グループ/ロールなど) をアクティブなユーザーに付与します。の保持者を作成sys_user (これにより、ターゲット内のすべてのユーザーが保持されるため、無効になっていた場合は無効として保持されます。追加のグループ、ロール、およびそれらのグループとロールへのアクセスを作成した場合は、それらのプリザーバーを作成します (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 表示プロパティが格納されます。このテーブルは、フィルターなしで全体が保存される場合 のみ 除外できます。 これらを除外すると、ターゲットインスタンスの状態が悪くなる可能性があり、クローンをロールバックして調整し、再度クローンする必要があります。 プロファイルはどのように機能しますか?システムプロファイルはデフォルトであり、使用する必要がありますか? クローンプロファイルは再利用可能なクローンテンプレートです。異なる環境で異なるクローン作成結果が必要な場合に役立ちます。さまざまなクローンシナリオに合わせて、クローンプロファイルをいくつでも作成できます (例:アップグレードテスト用のプロファイルとカスタムアプリテスト用のプロファイル。クローンを要求するときに、以前に作成したクローンプロファイルを選択できるようになります。選択すると、選択した除外、プリザーバー、クリーンアップスクリプト、およびその他のプロファイル設定がクローン要求に自動的に入力されます。 プロファイルの詳細については、以下を参照してください。 クローンアドミンコンソールのクローン要求フォームで [クローンプロファイル] フィールドを空のままにするか、[なし] が選択されている場合:システムは、利用可能な すべて のプリザーバー/除外およびクリーンアップスクリプトをプルします既存のカスタムプロファイルを簡単に複製する(クローンアドミンコンソールで任意のプロファイルを開き、複製ボタンをクリックします)システムプロファイルは OOTB であるため、変更できません新しいクローンプロファイルを作成すると、作成された既存のすべてのプリザーバー/除外およびクリーンアップスクリプトが含まれます。 システムプロファイルに関する注意: ServiceNow が提供する「システムプロファイル」と呼ばれるプロファイルには、OOB で定義された除外テーブルのリストのみが含まれ、データエントリが保持され、スクリプトがクリーンアップされます。作成した除外/保持者は含まれません。作成したカスタムの保持者/除外およびクリーンアップスクリプトをクローンに含めない場合にのみ、[システムプロファイル] を選択します。