クローン後のチェックリストIssue 「クローン」とは、テスト環境または開発環境をリフレッシュするために通常使用される ServiceNow インスタンスのスナップショットです。ServiceNow はクローン作成プロセスを実行しますが、この記事で説明するように、クローン作成後に実行する必要があるタスクがいくつかあります。クローニングの詳細については、「 「Cloning Resources」ページを参照してください。 最後に、頻繁にクローンを作成する場合は、この記事の最後のセクションで説明するように、これらのクローン後のタスクの実行を自動化するスクリプトを開発すると便利です。 クローン後のタスク 本番インスタンスのクローンを作成した後に、次のタスクを実行します。 ウェルカムページの更新メールプロパティの変更ユーザーアクセスの制限インポートと更新を無効にするための LDAP の変更アクティブなスケジュール済みジョブの無効化 ウェルカムページ ウェルカムページのメッセージがアクティブであることを確認します。各インスタンス内のウェルカムメッセージには、各インスタンスのサインインページに表示される標準テキスト (インスタンスが非本番またはトレーニングであることを示すテキストなど) が含まれています。 [システム UI] > [ウェルカムページのコンテンツ (Welcome Page Content)] に移動します。[ようこそ (Welcome to)] ページを開きます。[アクティブ] チェックボックスをオンにします。 メールプロパティ メールは、クローン作成プロセス中に無効化されるため、再度有効にする必要があります。ServiceNow メールサーバーとカスタムメールサーバーでは、メールプロパティの設定プロセスが異なります。admin ロールを持つユーザーが、メールプロパティを変更できます。 ServiceNow メールサーバー インスタンスで ServiceNow メールサーバーを使用している場合は、重要なメールプロパティの大半が自動設定されます。クローン作成では、ターゲットインスタンスのメール設定は上書きされませんが、メールは無効になります。 メールを有効にするには: [システムプロパティ] > [メール] に移動します。次のメールプロパティを設定します。 メール送信の有効化 (SMTP) (glide.email.smtp.active):[はい]メール受信の有効化 (POP3) (glide.email.read.active):[はい] 詳細については、製品ドキュメントの 」メールプロパティを参照してください。 [保存] をクリックします。 注: インスタンスが本番環境にクローンされるホスト型開発インスタンスである場合は、ケースを登録しメールサーバーのパスワードを設定します。 カスタムメールサーバー ServiceNow メールサーバーを使用していない場合は、いくつかの ServiceNow プロパティを設定する必要があります。メールプロパティを編集して、不要なメッセージがカスタムメールサーバーによって送信または処理されないようにします。 [システムプロパティ] > [メール] に移動します。次の表の説明に従って、メールプロパティを設定します。詳細については、製品ドキュメントの 」メールプロパティを参照してください。[保存] をクリックします。 プロパティ必要な設定メール送信の有効化 (SMTP) (glide.email.smtp.active) [はい]メール受信の有効化 (POP3) (glide.email.read.active) [はい]送信 (SMTP) メールサーバー (glide.email.server) SMTP サーバーの URL (smtp.yourdomain.com など)。オプションで SMTP サーバーへのログインに使用されるユーザーのメール (helpdesk@company.com など) (glide.email.user) SMTP 認証に使用するメールアドレス (smtp@yourdomain.com など)。インスタンスごとに異なるメールアカウントを定義します。送信 (SMTP) メールサーバーのパスワード (glide.email.user_password) SMTP サーバーのパスワード。すべてのメールが送信される宛先メールアドレス (glide.email.test.user) テストに使用するメールアドレス。通知を有効にしつつ、すべてのメッセージを単一のメールボックスに送信することができます。 注:メールサーバーのパスワードのセットアップ方法については、メール管理者にお問い合わせください。 ユーザーアクセス 次のガイドラインを使用して、各環境へのユーザーアクセスを制限することを検討してください。 開発:管理者を除くすべてのアカウントをロックアウトします。テスト:管理者およびリリースのユーザー受け入れテストに協力しているユーザーを除くすべてのアカウントをロックアウトします。トレーニング:トレーニングに参加していないユーザーをロックアウトします。 ユーザーアクセスは、スクリプトを使用して制限することも、ユーザーごとに手動で制限することもできます。 更新セット 更新セットは、特定のインスタンスに加えられた変更を追跡するために使用されます。更新セットをインスタンス間で転送して、カスタマイズを開発環境からテスト環境に移し、さらに本番システムに移します。 クローン以外のインスタンスバージョンをアップグレードする予定がある場合は、更新セットレコードを削除しないでください。アップグレードプロセスでは、レコードを使用してカスタマイズを復元します。 LDAP 開発およびテストインスタンスでのインポートと更新を無効にします。 開発またはテストインスタンスで [システム LDAP (System LDAP)] > [LDAP サーバー (LDAP Servers)] に移動します。各レコードを開き、[アクティブ] チェックボックスをオフにします。[更新] をクリックします。 スケジュール済みジョブ 開発およびテストインスタンスでアクティブなスケジュール済みジョブを無効にして、ジョブの重複を回避したり、開発用のクリーンなシステムを用意することができます。スケジュール設定済みジョブのインスタンス名を常に確認して、スクリプト化されたスケジュール済みジョブが 1 つのインスタンスでのみ実行されるようにしてください。以下のスクリプトの例では、スクリプトは my_instance_name という名前のインスタンスでのみ実行されます。 開発およびテストインスタンスで [システム定義] > [スケジュール済みジョブ] に移動します。アクティブなスケジュール済みジョブの各ジョブを開き、[アクティブ] チェックボックスをオフにします。[更新] をクリックします。インスタンス名をチェックするスクリプトの例 doSomething(); function doSomething() { var thisInstance = gs.getProperty("instance_name"); var instanceToRunOn = "my_instance_name"; if (thisInstance != instanceToRunOn) return; //start processing here gs.print('this is running');} MID サーバー Discovery または Orchestration に MID サーバーを使用している場合: MID サーバーにおいて config.xml ファイルで設定されているユーザーがインスタンスにも存在することを確認します。 MID サーバーのキューの ecc_sender フォルダーを空にします。これにより、クローンインスタンスにクリアなキューが提供されます。 MID サーバーのトラブルシューティング MID サーバーのユーザー資格情報が、ターゲットインスタンスに接続されるすべての MID サーバーが使用するように設定されている資格情報と一致していることを確認します。ターゲットインスタンスにコピーされたソース MID サーバーのユーザー資格情報は、既存の一連のターゲット MID Server で使用されているものと一致していない可能性があります。現在の MID サーバーに関連するクローン後のエラーについて、MID Server ダッシュボードで MID サーバーの問題を確認します。MID サーバーの問題 [ecc_agent_issue] テーブルには、インスタンスのクローン後に停止した MID サーバーのレコードが格納され、不正な資格情報が疑われる問題に関するエラーメッセージが発行されます。このテーブルのエラーチェックでは、クローン前にターゲットインスタンスに存在していた MID サーバーのみが検査されます。ecc_agent_issue テーブルのレコードは、MID Server フォームの [MID サーバーの問題] 関連リストで確認できます。インスタンスでは、このテーブルのレコードが 30 日間保持されます。 設定の自動化 頻繁にクローンを作成する場合は、クローン後の変更を自動化するスクリプトを用意すると便利です。このスクリプトは、クローンとともにコピーされるようにソースインスタンスに存在する必要があります。ServiceNow と連携して保護を追加し、ソースインスタンスでスクリプトを実行できないようにします。次の手順には、環境に合わせて編集できるサンプルスクリプトが含まれています。最初のセクションで正しい値を設定してください。 管理者は、次のプロセスを実行できます。インスタンスが高セキュリティを実行している場合は、製品ドキュメントの「 の昇格された権限を参照してください。 スクリプトを任意のテキストエディターにコピーし、ファイル拡張子を「.js」にして保存します。[システム定義] > [ファイルのアップロード (Upload File)] に移動し、ファイルをソースインスタンスにアップロードします。このモジュールでは、現在のノードにのみファイルがアップロードされます。[システム定義] > [スクリプト - バックグラウンド] に移動します。「アプリケーションメニューまたはモジュールを有効または無効にする」で説明されているように、[スクリプト - バックグラウンド] モジュールを有効にする必要がある場合があります。スクリプトを表示して実行します。 //define the instance names herevar devInstance = "mydev";var devEmailRedirect = "myemail@mycompany.com";var qaInstance = "myqa";var prodInstance = "my"; //get this instance's namevar thisInstance = gs.getProperty("instance_name");switch (thisInstance) { case devInstance: devConfig(); break; case qaInstance: qaConfig(); break; case prodInstance: gs.print("**** You're running this script in production, are you asking for trouble?"); break; default: gs.print("**** I don't understand what this instance is for: " + thisInstance);} function devConfig() { //set the base color gs.setProperty("css.base.color","mediumseagreen"); //disable email notifications gs.setProperty("glide.email.read.active",false); //disable all LDAP servers var ldap = new GlideRecord("ldap_server_config"); ldap.query(); while (ldap.next()) { active = false; ldap.update(); } //set header name gs.setProperty("glide.product.description","DEV Instance"); gs.print("Applied Dev Configurations");}function qaConfig() { //set the base color gs.setProperty("css.base.color","darkred"); //redirect all messages gs.setProperty("glide.email.test.user",devEmailRedirect ); //set header name gs.setProperty("glide.product.description","QA Instance"); gs.print("Applied QA Configurations");}