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

pipenvを導入

python3.12 -m 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"

2025年7月19日土曜日

Hyper-VのguestOSの容量を増やす(ubuntu24.04 server)

Hyper-V側で仮想HDDを拡張

ゲストOSにチェックポイントが設定されていると、最終的にディスク編集ができません。チェックポイントを削除する必要があります。

ゲストOSを選択し、右サイドバーの「操作」から「ディスクの編集」をクリック
ゲストOSのVHDXファイルを選択します。

拡張を選択

拡張後の仮想HDDのサイズを入力

完了をクリックし、物理HDDに仮想HDD領域を確保します。

ゲストOSのパーティションを確認

sudo fdisk -l
Disk /dev/sda: 127 GiB, 136365211648 bytes, 266338304 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: E709E64B-C0D4-4152-BAFB-C381967535DF

Device Start End Sectors Size Type
/dev/sda1 2048 2203647 2201600 1G EFI System
/dev/sda2 2203648 6397951 4194304 2G Linux filesystem
/dev/sda3 6397952 266336255 259938304 123.9G Linux filesystem


Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 61.97 GiB, 66542632960 bytes, 129966080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

ゲストOSのパーティションを編集

sudo parted
GNU Parted 3.6
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)print
Warning: Not all of the space available to /dev/sda appears to be used, you canfix the GPT to use all of the space (an extra 606085120 blocks) or continue with the current setting?
Fix/Ignore? Fix
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 136GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system  Name  Flags
 1      1049kB  1128MB  1127MB  fat32              boot, esp
 2      1128MB  3276MB  2147MB  ext4
 3      3276MB  136GB   133GB

(parted)resizepart 3
End? [136GB]? 300GB
(parted)q
sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                Li6Css-BOTE-NzKj-Z8Hz-bgNx-csSY-TAn16D
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2025-05-17 06:32:40 +0000
  LV Status              available
  # open                 1
  LV Size                61.97 GiB
  Current LE             15865
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
#フルサイズに拡張できない場合 以下を追加
sudo growpart /dev/sda 3
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

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コンテンツの移行

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/contentstore.deleted /var/opt/alfresco/content-services/content/
#所有者をalfrescoに変更
sudo chown -hR alfresco:alfresco /var/opt/alfresco/content-services/

solrデータの移行

sudo rm -R /opt/alfresco/search-services/alfresco/index #solrインデックス削除
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/ #solrインデックス移行
sudo mv /smb/share/archive/index /opt/alfresco/search-services/archive/ #solrバックアップ移行
sudo mv /smb/share/alfrescoModels /etc/opt/alfresco/search-services/solrhome/ #solrモデル移行
#所有者を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を初期化して、再度インストールタスクを実行

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"