2025年7月30日水曜日

alfresco community 7.4 → 25.x ansible アップグレード

【はじめに】 

今回はv7.4からv25.xへのアップグレート手順を記載する。

【手順の概要】

1.対応しているOS ここではubuntu24.04 server をインストール

2.alfresco25.xをansibleで自動構築する。

alfresco最新版(2025年7月現在v25.2)をダウンロード

git clone https://github.com/Alfresco/alfresco-ansible-deployment.git

解凍したフォルダへ移動

cd alfresco-ansible-deployment

python環境構築

sudo apt install pipenv python3-venv
python3.12 -m venv venv
source venv/bin/activate

pipenvを導入

pip3 install pipenv

pipenvによるAnsible依存関係のインストール

python3.12 -m pipenv install --deploy
python3.12 -m pipenv run ansible-galaxy install -r requirements.yml

アクセスするドメインURLを指定。可能性のあるドメインURLを全て指定する。指定を誤るとAlfrescoが起動してもファイル操作等ができない。設定内容はalfresco-global.propertiesに記録される。

sudo vi playbooks/group_vars/all.yml
# REQUIRED: add at least the Share url
# The first entry will also be used to assume the base URL of this alfresco install
# For more information please have a look at the
# [security_doc](https://github.com/Alfresco/alfresco-ansible-deployment/blob/master/docs/SECURITY.md#specify-trustworthy-applications)
acs_play_known_urls: [
http://192.168.100.1:8080/share #例 
https://192.168.100.1:8080/share  #例
https://ecm.acme.com/share #例
                                      ]
acs_play_major_version: 25

インストールタスクをcommunity用に調整 初期設定は有料版の検索サービスが選択されているため、従来の検索サービスに切り替える

sudo vi inventory_local.yml
   # Solr search engine (an alternative to Enterprise Search, and the only available option for the Community edition)
    search:
      children:
        # repository:  #コメントを削除
    # Enterprise Search (default search engine - not available in Community edition)
    search_enterprise:
      children:
       #  repository:  #コメント化
    elasticsearch:
      children:
       # repository:  #コメント化

Ansible vaultのパスワードを生成

openssl rand -base64 21 > ~/.vault_pass.txt
export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

シークレットを自動生成

pipenv run ansible-playbook -e vault_init=encrypted_file playbooks/secrets-init.yml

Ansibleのalfrescoインストールタスクを実行

pipenv run ansible-playbook playbooks/acs.yml -i inventory_local.yml -e "acs_play_repository_acs_edition=Community"

3.移行元サーバーからのデータ受入のため、samba serverを設定

sambaインストール

sudo apt install samba

共有フォルダ作成

sudo mkdir -p /smb/share
sudo chmod -R 777 /smb #上位フォルダを含めパーミッションを変更

設定ファイルに追記

sudo vi /etc/samba/smb.conf
[Share]
path = /smb/share
browseable = yes
read only = no
guest ok = yes

再起動で設定を反映

sudo systemctl restart smbd

4.移行元サーバーからデータ抽出・受入

※移行元サーバーで作業

移行先のサーバーのsambaフォルダをマウント

sudo mkdir /mnt/smb #任意のフォルダ名
sudo apt install cifs-utils  #下記エラー時
sudo mount -t cifs //移行先サーバのIPアドレス/share /mnt/smb

移行元のalfrescoを停止

sudo systemctl stop alfresco-content.service
sudo systemctl stop alfresco-search.service

データを移行先サーバーへコールドバックアップ

sudo rsync -avh /var/opt/alfresco/content-services/content /mnt/smb #shareコンテンツ
sudo rsync -avh /opt/alfresco/search-services/alfresco /mnt/smb #solrインデックス
sudo rsync -avh /opt/alfresco/search-services/archive /mnt/smb #solrバックアップ
sudo rsync -avh /etc/opt/alfresco/search-services/solrhome/alfrescoModels /mnt/smb #solrモデル

データベースをバックアップ

su -
su -postgres
pg_dumpall > /mnt/smb/任意のファイル名
exit

【必要時】カスタマイズ設定をバックアップ

sudo rsync -avh /etc/opt/alfresco/content-services/classpath/alfresco/extension /mnt/smb
sudo rsync -avh /etc/opt/alfresco/content-services/classpath/alfresco/web-extension /mnt/smb
sudo rsync -avh /etc/opt/alfresco/content-services/classpath/alfresco/messages /mnt/smb

5.移行先でのデータ差替

shareコンテンツの移行

sudo rm -R /var/opt/alfresco/content-services/content/contentstore #shareコンテンツ削除
sudo rm -R /var/opt/alfresco/content-services/content/contentstore.deleted #shareコンテンツ削除データ削除
sudo mv /smb/share/content/contentstore /smb/share/content/contendstore.delete /var/opt/alfresco/content-services/content/

solrデータの移行

#solrデータディレクトリ削除
sudo rm -R /var/opt/alfresco/search-services/alfresco/index
sudo rm -R /var/opt/alfresco/search-services/archive/index
#solrモデル削除
sudo rm -R /etc/opt/alfresco/search-services/solrhome/alfrescoModels
#solrデータディレクトリ移行
sudo mv /smb/share/alfresco/index /var/opt/alfresco/search-services/alfresco/
sudo mv /smb/share/archive/index /var/opt/alfresco/search-services/archive/
#solrモデル移行
sudo mv /smb/share/alfrescoModels /etc/opt/alfresco/search-services/solrhome/
#所有者をalfrescoに変更
sudo chown -hR alfresco:alfresco /var/opt/alfresco/search-services/alfresco/
 sudo chown -hR alfresco:alfresco /var/opt/alfresco/search-services/archive/
sudo chown -hR alfresco:alfresco /etc/opt/alfresco/search-services/solrhome/

データベースの移行

【必要時】rootパスワードを設定する。

sudo passwd root
su -
su -postgres
psql
drop database alfresco ;
create database alfresco ;
\q
psql  -f /smb/share/ダンプしたファイル名
exit

【必要時】カスタマイズ設定の移行

sudo mv /smb/share/alfresco/extension/custom-model-context.xml /smb/share/alfresco/extension/customModel.xml /etc/opt/alfresco/content-services/classpath/alfresco/extension/.
sudo mv /smb/share/alfresco/web-extension/share-config-custom.xml /etc/opt/alfresco/content-services/classpath/alfresco/web-extension/.
sudo mv /smb/share/alfresco/messages /etc/opt/alfresco/content-services/classpath/alfresco/
sudo chown -R alfresco:alfresco /etc/opt/alfresco/content-services/classpath/alfresco/extension
sudo chown -R alfresco:alfresco /etc/opt/alfresco/content-services/classpath/alfresco/web-extension
sudo chown -R alfresco:alfresco /etc/opt/alfresco/content-services/classpath/alfresco/messages

6.alfresco起動

sudo systemctl start alfresco-content.service
sudo systemctl start alfresco-search.service

【追加】起動・ログインできない場合

vars/secrets.ymlを初期化して、再度インストールタスクを実行

sudo vi vars/secrets.yml
 記載内容を全て削除
#アンインストールタスクを実行
 pipenv run ansible-playbook playbooks/platform-cleanup.yml -i inventory_local.yml
#vaultパスワード再作成
openssl rand -base64 21 > ~/.vault_pass.txt
export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
pipenv run ansible-playbook -e vault_init=encrypted_file playbooks/secrets-init.yml
#インストールタスクを再実行
pipenv run ansible-playbook playbooks/acs.yml -i inventory_local.yml -e "acs_play_repository_acs_edition=Community"

0 件のコメント:

コメントを投稿