null Alfresco Community Edition 7.1をAnsibleを利用してインストールする

こんにちは。相馬です。Blog記事ではご無沙汰しておりました。
先日、当BlogにてAlfresco Community Edition 7.1をディストリビューションzipからインストールする方法をご紹介いたしましたが、利用しているソフトウェアの個別のインストールと、それぞれに対しての設定が必要なため、手間のかかる手順となっておりました。

Alfresco CommunityではVersion 7.0以降、Dockerを使用しないサーバーの構築方法としてAnsibleを利用したインストールを提供しています。Ansibleはオープンソースのサーバー構成管理ツールで、あらかじめ用意した設定ファイルに従ってソフトウェアのインストールや設定を自動的に実行することができるツールです。Ansibleを利用してのインストールでは手順がplaybookファイルとして提供されているため、ansible-playbook コマンドを実行するだけでインストールが可能で、最新のAlfrescoを試してみようといった場合に以前提供されていたインストーラーの代わりとして気軽に利用できるインストール手段となっています。

なお、Ansibleではコマンドを実行するサーバーへのインストール(Local install)とリモートサーバーへのインストール(Remote install)が可能ですが、今回はローカルへのインストール手順をご紹介します。

 

準備

インストール先のサーバーにAnsibleをインストールして下さい、現在AnsibleでのAlfrescoインストールがサポートされているOSは

  • CentOS 7、8
  • Red Hat Enterprise Linux 7、8

と公式ドキュメントに記載がありますが、提供されたAnsible playbookを見ると

  • Ubuntu 18.04、20.04

もサポートされているようです。
なお、Alfresco Communi 7.1用に提供されたAnsible playbookでは、Ansible利用するPythonのバージョンが3系でないと問題が起きるため、Ansibleのインストールの際にPythonのバージョンにご注意ください。

 

インストール

公式ドキュメントInstall with Ansibleに記載された、 alfresco-ansible-deployment-1.1.1.zip をダウンロードして、インストール先のサーバに保存します。

任意のフォルダにzipファイルを展開後、

cd alfresco-ansible-deployment-1.1.1
sudo ansible-playbook playbooks/acs.yml -i inventory_local.yml -e "@community-extra-vars.yml"

として、Ansible playbookを実行してインストールを行います。

基本的にはこれだけでAlfresco Community Edition 7.1 がインストールされ起動されます。
ただし、Ansible playbookの実行では途中AlfrescoのバイナリやAlfrescoが使用するソフトウェアのダウンロードが行われ、これが比較的時間のかかる処理となるため、状況によっては途中ダウンロードが時間内に完了せずタイムアウトが発生してエラー終了してしまうことがあります。

自分の環境では比較的サイズが大きくホスティングサーバーからの転送が遅いため、ダウンロードに時間のかかるファイルが4つありました。ダウンロードに1ファイルあたり25~40分程度かかるため、インストールが途中で止まってしまったように見えたり、タイムアウトでエラー終了してしまうことがありました。また、タイムアウトしなかったとしてもファイルのダウンロードは順に行われるため、インストール完了まで2時間程度かかってしまうことになります。

これらの問題はファイルを事前ダウンロードすることで回避できますので、問題が起きた際は以下の手順を試してみて下さい。

 

タイムアウトエラーの回避方法

ダウンロードに時間のかかる以下の4ファイルをインストール先サーバーにダウンロードします。

インストール先OSがCentOS/Red Hat Enterprise linuxの場合

  • LibreOffice_6.3.5.2_Linux_x86-64_rpm.tar.gz

インストール先OSがUbuntuの場合

  • LibreOffice_6.3.5.2_Linux_x86-64_deb.tar.gz

以下3ファイルはOSに関係なく共通

  • alfresco-content-services-community-distribution-7.1.0.1.zip
  • alfresco-search-services-2.0.2.zip
  • alfresco-transform-core-aio-boot-2.5.3.jar

単独でダウンロードしてもダウンロード時間は変わりませんが、並行してダウンロードすることで全体のダウンロードにかかる時間を短縮することが可能です。

次に、一度playbookを実行します。

cd alfresco-ansible-deployment-1.1.1
sudo ansible-playbook playbooks/acs.yml -i inventory_local.yml -e "@community-extra-vars.yml"

Ansible playbookの実行途中で

TASK [../roles/transformers : Download libreoffice package archive]

といった、メッセージが出てファイルのダウンロードで実行が止まったように見える状態になったらCtrl+Cで実行を停止します。
これにより、ダウンロードファイルの保存先として使用される /tmp/ansible_artefacts/ フォルダが生成されますので、

  • LibreOffice_6.3.5.2_Linux_x86-64_rpm.tar.gz または LibreOffice_6.3.5.2_Linux_x86-64_deb.tar.gz
  • alfresco-content-services-community-distribution-7.1.0.1.zip
  • alfresco-search-services-2.0.2.zip

の3ファイルをこのフォルダに配置します。

次に、

  • alfresco-transform-core-aio-boot-2.5.3.jar

ファイルを /opt/alfresco/transform-service/ フォルダに配置し、以下のコマンドを実行して所有者/グループ、パーミッションを設定します。

sudo chown alfresco:alfresco /opt/alfresco/transform-service/alfresco-transform-core-aio-boot-2.5.3.jar
sudo chmod 775 /opt/alfresco/transform-service/alfresco-transform-core-aio-boot-2.5.3.jar

以上の配置を終えたあと、再度

sudo ansible-playbook playbooks/acs.yml -i  inventory_local.yml -e "@community-extra-vars.yml"

を実施します。これにより時間のかかるファイルのダウンロード処理がパスされますので、タイムアウトを回避することができます。

ansible-playbookコマンドがエラー無く最後まで終了すると、Alfrescoがインストールされ起動され起動された状態となり、http://<インストールしたサーバーのIPアドレス>/share にアクセスすることでインストールしたAlfrecoのshareログイン画面にアクセス可能です。

 

AnsibleでインストールしたAlfresco環境

AnsibleでインストールしたAlfrescoは従来のインストーラーでのインストールとは設定ファイルやログの配置場所が異なっています。
各配置場所は公式ドキュメントのFolder structureに記載されていますが、例えば、設定ファイルは /etc/opt/alfresco/ 以下に配置されるようになっています。

以上、Ansibleを使用してAlfrescoをインストールする手順をご紹介いたしました。Dockerが使えない/使わない環境にインストールする際はこの手順を参考にAlfrescoのインストールしてみてください。

 

管理ツールからユーザー検索できない問題への対処

以前のblog記事で解決方法を紹介した管理ツールからユーザー検索できない問題は、残念ながらAlfresco Community 7.1でも解消していません。
利用の際は対応が必要だと思われますので、対処方法を説明いたします。

Ansibleでインストールした環境では、修正対象となるファイル share-config-custom.xml
/etc/opt/alfresco/content-services/classpath/alfresco/web-extension/share-config-custom.xml
に配置されています。

ファイルの中の以下の部分にある show-authorization-status をfalseに書き換えることで問題は解消されます。

   <config evaluator="string-compare" condition="Users" replace="true">
      <users>
         <!-- minimum length for username and password -->
         <username-min-length>2</username-min-length>
         <password-min-length>3</password-min-length>
         <show-authorization-status>true</show-authorization-status>
      </users>
      <!-- This enables/disables the Add External Users Panel on the Add Users page. -->
      <enable-external-users-panel>false</enable-external-users-panel>
   </config>

以下のように書き換えます。

   <show-authorization-status>false</show-authorization-status>

その後、

sudo systemctl restart alfresco-content.service

としてAlfrescoの再起動を行うことで問題が解消された状態となります。

関連記事
install
install

RANKING
2020.10.12
2020.11.19
2020.12.23
2020.10.05
2020.11.25