Вступление
В ИТ-отрасли asset management - это процесс отслеживания активов на протяжении всего их жизненного цикла, включая приобретение, обслуживание, хранение и утилизацию. Несмотря на то, что конкретные активы различаются, обычно основное внимание уделяется отдельным аппаратным или программным средствам, лицензиям и файловым ресурсам, таким как цифровые изображения.
Snipe-IT - бесплатное приложение с открытым исходным кодом, разработанное специально для управления ИТ-активами, - предоставляет веб-интерфейс для отслеживания лицензий, аксессуаров, расходных материалов и компонентов. Snipe-IT включает в себя учетные записи пользователей с настраиваемыми разрешениями на уровне группы, настраиваемыми возможностями создания отчетов и API-интерфейсом JSON REST для подключения, управления и расширения Snipe-IT из командной строки или сторонних приложений.
В этом руководстве вы скачаете, установите и настроите Snipe-IT, а затем создадите учетную запись администратора для входа в Snipe-IT в первый раз.
Предпосылки
Для завершения этого урока вам понадобится:
-
Один сервер Ubuntu 16.04, настроенный в соответствии с этим Ubuntu 16.04 начальное руководство по настройке сервера, включая sudo пользователь root и брандмауэр.
-
Стек LEMP сконфигурирован в соответствии с https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04, приведенным в этом руководстве по установке LEMP. ].
-
Следующие записи DNS настроены для вашего сервера. Вы можете следовать thutorial этого имени хоста для получения подробной информации о том, как их добавить.
-
Запись A с
++
, указывающая на публичный IP-адрес вашего сервера. -
Запись A с
+ www. +
, Указывающая на публичный IP-адрес вашего сервера. -
Nginx защищен с помощью сертификата SSL, следуя https://www.digitalocean.com/community/tutorials/how-to-set-up-let-s-encrypt-with-nginx-server-blocks-on-ubuntu-16- 04 [эта настройка Let’s Encrypt с блоками сервера Nginx в Ubuntu 16.04 учебник]. Обязательно выберите опцию 2
+ Redirect +
в шаге 4 учебника по настройке Nginx, поскольку это обеспечит автоматическое перенаправление на HTTPS при установке Snipe-IT.
Шаг 1 - Подготовка сервера
Перед загрузкой Snipe-IT подготовьте сервер, установив несколько дополнительных библиотек PHP и создав базу данных MySQL и базу данных, которую пользователь Snipe-IT будет использовать для хранения своих данных.
Snipe-IT построен на https://laravel.com [Laravel PHP Framework] и поэтому требует Composer менеджер зависимостей для установки и управления дополнительными библиотеками PHP.
Используйте + apt-get
для установки` + composer` и + unzip
, утилиты, которая необходима для извлечения файлов из Zip-архивов.
sudo apt-get install composer unzip
Затем установите дополнительные модули PHP, на которые опирается Snipe-IT.
sudo apt-get install php7.0-mbstring php7.0-xml php7.0-mcrypt php7.0-gd php7.0-zip php7.0-curl php7.0-bcmath
Дополнительные пакеты предоставляют PHP с:
-
php7.0-mbstring - Multibyte String module для обработки языков, которые не могут быть выражены в 256 символах
-
php7.0-xml - DOM module для работы с документами XML через https://www.digitalocean.com/community/tutorials/understanding -the-dom-tree-and-узлы [API объектная модель документа (DOM)], SimpleXML модуль для преобразования XML в объект, который вы может управлять селекторами свойств и итераторами массива, модулем WDDX для обмена данными в https://en.wikipedia.org/wiki/WDDX [ Формат Web Distributed Data Exchange (WDDX)], XML Parser module для анализа XML-документов и http://php.net/manual/ ru / book.xsl.php [XSL модуль] для выполнения XSLT преобразований
-
php7.0-mcrypt - Mcrypt module для работы с алгоритмами шифрования block
-
php7.0-gd - модуль GD для обработки изображений
-
php7.0-zip - модуль Zip для работы с архивами, сжатыми Zip
-
php7.0-curl - Client модуль библиотеки URL-адресов для подключения к серверам и связи с ними по различным протоколам
-
php7.0-bcmath - BCMath модуль математики произвольной точности для работы с числами любого размера и точности с точностью до 2147483647 десятичных знаков
Теперь используйте утилиту командной строки + mysql
, чтобы войти в MySQL как пользователь базы данных * root *.
mysql -u root -p
Создайте нового пользователя MySQL с именем * snipeit * на локальном хосте + 127.0.0.1 +
и назначьте ему пароль.
create user @127.0.0.1 identified by '';
Затем создайте базу данных с именем + snipeitdb +
, где Snipe-IT будет хранить свои данные.
create database ;
Предоставьте все привилегии для всех таблиц в базе данных + snipeitdb +
пользователю * snipeit *, чтобы Snipe-IT имел разрешение на выполнение любых необходимых действий с базой данных.
grant all on .* to @127.0.0.1;
Наконец, активируйте изменения, перезагрузив таблицы грантов командой + flush privileges +
и выйдите из утилиты.
flush privileges;
exit;
Теперь на вашем сервере есть дополнительные библиотеки PHP и база данных MySQL, которые необходимы Snipe-IT для правильной работы, поэтому давайте загрузим и сконфигурируем Snipe-IT.
Шаг 2 - Загрузка и настройка Snipe-IT
Согласно official инструкциям по установке, вы будете использовать Git для загрузки последней версии Snipe-IT. Поскольку Git клонирует только существующие каталоги, если они пустые, используйте + ls +
, чтобы просмотреть содержимое каталога, который вы сконфигурировали для блока Nginx-сервера Snipe-IT, по ссылке: #prerequisites [Prerequisites].
ls /var/www//html/
Если каталог не пустой, используйте basic команды навигации и управления файлами в Linux чтобы очистить это сейчас. + mv +
перемещает содержимое в другое место, а + rm +
полностью их удаляет.
Когда каталог пуст, загрузите Snipe-IT из его хранилища official на GitHub.
git clone https://github.com/snipe/snipe-it /var/www//html/
Вывод подтверждает местоположение, в которое вы клонируете, а затем предоставляет отчет о процессе в режиме реального времени, включая количество объектов, которые Git должен скопировать, а также число, которое он на самом деле скопировал.
Output from git cloneCloning into '/var/www//html/'...
remote: Counting objects: 70975, done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 70975 (delta 20), reused 37 (delta 15), pack-reused 70897
Receiving objects: 100% (70975/70975), 67.04 MiB | 14.35 MiB/s, done.
Resolving deltas: 100% (44264/44264), done.
Checking connectivity... done.
Теперь у вас есть полная копия Snipe-IT, но перед началом установки вам необходимо разрешить Nginx доступ к каталогам + storage +
, + public / uploads +
и + bootstrap / cache +
, так как именно здесь Snipe-IT записывает свои кеши, логи и загруженные файлы.
Перейдите в каталог установки.
cd /var/www//html/
Используйте + chown +
с опцией + -R +
для рекурсивного изменения the владение пользователем и группой + www-data +
- пользователь и группа Nginx - во всех трех каталогах.
sudo chown -R www-data:www-data
sudo chown -R www-data:www-data
sudo chown -R www-data:www-data
Затем используйте + chmod +
с флагом + -R +
для рекурсивной set полномочий на этих каталоги, делающие их доступными для чтения, записи и выполнения их владельцем, чтения и выполнения их группой, а также чтения и выполнения для всего мира.
sudo chmod -R 755
sudo chmod -R 755
sudo chmod -R 755
С правильно установленными правами доступа к файлам и каталогам для Nginx вы готовы запустить + composer install +
, который считывает список дополнительных зависимостей в файле + composer.json +
Snipe-IT, а затем разрешает и устанавливает их в `+ / вар / WWW // HTML / поставщик + `.
Опция + - no-dev
указывает` + composer` игнорировать зависимости, которые не нужны для работы Snipe-IT, но полезны при разработке на Snipe-IT.
Опция + - предпочитаемый-источник
указывает` + composer` загружать зависимости из их репозиториев контроля версий, если они существуют.
composer install --no-dev --prefer-source
Выходные данные сообщают о каждой зависимости, которую пытается установить + composer +
, указывают, была ли зависимость успешно клонирована, и заканчивают, создавая оптимизированные файлы автозагрузки, которые улучшают производительность https://getcomposer.org/doc/articles/autoloader-optimization. md [загрузка классов в PHP-приложениях, поддерживаемых Composer].
Output from composer install --no-dev --prefer-sourceLoading composer repositories with package information
Installing dependencies from lock file
- Installing symfony/finder (v3.3.10)
Cloning 773e19a491d97926f236942484cb541560ce862d
...
Generating optimized autoload files
Теперь вы можете начать настройку вашей установки. Начните с создания копии файла + .env.example +
, который поставляется с Snipe-IT; здесь Snipe-IT хранит переменные и настройки среды, такие как часовой пояс, базовый URL и размер журнала. Затем откройте + .env +
для редактирования.
cp .env.example .env
nano .env
Ищите следующее:
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=null
...
+ APP_URL +
сообщает Snipe-IT базовый URL для вашей установки. Замените + null +
на ваше доменное имя.
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=
...
Далее найдите следующие строки:
...
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
...
Здесь вы рассказываете Snipe-IT, как подключиться к базе данных MySQL, которую вы создали по ссылке: # step-1-% E2% 80% 94-prepare-the-server [Шаг 1].
Поскольку Snipe-IT по умолчанию настроен на подключение к базе данных MySQL, работающей на локальном хосте, вам не нужно изменять первые две строки.
Замените + DB_DATABASE +
и + DB_USERNAME +
на имя базы данных MySQL и пользователя базы данных, которые вы создали в ссылке: # step-1-% E2% 80% 94-prepare-the-server [Шаг 1], и замените ` + DB_PASSWORD + `с паролем, который вы назначили этому пользователю базы данных.
+ DB_PREFIX +
добавляет пользовательские префиксы к именам таблиц в базе данных Snipe-IT. Этот параметр не является обязательным, но может остановить некоторые автоматические атаки, использующие имена таблиц базы данных по умолчанию. Оставьте для этого набора значение по умолчанию + null
, если вы не хотите добавлять собственный префикс.
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
DB_PREFIX=null
Закройте и сохраните файл.
Теперь используйте + artisan migrate +
, чтобы заполнить MySQL схемой базы данных Snipe-IT по умолчанию. Эта команда скажет Laravel выполнить database миграцию, используя файлы, найденные в + / var / www // html / database / migrations / +
.
sudo php artisan migrate
При появлении запроса введите + yes +
, чтобы подтвердить, что вы хотите выполнить миграцию.
Выходные данные сообщают имя каждой миграции, которую он завершает в режиме реального времени.
Output from php artisan migrate**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? (yes/no) [no]:
>
Migration table created successfully.
...
Migrated: 2017_11_08_123942_labels_display_company_name
Наконец, используйте + artisan key: generate +
, чтобы создать ключ приложения для вашей установки. Laravel запишет значение ключа в строку + APP_KEY +
в файле + .env +
, а Snipe-IT будет использовать ключ при шифровании и дешифровании данных, таких как токены сеанса.
php artisan key:generate
Еще раз, когда будет предложено, введите + yes +
, чтобы подтвердить, что вы хотите сгенерировать ключ приложения.
Когда закончите, вывод покажет вам сгенерированный ключ и скажет вам, что значение было записано в файл + .env +
.
Output from php artisan key:generate**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? (yes/no) [no]:
>
Application key [base64:rxP+jS3Q8qtM9eBktXtS/zqrrXVY1LEMxoZkbV35Al0=] set successfully.
После завершения установки и настройки настало время изменить Nginx для обслуживания Snipe-IT.
Шаг 3 - Настройка Nginx
Прежде чем вы сможете запустить Snipe-IT в своем веб-браузере, вам сначала нужно указать Nginx в корневой каталог веб-приложений Snipe-IT, и вам нужно перенаправить входящие запросы в обработчик запросов Snipe-IT.
Начните с открытия файла конфигурации, который вы создали для блока Nginx сервера Snipe-IT.
sudo nano /etc/nginx/sites-available/
Ищите директиву, которая устанавливает корневой каталог блока сервера.
/etc/nginx/sites-available/example.com
server {
...
root /var/www//html;
...
}
Файлы веб-приложений Snipe-IT находятся в каталоге + public +
, который был автоматически создан при клонировании проекта из GitHub. Измените Nginx, чтобы использовать + public +
в качестве корневого каталога этого блока сервера.
/etc/nginx/sites-available/example.com
server {
...
root /var/www//html/;
...
}
Затем найдите блок местоположения по умолчанию:
/ и т.д. / Nginx / сайты с поддержкой / Бекас-это
server {
...
location / {
try_files $uri $uri/ =404;
}
...
}
Измените этот блок, чтобы передать все запросы обработчику запросов Snipe-IT для обработки.
/ и т.д. / Nginx / сайты с поддержкой / Бекас-это
server {
...
location / {
try_files $uri $uri/
}
...
}
Сохраните и закройте файл.
Перед перезапуском Nginx протестируйте новую конфигурацию.
sudo nginx -t
Вывод должен сообщить, что ваш синтаксис + в порядке +
. Если это не так, следуйте инструкциям на экране для получения дополнительной помощи.
Теперь перезапустите Nginx, чтобы применить изменения.
sudo systemctl reload nginx
Наконец, убедитесь, что Nginx снова запущен и работает.
sudo systemctl status nginx
Выходные данные должны указывать, что служба + active (выполняется) +
. Если это не так, повторите предыдущие шаги, чтобы решить проблему, прежде чем продолжить
Теперь, когда Nginx полностью настроен, войдите в утилиту веб-настройки Snipe-IT, чтобы завершить установку.
Шаг 4 - Настройка Snipe-IT с помощью Pre-Flight Utility
Чтобы завершить установку, укажите в своем веб-браузере + https: // +
. Это приведет вас к * шагу 1 * Pre-Flight Utility Snipe-IT *, где Snipe-IT проведет быструю проверку вашей установки, чтобы убедиться, что все настроено правильно.
На этом экране вы увидите таблицу, в которой показаны все параметры, которые были проверены * Pre-Flight *, результаты тестирования параметров и краткая заметка с описанием параметров. Зеленая галочка в столбце * Valid * указывает на правильность настройки. Если какой-либо параметр выделен розовым цветом и отмечен красным * X * в столбце * Действительный *, это указывает на проблему с этим параметром. Следуйте инструкциям Snipe-IT для решения проблемы, прежде чем продолжить.
Поскольку мы не настроили Snipe-IT для электронной почты, вы можете нажать синюю кнопку * Далее: Создать таблицы базы данных * в правом нижнем углу экрана, чтобы продолжить установку.
изображение: http: //assets.digitalocean.com/articles/how-to-install-snipe-it/pre-flight-configuration-check2.png [Предполетный полет Snipe-IT: Проверка конфигурации]
На шаге 2 * Pre-Flight * Snipe-IT проверяет вашу базу данных и при необходимости выполняет миграцию. Поскольку вы уже выполнили ручную миграцию базы данных с помощью + artisan +
в ссылке: # step-3-% E2% 80% 94-configuring-nginx [Шаг 3 этого урока], * Pre-Flight * скажет вам, что база данных * уже настроен * и что * нечего мигрировать *.
Нажмите синюю кнопку * Далее: Создать пользователя * в правом нижнем углу экрана.
изображение: http: //assets.digitalocean.com/articles/how-to-install-snipe-it/pre-flight-create-database-tables.png [Предполетный полет Snipe-IT: создание таблиц базы данных]
На шаге 3 * Pre-Flight * Snipe-IT просит вас ввести некоторые общие настройки приложения и создать первую учетную запись администратора.
В поле * Имя сайта * введите метку, которую Snipe-IT должен отображать вверху каждого экрана. Это может быть название вашей компании или даже что-то более наглядное, например «Управление активами Сэмми» *.
В поле * Email Domain * введите домен, который Snipe-IT будет использовать для исходящей почты, а в поле * Email Format * выберите способ форматирования заголовка * To: * в исходящих сообщениях Snipe-IT. ,
Введите свое имя в поля * Имя * и * Фамилия * и адрес электронной почты в поле * Электронная почта *.
Наконец, введите имя пользователя, которое вы хотите связать с вашей учетной записью, в поле * Имя пользователя * и введите пароль, который хотите использовать в поле * Пароль *. Обязательно введите тот же пароль в поле * Подтверждение пароля * и запишите свои учетные данные, прежде чем продолжить. Они оба вам понадобятся, чтобы войти в Snipe-IT.
Поскольку вы создаете эту учетную запись для себя, вы можете оставить * Отправить мои учетные данные на адрес электронной почты выше * без проверки.
Нажмите синюю кнопку * Далее: Сохранить пользователя * в правом нижнем углу экрана, как только вы заполните всю информацию.
изображение: http: //assets.digitalocean.com/articles/how-to-install-snipe-it/pre-flight-create-admin-user.png [Предполетный полет Snipe-IT: Создать пользователя-администратора]
На шаге 4 * Pre-Flight * Snipe-IT сохраняет общие настройки приложения, которые вы только что ввели, создает нового администратора и регистрирует вас на главной панели инструментов.
изображение: http: //assets.digitalocean.com/articles/how-to-install-snipe-it/default-dashboard.png [Snipe-IT: панель администратора по умолчанию]
На этом этапе ваша установка завершена, и вы можете начать использовать Snipe-IT для управления ИТ-ресурсами ваших клиентов.
Заключение
В этой статье вы настраиваете стек LEMP, защищаете Nginx с помощью сертификата Let Encrypt TLS / SSL, устанавливаете и настраиваете Snipe-IT, создаете учетную запись администратора и входите в основную панель управления Snipe-IT.
Чтобы узнать о добавлении и редактировании ресурсов в Snipe-IT, см. Https://snipe-it.readme.io/docs/managing-assets[the официальное руководство по управлению активами].
Чтобы узнать о работе с учетными записями пользователей в Snipe-IT, см. Https://snipe-it.readme.io/docs/managing-users[the официальная документация по управлению пользователями].
Или, по другим вопросам, ознакомьтесь с the официальное руководство пользователя Snipe-IT.