Содержание

,

Инвентаризация: Установка

Для обновления есть отдельная инструкция.
Для установки с docker есть отдельная инструкция.

PHP + модули

apt install php php-mbstring php-ldap php-dom php-xml php-xmlrpc php-mysqlnd php-gd php-intl php-gmp php-imagick php-zip php-http

Доп. ПО

Для работы с изображениями установка пакетов должна была подтянуть ImageMagic
В файле /etc/ImageMagick-6​/policy.xml перед строкой

</policymap>

вставьте строку:

<policy domain="coder" rights="read | write" pattern="PDF" />

это даст возможность обрабатывать PDF файлы

Создание БД и настройка прав доступа к ней

NOTES:

  1. Создание БД для этой находится за рамками этого руководства. БД должна быть создана и доступ к ней должен быть предоставлен по логину-паролю. Приведенные здесь инструкции просто пример
  2. Кодировку настойчиво рекомендуется использовать именно `utf8mb4`, т.к. на ней выбор остановился после устранения проблем с другими!
  3. [innodb]
    innodb_strict_mode = OFF;
    innodb_large_prefix = true

Пример создания БД достаточной для работы

CREATE DATABASE arms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;;
GRANT ALL PRIVILEGES ON arms.* TO 'arms-user'@'localhost' IDENTIFIED BY 'secret-password';

Файловая структура

Клонируем в веб корень содержимое гит репозитория.

git clone https://github.com/spo0okie/arms_inventory.git .
chmod 777 ./yii

Это установит все уникальные для этого проекта файлы, но не не используемые им сторонние модули, которые поддерживаются другими разработчиками.

Установка зависимостей

Проект в своей структуре содержит все ссылки на необходимые модули других производителей. Они устанавливаются через composer (уже должен присутствовать в системе, инструкции по установке есть на getcomposer.org:

composer update

Доступ к папкам

Нужно создать папку для превью картинок

Приложение необходимо обеспечить доступ к файловой системе, поэтому процесс вебсервера должен иметь доступ к папкам

TL;DR:

mkdir -p web/scans/thumbs
chmod 777 web/scans/thumbs
chmod 777 web/scans
chmod 777 web/assets

Локальные конфиг файлы

Создаем пустые конфиг файлы для персональных настроек инсталляции
config/params-local.php

<?php
return[];

config/web-local.php

<?php
return[];

config/db-local.php должен содержать реальные учетные данные БД для инвентаризации (настроить БД)

<?php
return [
    'dsn' => 'mysql:host=localhost;dbname=arms',
    'username' => 'arms-user',
    'password' => 'secret-password',
];

config/ldap.php должен содержать корректный конфиг, даже если LDAP авторизация не будет использоваться

<?php
return [
    'class'=>'Edvlerblog\Adldap2\Adldap2Wrapper',
    'providers'=> [
        'default'=>[
            'autoconnect'=>true,
            'config'=>[
                'ad_port'      => 636,
                //'ad_port'      => 389,
                'hosts'    => ['dc1.domain.local','dc2.domain.local'],
                'account_suffix' =>  '@domain.local',
                'base_dn' => "DC=domain,DC=local",
                //под кем подключиться к АД (подойдет любой пользователь. права админа не нужны)
                'username' => 'inventory@domain.local',
                'password' => 'SuperSecretPassword1!',
                'use_ssl'   => true,
                'use_tls'   => true,
                'custom_options'   => [
                    // See: http://php.net/ldap_set_option
                    //LDAP_OPT_X_TLS_REQUIRE_CERT => LDAP_OPT_X_TLS_NEVER
                ],
            ],
        ],
    ],
];

Создание таблиц

Поскольку проект создан на базе фреймворка yii2, то для управления структурой БД используется встроенный в него инструмент миграций. В любой момент времени при чистой установке или после обновления необходимо выполнить

yii migrate --migrationPath=@yii/rbac/migrations/
yii migrate

В докер контейнере это делается автоматически при старте контейнера

Роли

Подготавливаем стандартные роли для RBAC доступа

yii rbac/init

Импорт данных

Из демо БД, чтобы вручную не заводить кучу оборудования, ПО, производителей и т.п.

Модели оборудования

(а также категории оборудования и производители)

./yii sync/tech-models https://inventory.reviakin.net/web/api guest guest1

Списки ПО

(а также само ПО и производители)

./yii sync/soft-lists https://inventory.reviakin.net/web/api guest guest1

Типы лицензий

./yii sync/lic-groups https://inventory.reviakin.net/web/api guest guest1