DockerにてGLPIを利用して資産管理を行っています。
実際にGLPIで運用している日本語情報が非常に少ないです。
オフラインの機器を多数管理するような場合に非常に使いやすいと思います。
前回記事の環境からアップグレードします。
※DBのバックアップは前回から変更ありません。
※OCS Inventory NGとの連携は行っていません。
####内容
- 9.2.1から9.3.3へのアップグレード時のデータベースエラー対応
- CASエラーについて
- データセンターのラック管理機能を利用する
####環境
Docker version 18.09.4
docker-compose version 1.24.0
hostOS:CentOS7-minimal
ベースイメージ
https://github.com/fjudith/docker-glpi
※オリジナルはmariaDBが5.5ですが10.3を使っています。
####ディレクトリ構成
/glpi933
├── app
│ ├── Dockerfile
│ ├── datainjection-2.6.4.tar.gz
│ └── php.ini
├── db
│ ├── 2019mmddHHMMSS.sql
│ ├── Dockerfile
│ └── script
│ └── db_backup.sh
├── docker-compose.yml
└── glpi.env
※php.ini, db_backup.sh, glpi.envは前回と同じです。
version: '2'
services:
db:
build: ./db
env_file:
- ./glpi.env
environment:
- "TZ=Japan"
volumes:
- glpi-db93:/var/lib/mysql
- ./db:/docker-entrypoint-initdb.d
- glpi-db-backup93:/backup
ports:
- 32806:3306/tcp
restart: always
app:
build: ./app
volumes:
- /etc/localtime:/etc/localtime:ro
environment:
- "TZ=Japan"
volumes:
- glpi-app93:/var/www/html/
- ./app/php.ini:/usr/local/etc/php/php.ini
links:
- db:mysql
ports:
- 8080:80/tcp
restart: always
volumes:
glpi-db93: {}
glpi-db-backup93: {}
glpi-app93: {}
####Dockerfile #app ※前回から変更箇所のみ
バージョン指定
ENV GLPI_VERSION=9.3.3
nanoをvimへ変更
RUN apt-get install --no-install-recommends -yqq \
zlib1g \
cron \
bzip2 \
wget \
vim
プラグインのバージョンアップ
COPY datainjection-2.6.4.tar.gz /var/www/html/plugins/
WORKDIR /var/www/html
RUN tar zxvf plugins/datainjection-2.6.4.tar.gz -C plugins/ && mv plugins/datainjection-2.6.4 plugins/datainjection
RUN rm plugins/remove.txt
EXPOSE 80
CMD apache2-foreground
####Dockerfile #db
FROM mariadb:10.3
RUN apt-get update
RUN apt-get install -y vim locales
RUN apt-get install -y language-pack-ja-base language-pack-ja
RUN locale-gen ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LC_CTYPE ja_JP.UTF-8
RUN localedef -f UTF-8 -i ja_JP ja_JP.utf8
COPY /script/db_backup.sh /opt/
RUN chmod +x /opt/db_backup.sh
RUN mkdir backup
###9.2.1から9.3.3へのアップグレード時のデータベースエラー対応
参考:GLPI 9.3 convert tables to innodb
流れとしては9.2.1から9.3.3へアップグレードしデータベースのマイグレーションを実施します。
9.4系へいきなりアップグレードするとinnodb_migration.phpが存在していないためマイグレーションできません。
1.GLPI9.3.3イメージをビルド
ログイン時には以下のエラーが表示されます。
2.GUIでGLPIインストール
インストールを完了せずにマイグレーションを実行すると下記エラーが発生します。
※CASエラーについて
とりあえず無視しても良いようです。
参考:GLPI フォーラム
3.データベースをマイグレーション
appコンテナへ接続してからスクリプトを実行します。
$ docker exec -it glpi933_app_1 bash
コンテナログイン後
# php scripts/innodb_migration.php
4.起動確認
ブラウザで再度アクセスすると以下のようにエラーが消えています。
5.install.phpを削除
ついでにinstall.phpを削除します。
$ docker exec -it glpi933_app_1 bash
コンテナログイン後
# rm /install/install.php
6.データベースをバックアップ
配置済みのスクリプトを実行
$ cd glpi933
$ docker exec glpi933_db_1 ./opt/db_backup.sh
7.バックアップの保存場所
/var/lib/docker/volumes/glpi933_glpi-db-backup/_data/
###データセンターのラック管理機能
ラックイメージに情報資産で登録しているサーバを登録できます。
9.3より新たに追加された機能の一つです。
判明している課題:ポジション(ラックの何段目)の前・後・右・左が指定できるのですが登録できる機器は
1段に一つのみとなっています。1段に2つの機器を置いている場合は登録できません。
しばらく運用してみてまた感想書きたいと思います。
前・後・右・左を指定しても以下のように表示は1段を専有
登録画面では前・後・右・左を指定可能
####次回試したいこと
- Dockerでcron登録
- 自動実行機能の利用
- GLPI 9.4へのアップグレード