グループウェア「Aipo」を別サーバーに移行

aipo移行作業をしたときの覚書。ちなみにAipoのインストール・導入は初めて。

環境

移行元: CentOS 5.10, Aipo 7.0.2.0
移行先: CentOS 6.7, Aipo 7.0.2.0

 

参考

 

目次

  1. 移行先に必要なライブラリをインストール
  2. 同じバージョンのAipoを移行先にインストール
  3. 移行元からデータを移行
  4. 移行先サーバーでリストア
  5. nginxにリバースプロキシの設定

 


1.移行先に必要なライブラリをインストール

移行先のサーバーで必要なライブラリをインストールする。
# yum install gcc nmap lsof unzip readline-devel zlib-devel sudo

 


2.同じバージョンのAipoを移行先にインストール

公式サイトのダウンロードから移行元と同じバージョンをダウンロードしてくる。

解凍して/usr/localに配置
# tar -xzvf aipo7020aja_linux64.tar.gz
# cd aipo7020aja_linux
# tar -xzvf aipo7020.tar.gz
# mv aipo /usr/local/

インストール実行
# cd /usr/local/aipo
# sh ./bin/installer.sh

ファイヤーウォール設定
# system-config-firewall-tui

ポート番号: 81
プロトコル: tcp

スタートしてみる
# ./bin/startup.sh

found temp directory
Using CATALINA_BASE:   /usr/local/aipo/tomcat
Using CATALINA_HOME:   /usr/local/aipo/tomcat
Using CATALINA_TMPDIR: /usr/local/aipo/tomcat/temp
Using JRE_HOME:        /usr/local/aipo/./jre
Using CLASSPATH:       /usr/local/aipo/tomcat/bin/bootstrap.jar
Starting Aipo Version 7.0.2.0
Aipo URL: http://192.168.1.86:81/aipo/

http://192.168.1.86:81/aipo/にアクセスすると、ログイン画面が表示された。

 


3.移行元からデータを移行

移行元でバックアップ処理
# cd /usr/local/aipo
# ./bin/backup_handler.sh

確認
# ls backup

バックアップファイルを移行先に移動させる
# cd backup/
# tar -czvf aipo_data.tgz 2015092919360/
# mv aipo_data.tgz ~/

 


4.移行先サーバーでリストア

バックアップデータを移行先へ置いて解凍。
# mv aipo_data.tgz /usr/local/aipo/backup/
# cd /usr/local/aipo/backup/
# tar -xzvf aipo_data.tgz
# rm aipo_data.tgz

リストア実行
# cd /usr/local/aipo/bin/
# ./restore_handler.sh

pg_restore: [archiver (db)] could not execute query: ERROR:  role "aipo_postgres0" does not exist
    Command was: GRANT ALL ON SCHEMA public TO aipo_postgres0;

PostgreSQLに接続して確認する

パスワードの確認
# cd /usr/local/aipo/
# less tomcat/webapps/aipo/WEB-INF/datasource/dbcp-org001.properties

データベース名も「org001」というのが判明。

接続
# ./postgres/bin/psql --username=aipo_postgres org001

Role(ユーザー)の確認
org001=# \du

              List of roles
   Role name   | Attributes  | Member of
---------------+-------------+-----------
aipo_postgres | Superuser   | {}
               : Create role
               : Create DB

「aipo_postgres0」というRoleは確かにいない。

作ることにした。
org001=# CREATE ROLE aipo_postgres0 WITH SUPERUSER PASSWORD 'hogehoge';

確認
org001=# \du
org001=# \q

Aipoの設定ファイルを編集。「aipo_postgres0」にする。
# less tomcat/webapps/aipo/WEB-INF/datasource/dbcp-org001.properties
# less tomcat/webapps/ROOT/WEB-INF/datasource/dbcp-org001.properties

Aipoを再起動してリストアを実行
# ./bin/shutdown.sh
# ./bin/startup.sh
# ./bin/restore_handler.sh

ブラウザでアクセスしてみるとエラー

セッションがタイムアウトしました。

ブラウザが切り替わらない場合は、再読み込みをお願いいたします。
timeout

ログを確認する
# less tomcat/logs/aipo.log

2015-09-30 12:29:15,090 <ERROR> (http-81-1) [JetspeedLogger.java:157]- [org001] Failed to retrieve user 'anon'
org.apache.cayenne.CayenneRuntimeException: [v.2.0.4 October 12 2007] Error detecting database type

権限周りが怪しい感じ。さっきは「aipo_postgres0」を作っただけなので、権限を設定してみる。
# ./postgres/bin/psql --username=aipo_postgres org001

org001=# ALTER ROLE aipo_postgres0 WITH CREATEROLE CREATEDB LOGIN;
org001=# \du
org001-# \q

Aipoを再起動
# ./bin/shutdown.sh
# ./bin/startup.sh

ブラウザでアクセスすると無事ログイン画面が表示された。

 


5.nginxにリバースプロキシの設定

URLにポート番号が付いているのはカッコ悪いのでリバースプロキシの設定をする。

# cd /etc/nginx/conf.d/
# vi aipo.conf

#
# Aipo
#
server {
    listen       80;
    server_name  gw.hoge.co.jp;

    access_log /var/log/nginx/aipo.access.log;
    error_log /var/log/nginx/aipo.error.log;

    location = /robots.txt  { access_log off; log_not_found off; }
    location = /favicon.ico { access_log off; log_not_found off; }

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:81;
        client_max_body_size    20M;
    }
}

nginx設定読み込み
# /etc/rc.d/init.d/nginx configtest
# /etc/rc.d/init.d/nginx reload

 

< Related Posts >