CMDBuildとは
CMDBuildは、クラウド環境に最適な構成管理システムです。
仮想化環境での論理構成と物理構成の複雑化、変更の高頻度・高速化による構成情報の爆発に対して、強力な自動化機能、外部システム連携機能を備え、運用管理自動化基盤を実現します。
詳細は以下をご参照ください。
https://www.cmdbuild.org/en
https://www.ossl.co.jp
また、本記事は以下記事のアップデート版となります。
https://qiita.com/satoruf/items/558132e8cf6e4e0a55e6
CMDBuildの特長
オープンソース(GNU Affero General Public License)
・主要機能が無料で使用可能
・サポートライセンスを購入すれば、モバイルアプリおよびQA、障害対応、バグフィックス/ワークアラウンドの提供、新機能の早期提供をサポート
自由なデータモデル
・構成アイテム(サーバ等)と属性情報(担当者連絡先、契約情報、ロケーション等)の関係を自由に定義可能
・ITIL V3に準拠したプロセスをサポート
稼働条件
・CMDBuild 3.3.2
・メモリ16GB推奨
・ディスク空き容量120GB以上推奨
・PostgreSQL 9.6 to 10.x;
・ApacheTomcat 9.0
・JDK 1.11
・DMS(Alfresco Community recommended - optional)
稼働条件の詳細は以下に記載されております。
https://www.cmdbuild.org/en/download/latest-version
CMDbuildインストール環境(CentOS7)
・CentOS 7.9
・CMDBuild 3.3.2
・PostgreSQL 9.6.23
・openjdk 11
・ApacheTomcat 9.0.53
・Alfresco Community 6
・SELinuxはDisabled、Firewalldは停止されていること
・作業はすべてrootで実施
・CMDbuildインストール時に必要なパッケージをインストールするためインターネットへの接続が可能なこと
CMDBuildインストール手順
Javaインストール
以下のサイトからOracleJDK11をダウンロードし、適当なディレクトリに配置しインストールします。
https://jdk.java.net/archive/
・ファイル名:openjdk-11_linux-x64_bin.tar.gz
・配置先:/root
# cd /root
# wget https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz
# mkdir -p /usr/java
# tar xvzf openjdk-11_linux-x64_bin.tar.gz -C /usr/java
# alternatives --install /usr/bin/java java /usr/java/jdk-11/bin/java 1
# alternatives --install /usr/bin/javac javac /usr/java/jdk-11/bin/javac 1
# ln -s /usr/java/jdk-11 /usr/java/latest
# ln -s /usr/java/latest /usr/java/default
javaインストール確認
# java --version
openjdk 11 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
# javac --version
javac 11
PostgreSQLインストール
以下のコマンドでPostgreSQLをインストールし、DBの初期化を行います。
# rpm -ivh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# yum install postgresql96-server postgresql96-devel
# /usr/bin/postgresql-9.6-setup initdb
初期化後、以下の設定ファイルの修正を行います。
※PostgreSQLの修正は環境に合わせて修正を行ってください。
パス:/var/lib/pgsql/9.6/data
設定ファイル:postgresql.conf
# vim /var/lib/pgsql/9.6/data/postgresql.conf
※以下の設定値を修正
#listen_addresses = 'localhost'
#port = 5432
↓
listen_addresses = '*'
port = 5432
パス:/var/lib/pgsql/9.6/data
設定ファイル:postgresql.conf
# vim /var/lib/pgsql/9.6/data/pg_hba.conf
※以下のように修正します。
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 0.0.0.0/0 trust
# IPv6 local connections:
host all all ::1/128 trust
設定修正後、PostgreSQLのサービスの自動起動を有効化し、起動します。
# systemctl enable postgresql-9.6.service
# systemctl start postgresql-9.6.service
Tomcatインストール
以下のサイトからApache Tomcatをダウンロードし、インストールします。
http://tomcat.apache.org/
・ファイル名:apache-tomcat-9.0.53.tar.gz
・Tomcatインストール先ディレクトリ:/opt/tomcat/cmdbuild
# cd /root
# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz
# tar zxvf apache-tomcat-9.0.53.tar.gz
# mkdir -p /opt/tomcat
# mv apache-tomcat-9.0.53 /opt/tomcat/cmdbuild
# rm -rf /opt/tomcat/cmdbuild/webapps/docs
# rm -rf /opt/tomcat/cmdbuild/webapps/examples/
setenv.shを作成します。
パス:/opt/tomcat/cmdbuild/bin
設定ファイル:setenv.sh
# vim /opt/tomcat/cmdbuild/bin/setenv.sh
※以下を設定します、以下の値は環境に合わせて修正を行ってください。
JAVA_HOME=/usr/java/default
export CATALINA_OPTS="-Dfile.encoding=UTF-8 -Xms8g -Xmx10g -server"
LANG="ja_JP.UTF-8"
起動スクリプトを作成します。
パス:/usr/lib/systemd/system
設定ファイル:cmdbuild.service
# vim /usr/lib/systemd/system/cmdbuild.service
※以下を設定します。
[Unit]
Description=Apache Tomcat
After=network.target
[Service]
Type=oneshot
ExecStart=/opt/tomcat/cmdbuild/bin/startup.sh
ExecStop=/opt/tomcat/cmdbuild/bin/shutdown.sh
RemainAfterExit=yes
User=tomcat
[Install]
WantedBy=multi-user.target
CMDBuild3.3.2インストール
以下のサイトからCMDBuild3.3をダウンロードし、適当なディレクトリに配置します。
https://www.cmdbuild.org/en/download/latest-version
・ファイル名:cmdbuild-3.3.2.war
・配置先:/root
# cd /root
# mv cmdbuild-3.3.2war /opt/tomcat/cmdbuild/webapps/cmdbuild.war
tomcatユーザを作成し、Tomcatインストールディレクトリのオーナ/グループを修正します。
# useradd -M tomcat
# chown -R tomcat. /opt/tomcat
warファイルの配置、Tomcatディレクトリの権限修正後、CMDbuildのサービスの自動起動を有効化し、起動します。
# systemctl enable cmdbuild.service
# systemctl start cmdbuild.service
サービス起動後、CMDBuildのWebUIにアクセスできることを確認し、初期設定を行います。
http://<CMDbuildのIPアドレス>:8080/cmdbuild
以下の情報を入力し、「Test database connection」を選択し、設定に問題がないことを確認します。
設定に問題がないことを確認し、「Configure」を選択し、初期設定を完了します。
・Type:Demo # 「Empty」、「Demo」、「Existing」、「Upload backup」より選択
・Name:cmdbuild # DB名を入力
・Host:localhost # PostgreSQLのアドレスを入力
・Port:5432 # PostgreSQLのポートを入力
・Username:cmdbuild # DBのユーザを入力
・Password:password # DBのユーザパスワードを入力
・Admin username:postgres # DBの管理ユーザを入力
・Admin password:postgres # DBの管理ユーザパスワードを入力
※事前にDB、ロールの作成は必要なく、デモデータベース作成の際に必要なDB、ロールが作成されます。
※上記の情報を入力し、「Test database connection」を選択後にエラーが発生する場合は、以下を実施し、再度CMDBuildのWebUIにアクセスし、初期設定を行います。
# cp -p /opt/tomcat/cmdbuild/webapps/cmdbuild/WEB-INF/lib_ext/postgresql-42.2.5.jar /opt/tomcat/cmdbuild/lib/
# systemctl restart cmdbuild.service
初期設定完了後、CMDBuildのログイン画面に切り替わり、以下のアカウントでログインできることを確認します。
http://<IPアドレス>:8080/cmdbuild
ユーザ:admin
パスワード:admin
ログイン後、以下のようなDemo画面が表示されることを確認します。
また、用意されている「cmdbuild.sh」を使用することにより、設定の変更、設定の確認、現在のステータス等を確認することができます。
パス:/opt/tomcat/cmdbuild/webapps/cmdbuild
設定ファイル:cmdbuild.sh
・設定変更例
DMSサービスの有効化)
# cd /opt/tomcat/cmdbuild/webapps/cmdbuild
# ./cmdbuild.sh restws setconfig org.cmdbuild.dms.enabled true
cmdbuild r setconfig org.cmdbuild.dms.enabled 'true'
# ./cmdbuild.sh restws reload
OK
・設定の確認
# cd /opt/tomcat/cmdbuild/webapps/cmdbuild
# ./cmdbuild.sh restws configs
org.cmdbuild.database.db.admin.password postgres
org.cmdbuild.database.db.password password
org.cmdbuild.database.db.username cmdbuild
org.cmdbuild.database.db.admin.username postgres
org.cmdbuild.database.db.url jdbc:postgresql://localhost:5432/cmdbuild
org.cmdbuild.core.logger.config paxg2c6uehd0gggg4c69sudlpmttq4ohgfefeoaqd75o9l4eslk566q0e2s3g0pa7v02g77sppdm8r1jnmmb6t759avjkelbv...
org.cmdbuild.core.config.ready true
org.cmdbuild.sql.ddl_log.enabled true
org.cmdbuild.auth.preferredPasswordAlgorythm cm3easy
org.cmdbuild.workflow.enabled true
org.cmdbuild.dms.enabled true ※設定変更したDMSサービスが有効化される
・現在のステータス確認
# cd /opt/tomcat/cmdbuild/webapps/cmdbuild
# ./cmdbuild.sh restws status
system status: READY
BIM Service disabled
BIM_ Bimserver client disabled
Clustering disabled
DMS Service * ready
DMS_ CMIS client * ready
DMS_ SharePoint Online disabled
Email Queue disabled
GIS Service disabled
GIS_ GeoServer client disabled
Log Service * ready
Multitenant disabled
Scheduler Service (core) * ready
Scheduler_ Jobs disabled
Workflow Engine * ready
version: 3.3.2
build: 6bd7d2d/6bd7d2d69bfda629db7499d47127fff0e06aa427 (2021-05-03T14:38:23Z) (dirty)
runtime: java 11 (OpenJDK 64-Bit Server VM Oracle Corporation 11+28)
uptime: qiita-cmdbuild332 18m 49.504s
memory: 150 MB used, 2,147 MB total, 4,294 MB max (java heap memory)
process: pid 1159, 2,075 MB total (process memory)
db pool: 1 active, 19 idle, 50 max
Alfresco Communityインストール手順(オプション)
CMDbuildから添付ファイル機能を使用するためにAlfresco Communityをインストールします。
Alfresco用Javaのインストール
Alfresco Community v6はJava11に対応していないため、Java8を使用します。
以下のサイトからJDK8をダウンロードし、適当なディレクトリに配置します。
https://www.oracle.com/jp/java/technologies/javase/javase8-archive-downloads.html
・ファイル名:jdk-8u202-linux-x64.tar.gz
・配置先:/root
# cd /root
# tar xvzf jdk-8u202-linux-x64.tar.gz -C /usr/java
# alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_202/bin/java 2
# alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_202/bin/javac 2
javaインストール確認
# alternatives --config java
2 プログラムがあり 'java' を提供します。
選択 コマンド
-----------------------------------------------
+ 1 /usr/java/jdk-11/bin/java
* 2 /usr/java/jdk1.8.0_202/bin/java
# alternatives --config javac
2 プログラムがあり 'javac' を提供します。
選択 コマンド
-----------------------------------------------
+ 1 /usr/java/jdk-11/bin/javac
* 2 /usr/java/jdk1.8.0_202/bin/javac
Alfresco Communityのインストール
AlfrescoのDBを作成します。
# psql -U postgres
postgres=# create database alfresco;
CREATE DATABASE
postgres=# \q
以下のサイトからAlfresco Communityをダウンロードし、適当なディレクトリに配置します。
https://www.alfresco.com/jp/
・ファイル名:alfresco-community-installer-201604-linux-x64.bin
・配置先:/root
Alfresco Communityのインストールを行います。
# cd /root
# chmod +x alfresco-content-services-community-full-installer-6.0.2.1-ea-linux-x64.bin
# ./alfresco-content-services-community-full-installer-6.0.2.1-ea-linux-x64.bin \
--unattendedmodeui none --mode unattended \
--enable-components libreofficecomponent,alfrescosolr4,aosmodule,alfrescogoogledocs \
--disable-components javaalfresco,postgres,alfrescosolr,alfrescowcmqs \
--prefix /opt/alfresco \
--installer-language ja \
--alfresco_admin_password admin \
--jdbc_username postgres --jdbc_password postgres \
--tomcat_server_port 10080 --tomcat_server_shutdown_port 10005 --tomcat_server_ssl_port 10443 \
--tomcat_server_ajp_port 10009 --alfresco_ftp_port 1121 \
--baseunixservice_install_as_service 1 \
--alfrescocustomstack_services_startup demand \
--jdbc_url jdbc:postgresql://localhost/alfresco
Alfresco Communityの設定
Alfresco Communityが使用するjavaのパスを修正します。
# vim /opt/alfresco/tomcat/bin/setenv.sh
※以下を修正
JAVA_HOME=/usr
↓
JAVA_HOME=/usr/java/jdk1.8.0_202
以下のファイルを作成し、CMDbuildとの連携ができるようにします。
パス:/opt/alfresco/tomcat/shared/classes/alfresco
ファイル:cmdbuild-model-context.xml、cmdbuildModel.xml
# vim /opt/alfresco/tomcat/shared/classes/alfresco/extension/cmdbuild-model-context.xml
※以下を設定します。
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!-- Registration of new models -->
<bean id="example.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
<property name="models">
<list>
<value>alfresco/extension/cmdbuildModel.xml</value>
</list>
</property>
</bean>
</beans>
# vim /opt/alfresco/tomcat/shared/classes/alfresco/extension/cmdbuildModel.xml
※以下を設定します。
<?xml version="1.0" encoding="UTF-8"?>
<!-- The important part here is the name - Note: the use of the my: namespace which is defined further on in the document -->
<model name="cmdbuild:module" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<description>Custom Model for CMDBuild</description>
<author>CMDBuild Team</author>
<version>1.0</version>
<imports>
<!-- Import Alfresco Dictionary Definitions -->
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
<!-- Import Alfresco Content Domain Model Definitions -->
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
</imports>
<!-- Introduction of new namespaces defined by this model -->
<namespaces>
<namespace uri="org.cmdbuild.dms.alfresco" prefix="cmdbuild" />
</namespaces>
<aspects>
<aspect name="cmdbuild:classifiable">
<title>Classification</title>
<properties>
<property name="cmdbuild:classification">
<type>d:text</type>
</property>
</properties>
</aspect>
</aspects>
</model>
上記のファイル設定後、サービスを起動します。
# systemctl start alfresco.service
Alfresco リポジトリの作成
再起動後、ブラウザからAlfrescoのWebUIにアクセスし、以下のアカウントでログインし、CMDBuildで使用するリポジトリを作成します。
http://<IPアドレス>:10080/share
ユーザ:admin
パスワード:admin
ログイン後、メニューバーより、リポジトリを選択し、を移動し、
作成 > フォルダ を選択し、「User Homes」を作成し、作成した「User Homes」に移動後、「cmdbuild」を作成します。
CMDBuild DMS設定
CMDBuildのWebUIにログインし、アドミニストレーションモジュールへ移行します。
http://<CMDbuildのIPアドレス>:8080/cmdbuild
ナビゲーションツリーよりDMS > Settingsの順に移動し、Alfrescoとの連携設定を行います。
以下の情報を入力し、設定を保存します。
・Active:チェックを入れる
・DMS Category:AlfrescoCategory
・Server Type:CMIS
・Host:http://localhost:10080/alfresco/api/-default-/public/cmis/versions/1.1/atom
・Webserver Path:/User Homes/cmdbuild
・Username:admin
・Password:admin
Alfrescoとの連携確認
CMDBuildのWebUIにログインし、Alfrescoへのファイルを添付が行えることの確認を行います。
適当なカードを開き、クリップマークを選択し、「Add attachment」を選択します。
適当なファイルを「Brows...」から開くか、ファイルをドロップし、保存します。
ファイルの添付に成功すると以下のように表示され、ファイルのダウンロードができます。
AlfrescoのWebUIからも添付したファイルが表示、ダウンロードすることが可能です。