あるサーバーから別のサーバーへ、または 1 つの AEM インスタンスから別のサーバーへ、AEM に ACL 権限があるユーザーとグループを移行する方法。

手順

1、ユーザーとグループの移行

(ユーザーが LDAP 経由で自動的に読み込まれなかった場合)古いシステム(管理者および匿名の OOTB ユーザーを除く)のパッケージユーザーおよびグループ(2 つの別々のパッケージ)

  1. CRXDE lite app /crx/de/index.jsp にアクセスして管理者ユーザーとしてログインしてください(古いシステムの場合)。

  2. “Tools” => “Query” に移動

  3. 下部の「クエリ」ボックスで、管理ユーザーを見つけるには、このクエリを入力:/jcr:root/home/users//element(*,rep:User)[@rep:principalName="admin"]

  4. 「実行」をクリックして、管理者ユーザーノードのパスをテキストファイルの結果にコピーします。

  5. 匿名ユーザーのクエリで手順 3 を繰り返します。/jcr:root/home/users//element(*,rep:User)[@rep:principalName="anonymous"]

  6. 「実行」をクリックして、匿名ユーザーノードのパスをテキストファイルの結果にコピーします(これで「管理者」と「匿名」の 2 つのパスを持つことになります)。

    例:

    • /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv – パッケージを作成しているシステムの管理ユーザー
    • /home/users/K/Kj1406Qo9IDODc_nk5Ib – パッケージを作成しているシステムの匿名ユーザー
  7. 「パッケージマネージャー」http://host:port/crx/packmgr/index.jsp にアクセスし、管理者としてログインします。

  8. パッケージ「users」を作成します。

  9. (/home/users フィルターに対する)次の除外ルールを持つフィルターを /home/users のパッケージ設定に追加します。

    • exclude /home/users/.*/.tokens
    • exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    • exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    • exclude /home/users/a/admin
    • exclude /home/users/a/anonymous
    • exclude /home/users/system
    • exclude /home/users/geometrixx
    • exclude /home/users/media
    • exclude /home/users/projects
    • exclude /home/users/mac
  10. パッケージをビルドします。

  11. パッケージをダウンロードします。

  12. コンピューター上にパッケージの zip ファイルを解凍します。

    jar -xvf users.zip META-INF/vault/filter.xml

  13. テキストエディターで META-INF/vault/filter.xml ファイルを開きます。

  14. mode="merge" を<filter ...> タグに追加、例:

    <?xml version="1.0" encoding="UTF-8"?>
    <workspaceFilter version="1.0">
    <filter root="/home/users" mode="merge">
    <exclude pattern="/home/users/.*/.tokens"/>
    <exclude pattern="/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv"/>
    <exclude pattern="/home/users/K/Kj1406Qo9IDODc_nk5Ib"/>
    <exclude pattern="/home/users/a/admin"/>
    <exclude pattern="/home/users/a/anonymous"/>
    <exclude pattern="/home/users/system"/>
    <exclude pattern="/home/users/geometrixx"/>
    <exclude pattern="/home/users/media"/>
    <exclude pattern="/home/users/projects"/>
    <exclude pattern="/home/users/mac"/>
    </filter>
    </workspaceFilter>

  15. 変更内容が含まれるように、変更済みのパッケージ内容を再圧縮します。

    jar -uvf users.zip META-INF/vault/filter.xml

  16. /home/groups フィルタールールを含む「groups」パッケージを作成します。

  17. グループパッケージのために手順 11~14 を繰り返します。

  18. (アップグレードのみ)より新しい AEM バージョンに移行を実行する場合、古いバージョンの(nosamplecontent と共に)新しいローカル AEM をインストールし、ユーザーパッケージをインストールしてから、グループパッケージをインストールしてください。次に、そのインスタンスの新しいバージョンへのインプレースアップグレードを実行します。これにより、ユーザーは新しい Oak 表現に変換されます。インプレースアップグレード後に、ユーザーを再びパッケージ化してご指定のアップグレードされたインスタンスに移植します。ユーザーグループの場合は同じ操作を行います。

  19. 新しいシステムに users パッケージをインストールします。

  20. 新しいシステムに groups パッケージをインストールします。

  21. AEM の以前のバージョンから 6.3 に移行する場合は、/useradmin UI にアクセスし「管理者」グループにユーザーのレプリケーション - 受信を追加します。

2、ACL の移行

ツール(ACS Commons)を AEM にインストールできる場合は、次の手順に従ってください。

  1. ACS Commons をダウンロードしてインストールしてください。

  2. ここに記載されている手順に従って、ACL パッケージを作成します。

  3. http://aem-host:port/crx/packmgr/index.jsp にアクセスし、管理者としてログインします。

  4. ACL パッケージをクリックします。

  5. 「編集」をクリックします。

  6. 「詳細」タブを選択します(以下のスクリーンショットを参照)。

  7. AC 処理ドロップダウンメニューで、結合を選択して、宛先システム上の既存の ACL を削除しないようにします。異なるバージョンの AEM 間で ACL を移行する場合は、これが特に重要です(デフォルトの ACL が削除されるのを防ぐことができます)。

AEM にツール(ACS Commons)をインストールできない場合は、次の手順に従ってください。これらのコマンドを実行するマシンは、cURL、python、および Java SDK がインストールされた Mac OS、Linux、または Windows(Cygwin を使用)である必要があることに注意してください。

  1. http://src-aem-host:port/crx/packmgr/index.jsp にアクセスし、管理者としてログインしてください。

  2. 「ACLー移行」という名のパッケージを作成します。

  3. 「編集」ボタンをクリックします。

  4. アドバンスタブを選択し、AC の処理モードを結合に設定します。

  5. 保存します。

  6. パッケージを作成してダウンロードします。

  7. ファイルシステム上で META-INF/vault/filter.xml file ファイルを抽出するためにパッケージのこのコマンドを実行してください。

    jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml
  8. 同じディレクトリで、このコマンドを実行し、ソースインスタンスから /content 下の ACL パスの JSON ファイルをダウンロードします(ユーザー名とパスワードを設定し、ホストを修正します)。

    curl -u admin:admin 'http://aemhost/crx/de/query.jsp?' -G --data-urlencode '_dc=1507011481908&_charset_=utf-8&type=xpath&stmt=/jcr:root/content//element(*,rep:ACL)&showResults=true' > data.json
  9. generate-package-filter.py ファイルを作成し、python コードを下記のコマンドの内部にペーストします。

     import json
     from pprint import pprint
    
     with open('data.json') as data_file:
         data = json.load(data_file)
    
     print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
     print("<workspaceFilter version=\"1.0\">")
     for item in data["results"]:
         print("<filter root=\"{path}\" />".format(path=item["path"]))
     print("</workspaceFilter>")
  10. data.json が作成された同じフォルダーから python スクリプトを実行し、META-INF/vault/filter.xml に出力を保存します(filter.xml の既存のコンテンツを置き換えます)。

     python generate-packge-filter.py > META-INF/vault/filter.xml
  11. このコマンドを使用して、zip ファイル内の filter.xml を更新します。

     jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml
  12. ソースインスタンスパッケージマネージャーに zip ファイルをアップロードします。http://src-aem-host:port/crx/packmgr/index.jsp

  13. 「構築」あるいは「再構築」をクリックしてパッケージを構築してください。

  14. ソース AEM サーバーから、パッケージをダウンロードします。

  15. 宛先の AEM サーバのーパッケージマネージャーにパッケージをアップロードします。http://dst-aem-host:port/crx/packmgr/index.jsp

  16. 「インストール」をクリックしてインストールします。

  17. 「パス curl コマンド」を変更するその他のパスに対して手順 8~16 を繰り返します。例えば、これは /content の代わりに /etc の下に ACL を取得します。

     curl -u admin:admin 'http://aemhost/crx/de/query.jsp?' -G --data-urlencode '_dc=1507011481908&_charset_=utf-8&type=xpath&stmt=/jcr:root/etc//element(*,rep:ACL)&showResults=true' > data.json

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー