Ниже описаны шаги по базовой становке системы itop, в Windows + Docker.

Вкратце об Itop:

iTop ITSM & CMDB — это веб-продукт с открытым исходным кодом, предназначенный для автоматизации ИТ-подразделений предприятий и сервис провайдеров. iTop разработан на основе лучших практик ITIL/ITSM и в то же время является достаточно гибким, чтобы адаптироваться к процессам вашей организации. iTop позволит вам организовать:

  • Управление инцидентами и запросами на обслуживание

  • Управление проблемами, изменениями и знаниями

  • Управление активами и конфигурациями

  • Управление уровнем сервиса, каталогом услуг и поставщиками

Содержание гайда:

/**/


Установка Itop

Установка Itop в Ubuntu

  • For installation instructions, please refer to:

https://wiki.openitop.org/doku.php?id=latest:install:start

  • Run the following commands to install iTop on Ubuntu 20.04, with PHP 7.4 and MariaBD:

install.sh

sudo apt-get update
sudo apt-get install apache2 mariadb-server php7.4 
php7.4-mysql php7.4-ldap php7.4-cli php7.4-soap php7.4-json 
graphviz php7.4-xml php7.4-gd php7.4-zip php7.4-fpm php7.4-mbstring acl
 
wget https://sourceforge.net/projects/itop/files/latest/download -O /tmp/itop.zip
sudo unzip /tmp/itop.zip "web/*" -d /var/www/html/itop
sudo mv /var/www/html/itop/web/*  /var/www/html/itop
sudo rmdir /var/www/html/itop/web

sudo setfacl -dR -m u:"www-data":rwX /var/www/html/itop/data /var/www/html/itop/log
sudo setfacl -R -m u:"www-data":rwX /var/www/html/itop/data /var/www/html/itop/log

sudo mkdir /var/www/html/itop/conf /var/www/html/itop/env-production /var/www/html/itop/env-production-build
sudo chown www-data: /var/www/html/itop/conf /var/www/html/itop/env-production /var/www/html/itop/env-production-build

(звезда) тут все просто, ставится автоматом камандами выше; но у нас Windows , значит прийдется помучиться и руками доконфигурировать все … (см. гайд ниже)


Установка ITop в Windows (через Docker)


Установка по шагам

  • Качаем/ставим контейнер:

docker run -d -p 8000:80 --name=my-itop vbkunin/itop

(плюс) Ставится норм:

  • Проверяем:

docker ps

CONTAINER ID   IMAGE          COMMAND           CREATED         STATUS                            PORTS                            NAMES
b557aeaa45e7   vbkunin/itop   "/sbin/my_init"   3 minutes ago   Up 3 minutes (health: starting)   3306/tcp, 0.0.0.0:8000->80/tcp   my-itop

  • Заполняем тут все по шагам как в видео выше:

  • соглашения

  • Настройки БД

(звезда) логин / пароль тут получаем с помощью команды:

docker logs my-itop | grep -A7 -B1 "Your MySQL user 'admin' has password:"

Your MySQL user 'admin' has password: WDpjHtYag0R8
You can now connect to this MySQL Server using:

    mysql -uadmin -pWDpjHtYag0R8 -h<host> -P<port>

Please remember to change the above password as soon as possible!

(звезда) в винде прийдется выгрузить лог в файл и там уже поискать, т.к. нет команды grep :

docker logs my-itop > out.txt

ищем в файле out.txt пароль нужный по фразе Your MySQL user 'admin' has password

  • Логин/пароль админа: (придумываем/запоминаем пароль)

  • тут все как есть оставляем:

  • Все галочки

  • Enterprize version

  • тут тоже по дефолту

  • Manage changes

  • Тикеты по обработке ошибок — поставим:

  • Подтверждаем установку

  • Ура, все поставилось:

Дополнительно: создаем техн. пользователя для cron

  • Создаем нового

  • Данные юзера

  • Доб ему профиль админа во вкладке Профили:

  • Добавляем cron-tasks:

docker exec my-itop /setup-itop-cron.sh Cron 123

(плюс) Ok, теперь каждые 5 минут cron будет запускаться:

The following job has been added to cron (/etc/cron.d/itop):
*/1 * * * * www-data /usr/bin/php /var/www/html/webservices/cron.php --auth_user=Cron --auth_pwd=123 >> /var/www/html/log/cron.log 2>&1

(warning) Проброс Volume

Нужно, чтобы запомнить состояние машины: чтобы при очередном запуске контейнера, у нас запустилась система с последнего состояния, а не с шага “установки с нуля”.

Проброс в Desktop

(при старте контейнера через Run > , удобно):

Проброс через консоль

(warning) Важно: направление монтирования:

Кроме того, монтирование томов выполняется только в одном направлении: от хоста к контейнеру, а не наоборот…. На самом деле ничего не удаляется и не перезаписывается в целевом каталоге, но из-за природы контейнеров это фактически означает, что он будет переопределен на время существования контейнера.

Придется скопировать все файлы с контейнера на хост-машину командой:

docker cp b557aeaa45e7:/var/www/html D:OSPaneldomainsitop

и далее их монтировать (и изменять, возможно), готово:

Successfully copied 119MB to D:OSPaneldomainsitop

(звезда) пробрасываем файлы БД и исходники, как тут :

docker volume create itop-mysql-data

удалям через:

docker volume ls

docker volume rm itop-mysql-data


Полезные команды для Docker Itop

* Список текущих образов

docker images

* Команда установки (c запоминанием состояния БД)

docker run -d -p 8000:80 --name=itop -v itop-mysql-data:/var/lib/mysql vbkunin/itop

* Команда установки Itop (с пробросом всех volume)

docker run --name=itop --hostname=itop --mac-address=02:42:ac:11:00:02 --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=DEBIAN_FRONTEND=teletype --env=LANG=en_US.UTF-8 --env=LANGUAGE=en_US:en --env=LC_ALL=en_US.UTF-8 --volume=/var/lib/mysql --workdir=/var/www/html -p 8000:80 --restart=no --label='title=Docker image with editable iTop' --label='url=https://github.com/vbkunin/itop-docker' --label='version=1.0.1' --runtime=runc -d -v D:OSPaneldomainsitop:/var/www/html -v itop-mysql-data:/var/lib/mysql vbkunin/itop

Или сокращенно:

docker run --name=itop -d -p 8000:80 -p 3306:3306 -v D:OSPaneldomainsitop:/var/www/html -v itop-mysql-data:/var/lib/mysql vbkunin/itop

* Команда запуска ITOP

docker start itop

* Остановка контейнера

docker stop itop

* Просмотр логов запуска

docker logs itop > out.txt

* Запуск команд в контейнере Itop

docker exec -it itop bash

* Консоль БД Mysql

docker exec -it itop mysql -uadmin -pFM8KL1TKNj9N -hlocalhost -P3306

show tables;
ERROR 1046 (3D000): No database selected
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| itop               |
+--------------------+

Itop setup Troubleshoot

  • После перезапуска контейнера, процесс установки ITOP начинается сначала…

Решение: проброска портов и БД + start вместо run

  • Ошибка подключения к Mysql

iTop: An error occurred, check server error log for more information.

Uncaught MySQLException: Could not connect to the DB server: host = localhost, user = admin, mysql_errno = 1045, mysql_error = Access denied for user ‘admin’@’localhost’

(using password: YES) in /var/www/html/core/cmdbsource.class.inc.php:185

Советы: https://onedev.net/post/184


Подключение к IDE PhpStorm

Нам нужно пробросить папку с исходниками itop на хост-машину

Примеры: https://stackoverflow.com/questions/33848947/accessing-docker-container-files-from-windows

docker run -it -v C:UsersthomasDesktop:/root/home --name my_container image1

  • Пробросили через -v, скопировали исходники себе через docker cp

Можем редактировать код:

Подключаемся к БД в контейнере из PHPStorm

Нужно порт пробросить как тут:

docker run -p 3306:3306 ...


Источники

Остались вопросы? Пишите мне

PS: рекомендую к изучению курс Otus “DevOps практики и инструменты“, где учат всем особенностям работы с Doker/Kubertnetes/Devops

Tags

Нет Ответов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Рубрики


Подпишись на новости
👋

Есть вопросы?