2025年7月19日土曜日

alfresco community7.0 → 7.4 ansible アップグレード

【はじめに】 

alfresco community(ansibleインストール)のアップグレードにつまずき、気がつけばv25.1になっていたが、最近やっと成功したため、設定を記録しておく。v25.1に直接アップグレートできるのはv7.4以降のため、今回はv7.4へのアップグレート手順を記載する。

【手順の概要】

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

2.alfresco7.4をansibleで自動構築する。

alfresco7.4(リリースVer.2.3.0)をダウンロード

sudo curl -OL https://github.com/Alfresco/alfresco-ansible-deployment/archive/refs/tags/v2.3.0.zip

ダウンロードしたファイルを解凍

sudo apt install unzip #必要時
sudo unzip v2.3.0.zip

解凍したフォルダへ移動

cd alfresco-ansible-deployment-2.3.0

python3系のパッケージ管理システムpipをインストールし、pipenvを導入

sudo apt-get install python3-pip
pip3 install --user pipenv

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

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

Ansible vaultのパスワードを生成

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

シークレットを自動生成

sudo chmod 777 vars   #下記のタスクでエラーが出る場合
python3 -m pipenv run ansible-playbook -e vault_init=encrypted_file playbooks/secrets-init.yml

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

sudo vi inventory_local.yml
---
all:
  vars:
    ansible_connection: local
  children:
    repository:
      vars:
        known_urls:
          - http://localhost/share #自サーバーのURLに変更 例192.168.100.1:8080/share
          - https://localhost/share
      hosts:
        localhost:

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

sudo chmod 777 configuration_files #エラーが出る場合
python3 -m pipenv run ansible-playbook playbooks/acs.yml -i inventory_local.yml -e "@community-extra-vars.yml"

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

sambaインストール

sudo apt install samba

共有フォルダ作成

sudo mkdir -p /smb/share
sudo chmod -R 777 /smb/share

設定ファイルに追記

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 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 /var/opt/alfresco/search-services/alfresco /mnt/smb #solrインデックス
sudo rsync -avh /var/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コンテンツの移行

#shareコンテンツデータ削除
sudo rm -R /var/opt/alfresco/content-services/content/contentstore
sudo rm -R /var/opt/alfresco/content-services/content/contentstore.deleted
#移行元からコピーしたshareコンテンツデータをインストール先へ移動
sudo mv /smb/share/content/contentstore /smb/share/content/contentstore.deleted /var/opt/alfresco/content-services/content/

#所有者をalfrescoに変更

sudo chown -hR alfresco:alfresco /var/opt/alfresco/content-services/

solrデータの移行

#solrデータディレクトリ削除
sudo rm -R /opt/alfresco/search-services/alfresco/index
sudo rm -R /opt/alfresco/search-services/archive/index
#solrモデル削除
sudo rm -R /etc/opt/alfresco/search-services/solrhome/alfrescoModels
#solrデータディレクトリ移行
sudo mv /smb/share/alfresco/index /opt/alfresco/search-services/alfresco/
sudo mv /smb/share/archive/index /opt/alfresco/search-services/archive/
#solrモデル移行
sudo mv /smb/share/alfrescoModels /etc/opt/alfresco/search-services/solrhome/
#所有者をalfrescoに変更
sudo chown -hR alfresco:alfresco /opt/alfresco/search-services/alfresco/
sudo chown -hR alfresco:alfresco /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を初期化して、再度インストールタスクを実行
alfresco-global.propertiesをカスタマイズしている場合は、インストールタスク終了後再度設定

sudo vi vars/secrets.yml
 記載内容を全て削除
openssl rand -base64 21 > ~/.vault_pass.txt
export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
python3 -m pipenv run ansible-playbook -e vault_init=encrypted_file playbooks/secrets-init.yml
python3 -m pipenv run ansible-playbook playbooks/acs.yml -i inventory_local.yml -e "@community-extra-vars.yml"

0 件のコメント:

コメントを投稿