【はじめに】
今回はv7.4からv25.xへのアップグレート手順を記載する。
【手順の概要】
1.対応しているOS ここではubuntu24.04 server をインストール
2.alfresco25.xをansibleで自動構築する。
alfresco最新版(2025年7月現在v25.2)をダウンロード
解凍したフォルダへ移動
pipenvを導入
pipenvによるAnsible依存関係のインストール
python3.12 -m pipenv run ansible-galaxy install -r requirements.yml
アクセスするドメインURLを指定。可能性のあるドメインURLを全て指定する。指定を誤るとAlfrescoが起動してもファイル操作等ができない。設定内容はalfresco-global.propertiesに記録される。
# 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用に調整 初期設定は有料版の検索サービスが選択されているため、従来の検索サービスに切り替える
search:
children:
# Enterprise Search (default search engine - not available in Community edition)
search_enterprise:
children:
# repository: #コメント化
elasticsearch:
children:
# repository: #コメント化
Ansible vaultのパスワードを生成
export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
シークレットを自動生成
Ansibleのalfrescoインストールタスクを実行
3.移行元サーバーからのデータ受入のため、samba serverを設定
sambaインストール
共有フォルダ作成
sudo chmod -R 777 /smb #上位フォルダを含めパーミッションを変更
設定ファイルに追記
path = /smb/share
browseable = yes
read only = no
guest ok = yes
再起動で設定を反映
4.移行元サーバーからデータ抽出・受入
※移行元サーバーで作業
移行先のサーバーのsambaフォルダをマウント
sudo apt install cifs-utils #下記エラー時
移行元のalfrescoを停止
sudo systemctl stop alfresco-search.service
データを移行先サーバーへコールドバックアップ
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 -postgres
pg_dumpall > /mnt/smb/任意のファイル名
exit
【必要時】カスタマイズ設定をバックアップ
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.deleted #shareコンテンツ削除データ削除
sudo mv /smb/share/content/contentstore /smb/share/content/contendstore.delete /var/opt/alfresco/content-services/content/
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パスワードを設定する。
su -postgres
psql
drop database alfresco ;
create database alfresco ;
\q
psql -f /smb/share/ダンプしたファイル名
exit
【必要時】カスタマイズ設定の移行
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-search.service
【追加】起動・ログインできない場合
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"