Пост

Установка ITSM-системы CMDBuild в Centos 7

CMDBuild — это программное обеспечение с открытыми исходными кодами, которое управляет конфигурацией базы данных. CMDBuild был спроектирован в соответствии с ITIL “лучше из применяемых на практике способов” для IT услуг управлении, отвечая на критерии ориентированные на процесс.

Используемое программное обеспечение

  • CentOS 7.7 1908 Minimal
  • PostgreSQL 10.12
  • OpenJDK 13.0.2
  • Tomcat 9.0.31
  • CMDBuild 3.2

Подготовка

Обновимся и установим репозиторий EPEL и необходимый софт

1
2
3
$ sudo yum update
$ sudo yum -y install epel-release
$ sudo yum -y install wget nano

Устанавливаем PostgreSQL 10

Добавляем репозиторий

1
$ sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Устанавливаем PostgreSQL

1
$ sudo yum -y install postgresql10 postgresql10-server postgresql10-contrib postgresql10-libs

Инициализируем БД

1
$ sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

Настраиваем доступ к базе PostgreSQL

1
2
3
4
5
6
7
8
9
$ sudo nano /var/lib/pgsql/10/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Добавляем PostgreSQL в автозагрузку и запускаем сервис

1
$ sudo systemctl enable --now postgresql-10

Создаем базу / пользователей

1
2
3
4
5
6
7
8
9
10
$ sudo su - postgres
-bash-4.2$ psql
postgres=# CREATE DATABASE cmdbuild_db;
postgres=# CREATE USER cmdbuild_user WITH encrypted password 'password';
postgres=# GRANT ALL PRIVILEGES ON DATABASE cmdbuild_db TO cmdbuild_user;
postgres=# DROP DATABASE cmdbuild_db;
postgres=# CREATE USER cmdbuild_superuser WITH encrypted password 'password';
postgres=# ALTER USER cmdbuild_superuser WITH SUPERUSER;
postgres=# \q
-bash-4.2$ exit

Базу удалили специально, т.к. в дальнейшем она будет создана установочным скриптом

Устанавливаем OpenJDK 13 и Tomcat 9

Устанавливаем OpenJDK latest (13.0.2)

1
2
$ sudo yum -y install java-latest-openjdk java-latest-openjdk-devel
$ java --version

Создаем системного пользователя Tomcat

1
$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Скачиваем архив Tomcat 9.0.31 и распаковываем его

1
2
3
4
$ cd /tmp
$ wget http://apache-mirror.rbc.ru/pub/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
$ tar -xf apache-tomcat-9.0.31.tar.gz
$ sudo mv apache-tomcat-9.0.31 /opt/tomcat/

Создаем сим линк, меняем владельца директорий и делаем Bash-скрипты исполняемыми

1
2
3
$ sudo ln -s /opt/tomcat/apache-tomcat-9.0.31 /opt/tomcat/latest
$ sudo chown -R tomcat:tomcat /opt/tomcat
$ sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

Создаем Systemd Unit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ sudo nano /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Добавляем Tomcat в автозагрузку и запускаем сервис

1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now tomcat
$ sudo systemctl status tomcat

Настраиваем Firewall

Открываем порт 8080

1
2
$ sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
$ sudo firewall-cmd --reload

Настройка доступа к Tomcat Web Management Interface

Редактируем файл conf/tomcat-users.xml, устанавливаем логин/пароль

1
2
3
4
5
6
$ sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
...
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

Редактируем файл manager/META-INF/context.xml, добавляем IP

1
2
3
4
5
6
$ sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
...
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10.0.2.2" />
</Context>

Редактируем файл host-manager/META-INF/context.xml, добавляем IP

1
2
3
4
5
6
$ sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
...
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10.0.2.2" />
</Context>

где 10.0.2.2 - разрешенный IP (virtualbox host)

Либо в этих 2-х файлах context.xml (manager / host-manager) закоментить строку

1
2
3
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve" ... />
-->

Так же можно удалить приложения, установленные по-умолчанию, но я их оставил

1
$ sudo rm -rf /opt/tomcat/latest/webapps/*

Установка CMDBuild 3.2

Скачиваем файл cmdbuild.war и копируем его в директорию Tomcat

1
2
3
4
$ cd /tmp
$ wget -O cmdbuild-3.2.war https://sourceforge.net/projects/cmdbuild/files/3.2/cmdbuild-3.2.war/download?use_mirror=netcologne#
$ sudo cp /tmp/cmdbuild-3.2.war /opt/tomcat/latest/webapps/cmdbuild.war
$ sudo chown tomcat:tomcat /opt/tomcat/latest/webapps/cmdbuild.war

Настраиваем подключение к базе PostgreSQL

1
2
3
4
5
6
7
$ sudo mkdir -p /opt/tomcat/latest/conf/cmdbuild
$ sudo nano /opt/tomcat/latest/conf/cmdbuild/database.conf
db.url=jdbc:postgresql://localhost:5432/cmdbuild_db
db.username=cmdbuild_user
db.password=password
db.admin.username=cmdbuild_superuser
db.admin.password=password

Меняем владельца

1
$ sudo chown -R tomcat:tomcat /opt/tomcat/latest/conf/cmdbuild

Скачиваем доп. библиотеки, копируем их в директорию Tomcat, меняем владельца

1
2
3
4
5
$ cd /tmp
$ wget -O cmdbuild-3.2-resources.tar.gz https://sourceforge.net/projects/cmdbuild/files/3.2/cmdbuild-3.2-resources.tar.gz/download#
$ tar -xzf /tmp/cmdbuild-3.2-resources.tar.gz
$ sudo cp /tmp/tomcat-libs/postgresql-*.jar /opt/tomcat/latest/lib/
$ sudo chown -R tomcat:tomcat /opt/tomcat/latest/lib

Создаем структуру базы

1
2
3
4
$ sudo systemctl stop tomcat
$ sudo chmod +x /opt/tomcat/latest/webapps/cmdbuild/cmdbuild.sh
$ sudo bash /opt/tomcat/latest/webapps/cmdbuild/cmdbuild.sh dbconfig create empty -configfile /opt/tomcat/latest/conf/cmdbuild/database.conf
$ sudo systemctl restart tomcat

Если нужно загрузить демо-данные:

1
$ sudo bash /opt/tomcat/latest/webapps/cmdbuild/cmdbuild.sh dbconfig create demo -configfile /opt/tomcat/latest/conf/cmdbuild/database.conf

предварительно удалив базу

1
postgres=# DROP DATABASE cmdbuild_db;

Проверяем:

1
2
3
http://localhost:8080/cmdbuild/?language=ru_RU  
Пользователь: admin  
Пароль: admin
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.