Системный администратор
0,0
рейтинг
14 сентября 2010 в 20:10

Администрирование → Инвентаризация компьютеров в сети не вставая со стула или OCS Inventory + GLPI

Всем доброго времени суток!


Как видно из заголовка, речь пойдет о двух программах:
1. Open Computers and Software Inventory
OCS-Inventory основан на распределяемых модулях, устанавливаемых на инвентаризируемые машины, которые отсылают подробную информацию о системе, подключенных устройствах и установленном ПО в выделенную базу данных.
Поддерживаются следующие OS: Microsoft Windows, Linux, *BSD, Sun Solaris, IBM AIX, HP-UX, MacOS X

2. GPLI — Guestion Libre de Parc Informatique
Проект предназначен для работы с базой данных IT и телекоммуникационного оборудования, установленного на предприятии. Также имеется возможность ведения учета расходных материалов и организации службы технической поддержки по расписанию и по заявкам пользователей.

На просторах сети интернет достаточно много информации о настройке данной связки, но мне не встретилось ни одного подробного how to, где были бы решены все вопросы с локализацией. Поэтому я изложу компиляцию найденых решений и собственных доработок.

Итак, начнем!


Установка OCS Inventory.
Версия OCS: Ver. 1.3.2
В качестве серверной ОС для сбора данных у меня будет выступать ОС FreeBSD. Я не буду описывать установку и настройку LAMP(в данном случае FAMP =)). Будем исходить из того, что это у вас уже настроено.
Перед тем как начать установку и настройку OCS Inventory, проверьте установленны ли следующие порты
/usr/ports/www/mod_perl2
/usr/ports/sysutils/logrotate
/usr/ports/lang/perl

В конфиге apache должна быть строка
LoadModule perl_module libexec/apache22/mod_perl.so
Проверьте установленны ли следующие модули perl
Apache::DBI -- 1.08
BSD::Resource -- 1.2904
Bundle::NetSNMP -- ???
Class::Inspector -- 1.24
Compress::Raw::Bzip2 -- 2.030
Compress::Raw::Zlib -- 2.030
DBD::mysql -- 4.017
DBI -- 1.613
Digest::SHA1 -- 2.13
ExtUtils::MakeMaker -- undef
HTML::Parser -- 3.68
HTML::Tagset -- 3.20
IO::Compress -- ???
LWP -- 5.836
Locale::gettext -- 1.05
Net::IP -- 1.25
Perl -- 5.8.9
SOAP::Lite -- 0.712
Storable -- 2.21
Task::Weaken -- 1.03
URI -- 1.55
XML::Entities -- 1.0000
XML::Parser -- 2.36
XML::Simple -- 2.18
mod_perl2 -- 2.000004

для этого достаточно запустить вот такой скрипт
#!/usr/local/bin/perl
use ExtUtils::Installed;
my $instmod = ExtUtils::Installed->new();
foreach my $module ($instmod->modules()) {
my $version = $instmod->version($module) || "???";
print "$module -- $version\n";
}

Если что-то из приведенного списка у вас отсутствует, то установите коммандой
#cpan -e ModulName

1. Качаем пропатченый сервер

OCSNG в UTF8. Спасибо некоему linvinus!
Автор патча сделал для нас все что нужно, нам лишь осталось исправить небольшой недочет. Открываем архив, находим там файл /ocsinventory-server-1.3.2/ocsreports/languages/russian.txt, меняем в первой строке windows-1251 на utf8 и сохраняем в кодировке UTF8. Тарбол с исправленным russian.txt можно взять здесь

2. Распаковывыем архив в папку на сервере(у меня это /usr/local/www/ocs/).

#tar -xf OCSNG_UNIX_SERVER-1.3.2-linvinus-with-utf8_patch.tar.gz

3. Создадим директорию для logrotate

#mkdir /etc/logrotate.d

4. Изменяем владельца папки

# chown -R www:www /usr/local/www/ocs/

5. Далее переходим в папку и запускаем setup.sh

#sh setup.sh

+----------------------------------------------------------+
| |
| Welcome to OCS Inventory NG Management server setup ! |
| |
+----------------------------------------------------------+

CAUTION: If upgrading Communication server from OCS Inventory NG 1.0 RC2 and
previous, please remove any Apache configuration for Communication Server!

Do you wish to continue ([y]/n)?
Assuming Communication server 1.0 RC2 or previous is not installed
on this computer.

Starting OCS Inventory NG Management server setup from folder /usr/local/www/ocs
Storing log in file /usr/local/www/ocs/ocs_server_setup.log

+----------------------------------------------------------+
| Checking for database server properties... |
+----------------------------------------------------------+

Your MySQL client seems to be part of MySQL version 5.1.
Your computer seems to be running MySQL 4.1 or higher, good ;-)

Which host is running database server [localhost] ?
OK, database server is running on host localhost ;-)

On which port is running database server [3306] ?
OK, database server is running on port 3306 ;-)

+----------------------------------------------------------+
| Checking for Apache web server daemon... |
+----------------------------------------------------------+

Where is Apache daemon binary [/usr/local/sbin/httpd] ?
OK, using Apache daemon /usr/local/sbin/httpd ;-)

+----------------------------------------------------------+
| Checking for Apache main configuration file... |
+----------------------------------------------------------+

Where is Apache main configuration file [/usr/local/etc/apache22/httpd.conf] ?
OK, using Apache main configuration file /usr/local/etc/apache22/httpd.conf ;-)

+----------------------------------------------------------+
| Checking for Apache user account... |
+----------------------------------------------------------+

Which user account is running Apache web server [User] ?www
OK, Apache is running under user account www ;-)

+----------------------------------------------------------+
| Checking for Apache group... |
+----------------------------------------------------------+

Which user group is running Apache web server [www] ?www
OK, Apache is running under users group www ;-)

+----------------------------------------------------------+
| Checking for Apache Include configuration directory... |
+----------------------------------------------------------+

Setup found Apache Include configuration directory in
.
Setup will put OCS Inventory NG Apache configuration in this directory.
Where is Apache Include configuration directory [] ?/usr/local/etc/apache22/Includes
OK, Apache Include configuration directory /usr/local/etc/apache22/Includes found ;-)

+----------------------------------------------------------+
| Checking for PERL Interpreter... |
+----------------------------------------------------------+

Found PERL Intrepreter at </usr/bin/perl> ;-)
Where is PERL Intrepreter binary [/usr/bin/perl] ?
OK, using PERL Intrepreter /usr/bin/perl ;-)

Do you wish to setup Communication server on this computer ([y]/n)?

+----------------------------------------------------------+
| Checking for Make utility... |
+----------------------------------------------------------+

OK, Make utility found at </usr/bin/make> ;-)

+----------------------------------------------------------+
| Checking for Apache mod_perl version... |
+----------------------------------------------------------+

Checking for Apache mod_perl version 1.99_22 or higher
Found that mod_perl version 1.99_22 or higher is available.
OK, Apache is using mod_perl version 1.99_22 or higher ;-)

+----------------------------------------------------------+
| Checking for Communication server log directory... |
+----------------------------------------------------------+

Communication server can create detailled logs. This logs can be enabled
by setting interger value of LOGLEVEL to 1 in Administration console
menu Configuration.
Where to put Communication server log directory [/var/log/ocsinventory-server] ?
OK, Communication server will put logs into directory /var/log/ocsinventory-server ;-)

+----------------------------------------------------------+
| Checking for required Perl Modules... |
+----------------------------------------------------------+

Checking for DBI PERL module...
Found that PERL module DBI is available.
Checking for Apache::DBI PERL module...
Found that PERL module Apache::DBI is available.
Checking for DBD::mysql PERL module...
Found that PERL module DBD::mysql is available.
Checking for Compress::Zlib PERL module...
Found that PERL module Compress::Zlib is available.
Checking for XML::Simple PERL module...
Found that PERL module XML::Simple is available.
Checking for Net::IP PERL module...
Found that PERL module Net::IP is available.

+----------------------------------------------------------+
| Checking for optional Perl Modules... |
+----------------------------------------------------------+

Checking for SOAP::Lite PERL module...
Found that PERL module SOAP::Lite is available.
Checking for XML::Entities PERL module...
Found that PERL module XML::Entities is available.

+----------------------------------------------------------+
| OK, looks good ;-) |
| |
| Configuring Communication server Perl modules... |
+----------------------------------------------------------+

Writing Makefile for Apache::Ocsinventory

+----------------------------------------------------------+
| OK, looks good ;-) |
| |
| Preparing Communication server Perl modules... |
+----------------------------------------------------------+

+----------------------------------------------------------+
| OK, prepare finshed ;-) |
| |
| Installing Communication server Perl modules... |
+----------------------------------------------------------+

+----------------------------------------------------------+
| OK, Communication server Perl modules install finished;-)|
| |
| Creating Communication server log directory... |
+----------------------------------------------------------+

Creating Communication server log directory /var/log/ocsinventory-server.

Fixing Communication server log directory files permissions.
Configuring logrotate for Communication server.
/usr/local/www/ocs
Removing old communication server logrotate file /etc/logrotate.d/ocsinventory-NG
Writing communication server logrotate to file /etc/logrotate.d/ocsinventory-server

+----------------------------------------------------------+
| OK, Communication server log directory created ;-) |
| |
| Now configuring Apache web server... |
+----------------------------------------------------------+

To ensure Apache loads mod_perl before OCS Inventory NG Communication Server,
Setup can name Communication Server Apache configuration file
'z-ocsinventory-server.conf' instead of 'ocsinventory-server.conf'.
Do you allow Setup renaming Communication Server Apache configuration file
to 'z-ocsinventory-server.conf' ([y]/n) ?y
OK, using 'z-ocsinventory-server.conf' as Communication Server Apache configuration file
Removing old communication server configuration to file /usr/local/etc/apache22/Includes/ocsinventory.conf
Writing communication server configuration to file /usr/local/etc/apache22/Includes/z-ocsinventory-server.conf

+----------------------------------------------------------+
| OK, Communication server setup sucessfully finished ;-) |
| |
| Please, review /usr/local/etc/apache22/Includes/z-ocsinventory-server.conf
| to ensure all is good. Then restart Apache daemon. |
+----------------------------------------------------------+

Do you wish to setup Administration Server (Web Administration Console)
on this computer ([y]/n)?n

Setup has created a log file /usr/local/www/ocs/ocs_server_setup.log. Please, save this file.
If you encounter error while running OCS Inventory NG Management server,
we can ask you to show us his content !

DON'T FORGET TO RESTART APACHE DAEMON !

Enjoy OCS Inventory NG ;-)

6. Создадим файл виртуалхоста

#ee /usr/local/etc/apache22/Includes/ocs.conf
<VirtualHost *:80>
ServerAdmin webmaster@domen.ru
DocumentRoot /usr/local/www/ocs/ocsreports
ServerName ocs.domen.ru
ServerAlias www.ocs.domen.ru
ErrorLog "|/usr/local/sbin/rotatelogs /var/log/httpd/http.ocs.domen.ru-error_log.%Y-%m-%d-%H_%M_%S 86400"
CustomLog "|/usr/local/sbin/rotatelogs /var/log/httpd/http.ocs.domen.ru-access_log.%Y-%m-%d-%H_%M_%S 86400" common

<Directory />
Order deny,allow
Allow from 192.168.0.0/16
Options Indexes FollowSymLinks
DirectoryIndex index.php
AllowOverride Options
php_flag file_uploads on


7. Подключимся к mysql и создадим пользователя с нужными правами

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3495
Server version: 5.1.41 FreeBSD port: mysql-server-5.1.41

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'localhost' IDENTIFIED BY 'ocs';


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

http: // ip_address/ocsreports
В строке «Nombre del servidor» вводим localhost
image

жмем «Отправить запрос»
image
Кликаем по ссылке
image

Выбираем флаг нашей Родины и вводим admin/admin

image

9. Проверяем работоспособность нашего OCSNG сервера

Для того чтобы к нам на сервер приходили отчеты о хардверной начинке компьютеров и установленном ПО необходимо установить агента на компьютеры нашей сети. Для этого вновь идем на ftp linvinus'а и качаем пропатченный агент.
На сервере выполняем комманду
tail -F /var/log/httpd/http.ocs.domen.ru-error_log.2010-09-14-00_00_00
и переходим к установке агента. В процессе установки нам будет предложенно указать сервер для сбора данных
image
не забудьте поставить галочку как на скриншоте, для того чтобы после установки агент послал информацию серверу
Если в логе мы видим ругань подобную этой
[Tue Sep 14 19:16:34 2010] [error] [client 192.168.254.2] Can't call method "rollback" on an undefined value at /usr/local/lib/perl5/site_perl/5.8.9/Apache/Ocsinventory/Server/System.pm line 265.\n
то необходимо проверить правильность установок подключения к mysql в файле
/usr/local/www/ocs/ocsreports/dbconfig.inc.php
и в
/usr/local/etc/apache22/Includes/z-ocsinventory-server.conf
Если все в порядке, то в веб интерфейсе OCS появится новая запись, примерно как на скриншоте =)
image

10. Последним штрихом будет развертка агента в сети средствами Active Directory.

В вики OCS есть скрипт который нуждается лишь в небольшом исправлении в соответствии с реалиями вашей сети.
@echo off

REM *********** Declare variables *********************************************
REM *********** Adjust to your situation **************************************
SET Version=4061.1
REM имя или IP сервера где установлен OCSNG
SET Server=ocs.domen.ru
REM путь к папке на расшареном ресурсе, который доступен всем компьютерам домена
SET SetupPath=\\dc\shareUstPril

REM *********** Install if agent isn't found **********************************
IF EXIST "%PROGRAMFILES%\OCS Inventory agent\OCSInventory.exe" GOTO update
:install
%SetupPath%\OcsAgentSetup.exe /S /SERVER:%Server% /NP /DEBUG
GOTO version

:update
REM *********** Update agent if %Version%.txt isn't found *********************
IF EXIST "%PROGRAMFILES%\OCS Inventory agent\%Version%.txt" GOTO end
:upgrade
%SetupPath%\OcsAgentSetup.exe /S /SERVER:%Server% /NP /UPGRADE /DEBUG

:version
cd /D "%PROGRAMFILES%\OCS Inventory agent\"
echo pwouet > %Version%.txt

:end
REM *********** Cleanup variables *********************************************
SET Version=
SET Server=
SET SetupPath=

Сохраняем как install_ocs_agent.bat и настраиваем GPO соответствующим образом.
На этом с OCS закончим. Стоит лишь отметить что данные от агентов приходят с рандомной задержкой, поэтому после окончания настройки пройдет достаточно много времени перед тем как вы получите данные от всех компьютеров.

Установка GLPI.
Версия GLPI: glpi-0.72.4_1
1. Установим GLPI из портов.

make -c /usr/ports/www/glpi install clean
После чего создаем алиас или виртуалхост(кому как нравится) в апаче. У меня это алиас
Alias /glpi "/usr/local/www/glpi"
<Directory "/usr/local/www/glpi">
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from 192.168.0.0/16


*Почему-то закрывающая "/Directory" не отобразилась, поэтому если копипастите будьте внимательны =)

2.Создадим пользователя в mysql с необходимыми правами

mysql> grant all privileges on glpi.* to 'glpi'@'localhost' identified by 'password_ololo';

3. Идем на http:// domen.ru/glpi и следуем по шагам мастера установки

image
image
image
image
image
image
image
image
image

3.Немного поправим исходники GLPI

Правим файл
/usr/local/www/glpi/inc/ocsng.class.php
Находим класс
class DBocs extends DBmysql
и меняем строку
$this->dbenc="latin1";
на
$this->dbenc="utf8";

4. Устанавливаем плагин для импорта из OCS

OCS Import

Плагин нужно распаковать в папку
/usr/local/www/glpi/plugins/

После чего перейти в веб интерфейсе GLPI
# Основная панель >
# Установки >
# Дополнения
Жмем «Установить», затем «Включить»

Далее отправляемся в
# Основная панель >
# Установки >
# Общие
# Ограничения
«Активировать режим OCSNG » — Да

теперь
# Основная панель >
# Установки >
# Режим OCSNG
Устанавливаем опции
image

# Основная панель >
# Инструментарий >
# OCSNG
# Импортирование новых компьютеров
Делаем импорт и вуаля =)
image

И в заключение экспорт в pdf на русском


1. Заменяем все вызовы utf8_decode на utf8_decode_cyr
#sed -e 's/utf8_decode/utf8_decode_cyr/g' /usr/local/www/glpi/inc/export.function.php > /usr/local/www/glpi/inc/export.function.php.new
#mv /usr/local/www/glpi/inc/export.function.php.new /usr/local/www/glpi/inc/export.function.php


2. Добавляем в /var/www/glpi/inc/export.function.php функцию
function utf8_decode_cyr($value){
return iconv("UTF-8","Windows-1251",$value);
}


3. Качаем набор шрифтов по cсылке

4. Складываем файлы из архива в /usr/local/www/glpi/lib/ezpdf/fonts/
Теперь pdf экспортируется как надо
image

Фуууухххх… управились!
Все, связка OCS + GLPI установлена и настроена.
Мне лишь осталось поблагодарить за помощь и поддержку камрада Pascal с форума системных администраторов UNIX и перечислить используемые источники информации =)

1. www.tux.in.ua/articles/1500
2. forums.ocsinventory-ng.org/viewtopic.php?id=4104

ps
У GLPI есть еще масса интересных функций, но в рамки данной заметки они ни как не попадают.
Если у кого то будут траблы с установкой — жду в каментах, чем смогу, как говорится.
Евгений Романенко @FessAectan
карма
64,5
рейтинг 0,0
Системный администратор
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (28)

  • +2
    В последних версиях glpi, OCS import встроен, плагин не нужен.
  • 0
    Недавно поднимал данную связку. Этот мануал мог сэкономить мне пару дней:)

    1 ) в качестве агента можно использовать fusion-inventory fusioninventory.org/
    из плюсов которого UTF-8 + поддержка современного железа + можно настроить агента на сбор данных с сетевых устройств
    для плагина fusioninventory-glpi.
    2) с модулем pdf поступаем так же как с export.function.php

    • 0
      Обязательно посмотрю в сторону fusion-inventory, спасибо.
    • 0
      У фьюжина есть один минус — он очень долго собирает информацию (около 5 минут), мы запускаем агент GPO скриптами (абсолютно не вижу смысла ставить как сервис) и тогда это критично + авторы OCS-NG обещали выпустить в ближайшие дни полностью переписанный агент под win.
    • 0
      Спасибо, не знал про него. Смотрю он значительно превосхотит OCS-Inventory :)
  • 0
    Вы знаете, пока(пришла инфа о ~50 компьютерах) я агентом OCS-NG доволен чуть менне чем полностью.
  • 0
    сложновато, длинно, нет гибкости. после этого checkcfg.narod.ru/, по крайне мере в виндовой среде, совершенно неактуально.
    • 0
      Какой инструмент использовать каждый рещает сам ;)
      К тому же функионал GLPI практически не раскрыт, а там, поверьте много интересного.
      Длинно, хм… делал дома по своему же мануалу, на настройку ушло что-то около часа.
      Нет гибкости, не понял что вы имеете ввиду.
      OCSNG сервер есть и для Windows.
    • 0
      пробежал по диагонали по предложенной вами ссылке…
      Убедился еще раз что выбрал правильные инструменты.
      • 0
        Для винды некоторое время checkcfg был чуть ли не единственным бесплатным софтом в своей категии (если не ошибаюсь, конечно). Какое-то время сам его юзал… Но когда перешел на никсы, узнал про GLPI и OCS и перешел на них, в чем ни капли не жалею :)
  • +1
    В ubuntu нужно ставить пакет:
    apt-get install libxml-sax-expat-incremental-perl
    а то ошибка в логах при запуске агента:
    Couldn't open encmap utf8.enc:\nNo such file or directory\n at /usr/lib/perl5/XML/Parser.pm line 187\n

  • +2
    Давно использую GLPI, очень доволен этой системой. Связка OCS не раз экономила мои время и силы :)

    Кстати, попробуйте плагин Network Architecture, который генерит графическое представление сети. В связке с OCS это отличная штуковина получается.
    • 0
      Благодарю за совет, обязательно попробую.
      • 0
        А нет ли плагина, чтобы нарисовать план офиса, расставив там компьютеры? Например, как в Visio.

        (до этого юзал монструозную связку из Visio + Excel + AD для рисования схемы и инвентаризации)

        Заранее, благодарю!
  • 0
    Скачал клиент 2005-го года. Какой смог найти. Поставил пакет libxml-sax-expat-incremental-perl. Это не помогло… в логах на сервер та же ошибка. Не подскажете где взять рабочий клиент под Ubuntu 10.04, на сервере стоит Ubuntu 8.04
    • 0
      Я на своем рабочем компьютере ставил коммандой
      sudo aptitude install ocsinventory-agent
      Версия
      dpkg -l |grep ocs
      ii ocsinventory-agent 2:1.1.1-2 Hardware and software inventory tool (client

      • 0
        Большое спасибо, таким образом получилось.
  • 0
    OpenAudit еще можно посмотреть, менее монтсроообразен чем вышеприведённое ПО
  • 0
    Спасибо за подробный мануал.
    На днях вышел релиз-кандидат OCS: 2.0 rc1.

    Из заявленных основных изменений:
    — поддержка UTF8;
    — переписанная веб-консоль;
    — упрощение работы с плагинами;
    — добавление поддержки SNMP;
    — поддержка систем Microsoft веток 6.x 32- и 64-разрядных (Windows Server 2008, Windows7, Vista).
    • 0
      После праздников будем посмотреть =)
    • 0
      У меня агент OCS-NG-Windows-Agent-2.0RC1 при попытке отправить данные падает с ошибкой:
      Ошибка приложения ocsinventory.exe, версия 2.0.0.8, модуль msvcr90.dll, версия 9.0.30729.4148, адрес 0x00058289.

      С сервером проблем пока не заметил. Устанавливал на ubuntu server по этому мануалу.
      • 0
        Не знаю как в том мануале, но я писал
        Для того чтобы к нам на сервер приходили отчеты о хардверной начинке компьютеров и установленном ПО необходимо установить агента на компьютеры нашей сети. Для этого вновь идем на ftp linvinus'а и качаем пропатченный агент.
        • 0
          Добрый день! Не могу скачать ни клиент, ни сервер по ссылка с linvinus.ru. Нет доступа к указанному фтп. Не могли бы Вы выложить куда-то в другое место эти материалы?
  • 0
    После установки агента в его логе остается следующее

    http://server/ocsinventory/deploy/label>...ERROR: HTTP status code 404


    Чтение мануалы и форумы говорят о необходимости установить mod_perl для apache.
    Установка данного модуля не помогает, ошибка остается.
    • 0
      Чтение мануалов и форумов конечно
  • +1
    Спасибо, благодаря данной статье узнал про эту систему.
    Поставил последнюю версию OCS Inventory 2.0.2 с официального сайта, но в ней описанные здесь методы для UTF-8 не работают.
    Для начала, выполнил скрипт в MySQL wiki.ocsinventory-ng.org/index.php/Howtos:Migrate_your_OCS_database_to_UTF8

    сохранил текст скрипта в файл utf.sql, ввёл в консоли:

    mysql -u root -p
    USE ocsweb;
    source utf.sql
    exit

    Не полегчало )

    Нашёл на форуме сайта вариант решения forums.ocsinventory-ng.org/viewtopic.php?pid=43927#p43927

    В файлах (Ubuntu server 10.04.3)

    /usr/share/ocsinventory-reports/ocsreports/require/function_table_html.php
    /usr/share/ocsinventory-reports/ocsreports/require/function_machine.php
    /usr/share/ocsinventory-reports/ocsreports/plugins/main_sections/ms_all_soft/ms_all_soft.php
    /usr/share/ocsinventory-reports/ocsreports/backend/require/lib/phpcas/client.ph
    /usr/share/ocsinventory-reports/ocsreports/backend/require/lib/phpcas/CAS.php

    все вхождения

    htmlentities($*);

    переделал в

    htmlentities($*,ENT_COMPAT | ENT_HTML401,«UTF-8»);

    Помогло.

    С экспортом в pdf и GLPI пока не разбирался…
    • 0
      Рад что моя статья полезна.
      Я уже давно не использую описаное в статье ПО(новое место работы), если у вас будут вопросы, можете задать их здесь

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.