Бывают случаи когда на новом сервере необходимо установить старую версию MySQL 5.7. Не всегда можно перевести работающий ресурс на работу с новой версией или перевод требует больших трудов в изменении кода ресурса.
Можно одновременно установить несколько версий и трудностей с этим не возникнет. Важно указывать правильно пути и названия команд управления. Например, в нашем случае используется mysql-5.7. Кроме того, на одном из серверов мне необходима была только одна версия и всю настройку я сделал с учетом что будет использоваться только mysql.
При выполнении резервной копии базы данных и востановлении не забываем указывать правильное имя сервиса.
Переходим в папку и создаем папку под данные с назначением необходимых прав:
cd /opt/mysql-5.7
mkdir ./data
chown mysql:mysql ./data
chmod 755 ./data
Произведем начальную настройку сервера MySQL:
/opt/mysql-5.7 # ./bin/mysqld --initialize --user=mysql --basedir=./ --character-set-server=utf8
= вывод команды =
2022-02-02T06:37:58.431193Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp
server option (see documentation for more details).
2022-02-02T06:38:00.706137Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-02-02T06:38:01.541332Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-02-02T06:38:01.967699Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: ab3a127b-83f2-11ec-a16b-0e4799458f07.
2022-02-02T06:38:02.022913Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-02-02T06:38:03.275737Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-02-02T06:38:03.275828Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-02-02T06:38:03.276874Z 0 [Warning] CA certificate ca.pem is self signed.
2022-02-02T06:38:03.592321Z 1 [Note] A temporary password is generated for root@localhost: zRD?OXe,5NsfvfgTI
В выводе присутствует пароль который потребуется нам позже.
Открываем и приводим к коду указанному ниже в спойлере:
vim /etc/init.d/mysql-5.7
Необходимый код файла /etc/init.d/mysql-5.7
#!/bin/sh# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB# This file is public domain and comes with NO WARRANTY of any kind# MySQL daemon start/stop script.# Usually this is put in /etc/init.d (at least on machines SYSV R4 based# systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/K01mysql.# When this is done the mysql server will be started when the machine is# started and shut down when the systems goes down.# Comments to support chkconfig on RedHat Linux# chkconfig: 2345 64 36# description: A very fast and reliable SQL database engine.# Comments to support LSB init script conventions### BEGIN INIT INFO# Provides: mysql-5.7# Required-Start: $local_fs $network $remote_fs# Should-Start: ypbind nscd ldap ntpd xntpd# Required-Stop: $local_fs $network $remote_fs# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: start and stop MySQL# Description: MySQL is a very fast and reliable SQL database engine.### END INIT INFO# If you install MySQL on some other places than /usr/local/mysql, then you# have to do one of the following things for this script to work:## - Run this script from within the MySQL installation directory# - Create a /etc/my.cnf file with the following information:# [mysqld]# basedir=<path-to-mysql-installation-directory># - Add the above to any other configuration file (for example ~/.my.ini)# and copy my_print_defaults to /usr/bin# - Add the path to the mysql-installation-directory to the basedir variable# below.## If you want to affect other MySQL variables, you should make your changes# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.# If you change base dir, you must also change datadir. These may get# overwritten by settings in the MySQL configuration files.basedir=/opt/mysql-5.7datadir=
mycnf=/etc/mysql/5.7/my.cnf# Default value, in seconds, afterwhich the script should timeout waiting# for server start. # Value here is overriden by value in my.cnf. # 0 means don't wait at all# Negative numbers mean to wait indefinitelyservice_startup_timeout=900# Lock directory for RedHat / SuSE.lockdir='/var/lock/subsys'lock_file_path="$lockdir/mysql"# The following variables are only set for letting mysql.server find things.# Set some defaultsmysqld_pid_file_path=
iftest-z"$basedir"thenbasedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
iftest-z"$datadir"thendatadir=/usr/local/mysql/data
fisbindir=/usr/local/mysql/bin
libexecdir=/usr/local/mysql/bin
elsebindir="$basedir/bin"iftest-z"$datadir"thendatadir="$basedir/data"fisbindir="$basedir/sbin"libexecdir="$basedir/libexec"fi# datadir_set is used to determine if datadir was set (and so should be# *not* set inside of the --basedir= handler.)datadir_set=
## Use LSB init script functions for printing messages, if possible#lsb_functions="/lib/lsb/init-functions"iftest-f$lsb_functions ; then
. $lsb_functionselse
log_success_msg(){echo" SUCCESS! $@"}
log_failure_msg(){echo" ERROR! $@"}fiPATH="/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin"export PATH
mode=$1# start or stop[$#-ge1]&&shiftother_args="$*"# uncommon, but needed when called from an RPM upgrade action# Expected: "--skip-networking --skip-grant-tables"# They are not checked here, intentionally, as it is the resposibility# of the "spec" file author to give correct arguments only.case`echo"testing\c"`,`echo-n testing`in*c*,-n*)echo_n= echo_c= ;;*c*,*)echo_n=-n echo_c= ;;*)echo_n= echo_c='\c';;esac
parse_server_arguments(){for arg docase"$arg"in--basedir=*)basedir=`echo"$arg"|sed-e's/^[^=]*=//'`bindir="$basedir/bin"iftest-z"$datadir_set"; thendatadir="$basedir/data"fisbindir="$basedir/sbin"libexecdir="$basedir/libexec";;--datadir=*)datadir=`echo"$arg"|sed-e's/^[^=]*=//'`datadir_set=1;;--pid-file=*)mysqld_pid_file_path=`echo"$arg"|sed-e's/^[^=]*=//'`;;--service-startup-timeout=*)service_startup_timeout=`echo"$arg"|sed-e's/^[^=]*=//'`;;esacdone}
wait_for_pid (){verb="$1"# created | removedpid="$2"# process ID of the program operating on the pid-filepid_file_path="$3"# path to the PID file.i=0avoid_race_condition="by checking again"whiletest$i-ne$service_startup_timeout ; docase"$verb"in'created')# wait for a PID-file to pop into existence.test-s"$pid_file_path"&&i=''&&break;;'removed')# wait for this PID-file to disappeartest!-s"$pid_file_path"&&i=''&&break;;*)echo"wait_for_pid () usage: wait_for_pid created|removed pid pid_file_path"exit1;;esac# if server isn't running, then pid-file will never be updatediftest-n"$pid"; thenifkill-0"$pid"2>/dev/null; then
: # the server still runselse# The server may have exited between the last pid-file check and now. iftest-n"$avoid_race_condition"; thenavoid_race_condition=""continue# Check again.fi# there's nothing that will affect the file.
log_failure_msg "The server quit without updating PID file ($pid_file_path)."return1# not waiting any more.fifiecho$echo_n".$echo_c"i=`expr$i + 1`sleep1doneiftest-z"$i" ; then
log_success_msg
return0else
log_failure_msg
return1fi}# Get arguments from the my.cnf file,# the only group, which is read from now on is [mysqld]iftest-x"$bindir/my_print_defaults"; thenprint_defaults="$bindir/my_print_defaults"else# Try to find basedir in /etc/my.cnfconf=/etc/my.cnf
print_defaults=
iftest-r$confthensubpat='^[^=]*basedir[^=]*=\(.*\)$'dirs=`sed-e"/$subpat/!d"-e's//\1/'$conf`for d in$dirsdod=`echo$d|sed-e's/[ ]//g'`iftest-x"$d/bin/my_print_defaults"thenprint_defaults="$d/bin/my_print_defaults"breakfidonefi# Hope it's in the PATH ... but I doubt ittest-z"$print_defaults"&&print_defaults="my_print_defaults"fi## Read defaults file from 'basedir'. If there is no defaults file there# check if it's in the old (depricated) place (datadir) and read it from there#extra_args=""iftest-r"$basedir/my.cnf"thenextra_args="-e $basedir/my.cnf"fi
parse_server_arguments `$print_defaults$extra_args mysqld server mysql_server mysql.server`## Set pid file if not given#iftest-z"$mysqld_pid_file_path"thenmysqld_pid_file_path=$datadir/`hostname`.pid
elsecase"$mysqld_pid_file_path"in/*);;*)mysqld_pid_file_path="$datadir/$mysqld_pid_file_path";;esacficase"$mode"in'start')# Start daemon# Safeguard (relative paths, core dumps..)cd$basedirecho$echo_n"Starting MySQL"iftest-x$bindir/mysqld_safe
then# Give extra arguments to mysqld with the my.cnf file. This script# may be overwritten at next upgrade.$bindir/mysqld_safe --defaults-file="$mycnf"--datadir="$datadir"--pid-file="$mysqld_pid_file_path"$other_args>/dev/null &
wait_for_pid created "$!""$mysqld_pid_file_path"; return_value=$?# Make lock for RedHat / SuSEiftest-w"$lockdir"thentouch"$lock_file_path"fiexit$return_valueelse
log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"fi;;'stop')# Stop daemon. We use a signal here to avoid having to know the# root password.iftest-s"$mysqld_pid_file_path"then# signal mysqld_safe that it needs to stoptouch"$mysqld_pid_file_path.shutdown"mysqld_pid=`cat"$mysqld_pid_file_path"`if(kill-0$mysqld_pid2>/dev/null)thenecho$echo_n"Shutting down MySQL"kill$mysqld_pid# mysqld should remove the pid file when it exits, so wait for it.
wait_for_pid removed "$mysqld_pid""$mysqld_pid_file_path"; return_value=$?else
log_failure_msg "MySQL server process #$mysqld_pid is not running!"rm"$mysqld_pid_file_path"fi# Delete lock for RedHat / SuSEiftest-f"$lock_file_path"thenrm-f"$lock_file_path"fiexit$return_valueelse
log_failure_msg "MySQL server PID file could not be found!"fi;;'restart')# Stop the service and regardless of whether it was# running or not, start it again.if$0 stop $other_args; then$0 start $other_argselse
log_failure_msg "Failed to stop running server, so refusing to try to start."exit1fi;;'reload'|'force-reload')iftest-s"$mysqld_pid_file_path" ; thenread mysqld_pid <"$mysqld_pid_file_path"kill-HUP$mysqld_pid&& log_success_msg "Reloading service MySQL"touch"$mysqld_pid_file_path"else
log_failure_msg "MySQL PID file could not be found!"exit1fi;;'status')# First, check to see if pid file existsiftest-s"$mysqld_pid_file_path" ; thenread mysqld_pid <"$mysqld_pid_file_path"ifkill-0$mysqld_pid2>/dev/null ; then
log_success_msg "MySQL running ($mysqld_pid)"exit0else
log_failure_msg "MySQL is not running, but PID file exists"exit1fielse# Try to find appropriate mysqld processmysqld_pid=`pidof$libexecdir/mysqld`# test if multiple pids existpid_count=`echo$mysqld_pid|wc -w`iftest$pid_count-gt1 ; then
log_failure_msg "Multiple MySQL running but PID file could not be found ($mysqld_pid)"exit5eliftest-z$mysqld_pid ; theniftest-f"$lock_file_path" ; then
log_failure_msg "MySQL is not running, but lock file ($lock_file_path) exists"exit2fi
log_failure_msg "MySQL is not running"exit3else
log_failure_msg "MySQL is running but PID file could not be found"exit4fifi;;*)# usagebasename=`basename"$0"`echo"Usage: $basename {start|stop|restart|reload|force-reload|status} [ MySQL server options ]"exit1;;esacexit0
[свернуть]
Назначаем необходимые права:
chmod +x /etc/init.d/mysql-5.7
Создаем папку для конфигурации сервера и создаём файл конфигурации:
Обращаю внимание что указывается не стандартный порт для работы сервиса. Можете указать стандартный порт 3306 для работы MySQL.
Добавляем в автозагрузку и запускаем:
systemctl enable mysql-5.7
systemctl start mysql-5.7
= или одной командой =
systemctl enable --now mysql-5.7
Авторизуемся, меняем пароль и смотрим статус работы сервера MySQL:
/opt/mysql-5.7# mysql-5.7 --defaults-file=/etc/mysql/5.7/my.cnf -u root -p
Enter password: вводим пароль от root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.37
Copyright (c)2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.
mysql>STATUS;
ERROR 1820(HY000): You must reset your password using ALTER USER statement before executing this statement.
= вывод нам говорит что необходимо сменить пароль и мы его меняем =
mysql>SET PASSWORD = PASSWORD('пароль');
Query OK, 0 rows affected, 1 warning (0,00 sec)= выходим =
mysql>\q
Bye
= авторизуемся с новым паролем =/opt/mysql-5.7# mysql-5.7 --defaults-file=/etc/mysql/5.7/my.cnf -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.37 MySQL Community Server (GPL)
Copyright (c)2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.
mysql>STATUS;
= вывод команды =--------------
mysql-5.7 Ver 14.14 Distrib 5.7.37, for linux-glibc2.12 (x86_64) using EditLine wrapper
Connection id: 3
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.37 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql-5.7.sock
Uptime: 2 min 15 sec
Threads: 1 Questions: 9 Slow queries: 0 Opens: 109 Flush tables: 1 Open tables: 102 Queries per second avg: 0.066--------------
mysql> \q
Bye
Заключение
Поддерживать систему в актуальном состоянии важно и нужно. Все необходимые старые версии программного обеспечения вы всегда сможете установить с небольшими усилиями.
Lnav представляет собой расширенный просмотрщик файлов журналов (log) для терминала Linux. Открывает архивные логи, отображает содержимое в режиме реального времени, возможно открыть сразу несколько логов и увидеть их наложение на одном экране.
Введение
В работе постоянно требуется просматривать логи для выявления ошибок и оптимальной настройки как системы так и разных служб. На практике я перепробовал разные утилиты, но данная программа подходит идеально для разных случаев. Устанавливается просто и не требует никаких дополнительных настроек.
Основные преимущества утилиты:
Устанавливается просто и не требует настроек,
Показывает содержание в режиме реального времени,
Позволяет открывать архивные файлы,
Производит подсветку синтаксиса,
Можно открывать несколько логов одновременно.
Установка Lnav
Утилита присутствует во всех популярных операционных системах Linux.
Более подробно о программе и работе с ней можно посмотреть на официальном сайте Lnav.
Установка из репозитория:
= Семейство Debian =
apt install lnav
= Семейство RedHat =
dnf install lnav
Работа с Lnav
В сети существует Документация по Lnav на русском языке в котором все хорошо рассказано.
Lnav понимает наиболее популярные форматов логов, таких как access логи веб сервера, syslog, dpkg, strace и другие. Программа автоматически подсвечивает, позволяет быстро делать какие-то выборки. Например, посмотреть все ошибки в нужном логе, показать по ним статистику, вывести информацию по какой-то службе и т.д. и т. п.
В Lnav есть возможность открыть сразу несколько логов и увидеть их наложение на одном экране. Это удобно, когда надо что-то расследовать.
Открываем сразу два лога такой командой:
# В случае если находимся в нужной папке
/var/www/sevo44.ru/log # lnav sevo44.ru-access.log sevo44.ru-error.log
# С указанием полного пути
lnav /var/www/sevo44.ru/log/sevo44.ru-access.log /var/www/sevo44.ru/log/sevo44.ru-error.log
Утилита выстроит строки обоих логов в порядке времени событий.
Заключение
Конечно для более профессионального подхода в изучении логов лучше использовать такое решение как Elastic Stack, но пока его нет или не подключили новый ресурс использование утилиты Lnav лучшее решение.
Кроме того не надо путать мониторинг логов и мониторинг параметров системы это совсем разные вещи. Например я лично для мониторинга разных параметров системы активно и давно использую систему Zabbix.
Установим и настроим 1С:Предприятие 8.3 на OC Astra Linux. Работать программа может на свободном терминальном сервере XRDP для удобного подключения по протоколу RDP. Из всех вариантов этот вариант меня порадовала больше всего.
Введение
Произведём установку и настройку программы «1С:Предприятие 8.3» c конфигурацией «Бухгалтерия предприятия (базовая)» с программной и аппаратной лицензией. Установка будет производиться на сервер работающий под управлением Astra Linux Common Edition 2.12.44. Сделаем удаленный доступ с помощью XRDP который позволит одновременно сидеть на сервере нескольким пользователям по протоколу RDP.
Требования, которые предъявляет разработчик к системам на которых может работать их продукты, вы можете найти на странице Системные требования «1С:Предприятия 8».
После установки программы, в справке по пути: «1С:Предприятие» — «Работа пользователя» — «Особенности работы в Linux», можно ознакомиться с нюансами работы системы.
Многие компании, занимающиеся 1С, будут советовать вам приобрести для работы в системе именно систему Windows, обосновывая это большей надежностью и удобством. Имейте в виду, что при продаже Windows продавец, согласно политике компании, получает приличное вознаграждение, что вызывает у многих естественное желание продать побольше. В ряде случаев действительно придется использовать систему Windows, но не факт, что она подойдёт именно вам.
Платформа и конфигурация 1С:Предприятие для Linux
В документах, которые вы получили после приобретения программного продукта семейства 1С, вы найдете регистрационные данные которые необходимы для регистрации на портале поддержки 1C:Портал поддержки. После регистрации и активации своего продукта, вы получите доступ для скачивания всего необходимого.
Иногда компании, в которых вы приобретаете продукт, может зарегистрировать продукт за вас. Уточните этот момент перед тем, как зарегистрируетесь сами.
Различие Базовой и Проф конфигурации
К выбору версии надо подходить очень аккуратно и четко понимать, что и в каком виде нужно именно вам. Не стоит идти на уловки компаний — дилеров, не спешить с приобретением ПРОФ версии и подписки ИТС.
Рассмотрим кратко основные отличия:
Базовая версия — при этом выборе вы можете вести только одну организацию в одной базе. Таких баз можно вести сколько угодно, но для каждой организации будет своя база. Плюс заключается в том, что вы всегда сможете сами обновляться с официального сайта поддержки, не прибегая к помощи сторонних специалистов. Но есть и минус — работать сможет только один пользователь. Ни о какой совместной работе в базе нескольких человек, не может быть и речи.
Если вы не планируйте вносить изменения в конфигурацию, то и нет необходимости работать с базой одновременно нескольким пользователям. В этом случае базовая версия именно то, что вам и нужно.
ПРОФ версия — как только вы перешли на эту версию, обновления будут доступны только при подписке ИТС. Появится возможность вносить изменения в конфигурацию, работать нескольким пользователям и вести несколько фирм в одной базе.
Важно иметь в виду, что при переходе на ПРОФ версию, вы полностью будете зависеть от той компании, в которой оформили подписку ИТС. Таких компаний много, важно выбрать хорошую и надёжную. Лучше, если эту компанию вам порекомендуют те, которым вы доверяете.
Вот вопрос-ответ службы поддержки 1С на два моих вопроса.
Версию ПРОФ в отличии от БАЗОВОЙ можно обновлять только при активной подписке на ИТС? — Да.
В моем случае, для тестирования без приобретения подписки ИТС, я не смогу обновлять версию ПРОФ легальными способами? — Да.
В практике мне приходилось сталкиваться с тем, что иногда компания использует старую версию программы (например 8.1) и хочет перейти и обновиться до новой версии 8.3, но продавец у которого они приобретали продукт говорит, что надо купить новую версию. Каково же было их удивление, когда я обновлял им программу до последней версии и показывал, как надо обновляться в дальнейшем.
Программная и аппаратная лицензия 1С:Предприятие
Это, пожалуй, один из самых важных моментов, который нужно учесть сразу. Программная лицензия стоит дешевле, но вызывает много проблем при смене оборудования. Как правило, отдел лицензирования всегда идёт на встречу и может предоставить даже большее количество активаций при определенных условиях, но это не всегда удобно. Использование USB ключей всё упрощает и развязывает руки при обновлении оборудования.
В практике встречался случай, когда компания приобрела программную лицензию на 5 пользователей и активировала её не для сервера, а для каждого пользовательского компьютера. Поначалу все было нормально, но когда база увеличилась, начались проблемы со скоростью. Использование скоростного диска SSD и перевода сети на 1 Gbit сильно улучшило ситуацию.
Варианты разворачивания сети 1С:Предприятие
Все хотят работать в программе 1С быстро, как на предприятии, так и дома. Все это возможно оптимально настроить различными способами.
Существует два вида работы базы данных:
Файловая база данных — самый простой вариант и подходит для небольших организаций идеально. Этот вариант мы и рассмотрим в данной статье.
База данных SQL — более сложный вариант и ориентирован на большое количество пользователей. При небольшом количестве пользователей нет смысла использовать такой вариант. Для работы будет нужна серверная лицензия, она стоит около 80 000 рублей.
Внимание!
Сервер 1С:Предприятия 8.3 под Linux может запуститься и без лицензии, при этом он позволяет иметь в кластере только один рабочий процесс, который допускает не более 12 клиентских соединений. Однако такая работа сервера не дает права использования программного обеспечения сервера 1С:Предприятия без покупки продукта «1С:Предприятие 8.3 Лицензия на сервер». Об этом сказано в лицензионном соглашении любой основной поставки 1С:Предприятия.
Оптимальное использование файловой базы данных 1C:Предприятие
Когда вы используйте файловую базу данных, расположенную в локальной сети, и клиенты подключаются к ней, скорость работы в программе будет зависеть от скорости локальной сети и от мощности самого компьютера. Для небольших баз такой вариант приемлем, но очень быстро базы увеличиваются и работа в программе становится все медленней и медленней, за исключением компьютера на котором расположена сама база.
Существует два варианта улучшения скорости работы в файловой базе данных:
Использование локальной сети 1 Gbit и диска SSD для базы данных — на какой-то момент это улучшит положение, но как показывает практика -ненадолго.
Использование терминального сервера — при таком варианте приобретается один мощный компьютер, на котором устанавливается программа, а все пользователи удалено подключаются к компьютеру используя свой профиль. Получится, что на одном компьютере будет одновременно несколько пользователей, не видя друг друга. По сети передается только картинка, а вся работа производится на сервере. Можно настроить удаленный доступ из интернета, и тогда избранные пользователи смогут используя медленный интернет спокойно работать в программе с домашнего компьютера.
Конечно, вы можете приобрести серверную версию Windows, так как только там легально можно использовать терминальный режим. Некоторые, по многочисленным советам в сети, переводят обычные версии Windows в терминальный режим, используя нелегальные варианты. Мой выбор — терминальный сервер Linux, который удовлетворил все мои требования и пожелания.
Установка терминального сервера XRDP
Устанавливаем сервер для возможности удаленного доступа к серверу несколькими пользователями:
apt install xrdp xorgxrdp
Проверяем статус:
# systemctl status xrdp
● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-04-19 20:59:44 MSK; 2min 27s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 2443 (xrdp)
CGroup: /system.slice/xrdp.service
└─2443 /usr/sbin/xrdp --nodaemon
апр 19 20:59:44 1c systemd[1]: Starting xrdp daemon...
апр 19 20:59:44 1c systemd[1]: Started xrdp daemon.
апр 19 20:59:44 1c xrdp[2443]: [INFO ] starting xrdp with pid 2443
апр 19 20:59:44 1c xrdp[2443]: [INFO ] address [0.0.0.0] port [3389] mode 1
апр 19 20:59:44 1c xrdp[2443]: [INFO ] listening to port 3389 on 0.0.0.0
апр 19 20:59:44 1c xrdp[2443]: [INFO ] xrdp_listen_pp done
Всё работает и добавлено на автозагрузку при запуске системы.
Используя протокол RDP подключаемся к серверу и работаем.
Так быстро я еще никогда не разворачивал XRDP. Всё работает из коробки и не требует никаких дополнительных действий.
Установка 1С Предприятие 8.3 на Astra Linux
Пошагово пройдем путь установки программы на систему Astra Linux.
Предварительная подготовка
Для установки необходимо в консоли зайти под пользователем root:
sevo44@orel-astra:~$ su -
Пароль:
root@orel-astra:~#
В случае если вы забыли пароль или его просто нет, необходимо выполнить в консоли команду которая создаст новый пароль:
passwd root
Создадим папки на сервере, в которую разместим файлы для установки платформы, программного обеспечения для работы с Hasp ключами USB и папку баз данных:
mkdir /root/srv1cv83-install
mkdir /home/base1c
Установим пакеты, которые необходимы для установки и корректной работы программы:
Скачиваем с сайта поддержки 1С «Технологическая платформа 1С:Предприятия (64-bit) для Linux».
Распаковываем архив в папку srv1cv83-install с помощью консоли:
cd /root/srv1cv83-install
tar xvzf server64_8_3_20_1789.tar.gz
ls
= вывод команды =
LibericaJDK-8-9-10-licenses.pdf Liberica-Notice.txt setup-full-8.3.20.1789-x86_64.run server64_8_3_20_1789.tar.gz
В активировании программной лицензии есть один нюанс. Когда вы запустите программу, она сообщит вам о необходимости её активировать, если вы начнете вводить пин-код ,то он окажется на 1 знак больше, чем требуемое количество.
Для активации однопользовательской программной лицензии, необходимо запустить программу 1С:Предприятие под пользователем root, только тогда при активации появится необходимое поле.
Установка HASP для работы с USB ключом
Программное обеспечение для работы с USB ключом будем использовать от компании Etersoft.
cd /root/srv1cv83-install
wget http://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/AstraLinux/orel/haspd_8.23-eter2astra_amd64.deb
Установим:
dpkg -i haspd_*.deb
= вывод команды =
Выбор ранее невыбранного пакета haspd.
(Чтение базы данных … на данный момент установлено 217439 файлов и каталогов.)
Подготовка к распаковке haspd_8.23-eter2astra_amd64.deb …
Распаковывается haspd (8.23-eter2astra) …
Настраивается пакет haspd (8.23-eter2astra) …
Обрабатываются триггеры для systemd (232-25+deb9u12astra.ce9) …
В системе Proxmox проброс нужного порта в виртуальную машину делается очень просто:
Для проверки работы ключа откроем браузер по ссылке http://127.0.0.1:1947 и смотрим появление нашего ключа в списке:
Создание файловой базы данных 1C:Предприятие
В Linux для создания баз из шаблона вначале необходимо установить шаблон в необходимую папку, а потом указать в настройке откуда брать шаблоны.
Для этих действий необходимо чтобы в системе была установлена Wine. К сожалению, без этого нельзя запустить файлы exe. Других способов установки базы из шаблона в системе Linux я не нашел.
В моем случае, я скопировал папку с базой в нужное место и выдал необходимые права:
chmod -R 777 /home/base1c
Права надо выдавать только после того, как скопируете все необходимые базы 1С!
Запуск 1C:Предприятие
В меню появилась ссылка на запуск программы:
При первом запуске появляется сообщение о необходимости установки шрифтов. В моем случае все шрифты уже были и отображались корректно, но при сохранении документов в PDF были проблемы с отображением шрифтов.
Переходим в необходимое место и смотрим информацию которая там указывается.
Проблемы со шрифтами
Не сразу заметил проблему со шрифтами при экспорте в pdf файл. Часть текста обрезалась, и информация была не полной. Можно ставить пакеты со шрифтами, но достаточно иметь шрифты по пути /usr/share/fonts/msttcorefonts.
Скачиваем и распаковываем архив в нужное место под пользователем root:
cd /usr/share/fonts
wget https://sevo44.ru/sevo44/download/msttcorefonts.tar.gz
tar xvzf msttcorefonts.tar.gz
Можно установить специальный пакет, который установит необходимые шрифты:
Какой вариант выбрать, решать вам. Надеюсь, разработчики рано или поздно для версии Linux перестанут использовать эти шрифты.
Вот так это выглядит, когда мы еще не установили необходимые шрифты:
С установленными шрифтами видно, что шрифт стал другой, но это малозаметно:
Обновление платформы 1С:Предприятие в Linux
Обновление производится по тому же принципу установки программы, описанному выше. Скачиваем новые пакеты и заново устанавливаем.
Обновление базовой конфигурации 1C:Предприятие в Linux
Обновление для ПРОФ — это совсем другая история.
Обновлять конфигурацию необходимо в режиме конфигуратора базы. Конфигурация — Обновить конфигурацию — Поиск доступных обновлений указываем наш логин и пароль от личного кабинета пользователя, и обновляемся.
Обязательно перед обновлением конфигурации нужно знать, какая необходима минимальная версия платформы. В противном случае, вы не зайдете в базу пока не обновите платформу.
Резервное копирование
Механизм резервного копирования в самой программе не работает.
Общий план резервного копирования следующий:
Останавливаем все запущенные процессы 1С;
Делаем резервную копию методом архивирования папки с базой.
Обычно я держу на сервере только 3 последние резервных копии, так как другой сервер забирает резервные копии и хранит их за гораздо больший период.
Создаем скрипт, который будет выполнять все необходимые действия:
vim /root/bin/backup1c.sh
= необходимый код =
#!/bin/sh
# Дата в формате 2015-09-29_04-10
date_time=`date +"%Y-%m-%d_%H-%M"`
# Путь сохранения копии
bk_dir='/root/backup1c'
# Вначале смотрим в Диспетчер задач название приложения
# затем смотрим вывод -> ps aux | grep 1cv8c
# Выполняем команду, которая завершит все процессы
# Если не писать никакого сигнала, то команда выполнит
# SIGTERM - немедленно завершает процесс, но обрабатывается программой,
# поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы.
# killall - завершит все имеющиеся процессы с таким именем
# Закрываем 1с
killall 1cv8c
# Создаем файл с датой создания базы
echo `date +"%Y-%m-%d_%H-%M"` > /root/backup1c/timestamp
# Создаем базу через 10 секунд
sleep 10/bin/tar -cvzf $bk_dir/dolotov1cbase_$date_time.tar.gz /home/base1c/dolotov1cbase/*
# Удаляем копии старше 3-x дней
/usr/bin/find $bk_dir -type f -mtime +1 -exec rm {} \;
После создания скрипта делаем его исполнительным:
chmod +x /root/bin/backup1c.sh
Для проверки обязательно запустим и проверим, как он отработает:
После успешной проверки добавляем скрипт на автоматическое выполнение по расписанию.
Открываем необходимый файл и добавляем нужный код:
vim /etc/crontab
= необходимый код =
### Backup1С
# ежедневно в 3 часа
00 3 * * * root /root/bin/backup1c.sh >/dev/null 2>&1
Согласно команде каждый день в 3:00 будет выполняться скрипт для создания ежедневного бэкапа.
Заключение
Установку и настройку 1С:Предприятие я выполнял на разных системах, но установка на Astra Linux была самая простая. Настройка терминального сервера XRDP для подключения пользователей по протоколу RDP оказалась беспроблемной, так как всё заработало без дополнительного вмешательства в настройку.
Может быть в системе Astra Linux из коробки и не так много программ в репозиториях, но то, что они все работают и стабильные — это факт. Графическая оболочку Fly, которая используется только в этом дистрибутиве, очень хорошо сделана, и все продумано максимально, но самое главное в этом то, что куда бы я не заходил, всё работает и нет ошибок.
Считаю, что использование Astra Linux под 1C:Предприятие — самый лучший вариант.
Использовать шифрование данных залог того что ваши данные не попадут в руки кому попало. В этой статье расскажу как производить шифрование диска или раздела в ОС Linux используется модуль ядра dm-crypt LUKS.
Введение
Чтобы выполнить шифрование диска в системе Linux используется модуль ядра dm-crypt. Этот модуль позволяет создавать в каталоге /dev/mapper виртуальное блочное устройство с возможностью его шифрования. Фактически все данные лежат на зашифрованном физическом разделе. Данные на лету шифруются и записываются на диск, при чтении с виртуального устройства, выполняется обратная операция — данные расшифровываются с физического диска и передаются в открытом виде через виртуальный диск пользователю. Обычно для шифрования используется протокол шифрования AES, потому что под него оптимизированы большинство современных процессоров.
Важно заметить, что вы можете шифровать не только разделы и диски, но и обычные файлы, создав в них файловую систему и подключив как loop устройство.
Для работы с LUKS и модулем dm-crypt используется утилита Cryptsetup.
Создание шифрованного устройства
Общая схема работы с шифрованным устройством следующая:
Определяется устройство для шифрования;
Создается шифрованный раздел;
Производится форматирование раздела в необходимую файловую систему;
Монтирование раздела в систему.
Установка CRYPTSETUP
Выберите свою команду исходя из своей системы и установите необходимую утилиту:
apt install cryptsetup
dnf install cryptsetup
Синтаксис запуска команды такой:
$ cryptsetup опцииоперацияпараметры_операции
Основные операции, которые можно сделать используя утилиту:
luksFormat — создать зашифрованный раздел luks linux;
luksOpen — подключить виртуальное устройство (нужен ключ);
luksClose — закрыть виртуальное устройство luks linux;
luksAddKey — добавить ключ шифрования;
luksRemoveKey — удалить ключ шифрования;
luksUUID — показать UUID раздела;
luksDump — создать резервную копию заголовков LUKS.
cryptsetup -y -v luksFormat /dev/sdb
= вывод команды =
ПРЕДУПРЕЖДЕНИЕ: Устройство /dev/sdb уже содержит подпись раздела «dos».
WARNING!
========
Данные на /dev/sdb будут перезаписаны без возможности восстановления.
Are you sure? (Type uppercase yes): YES - Внимание! Писать только заглавными буквами!
Введите парольную фразу для /dev/sdb: ! пароль
Парольная фраза повторно: ! повтор пароля
Existing 'dos' partition signature on device /dev/sdb will be wiped.
Создан слот ключа 0.
Команда выполнена успешно.
В данном примере я использую парольную фразу так как именно такой подход мне кажется наиболее правильным. При желании можно использовать ключевой файл вместо парольной фразы.
Откроем созданный раздел с помощью модуля dm-crypt в /dev/mapper, для этого понадобится ввести пароль, с которым выполнялось создание раздела:
cryptsetup luksOpen /dev/sdb sdb_crypt
Посмотрим созданное виртуальное устройство:
ls -l /dev/mapper/sdb_crypt
= вывод команды =
lrwxrwxrwx 1 root root 7 дек 27 21:53 /dev/mapper/sdb_crypt -> ../dm-3
Посмотреть состояние устройства можно выполнив команду:
cryptsetup -v status sdb_crypt
= вывод команды =
/dev/mapper/sdb_crypt is active.
type: LUKS2
cipher: aes-xts-plain64
keysize: 512 bits
key location: keyring
device: /dev/sdb
sector size: 512
offset: 32768 sectors
size: 625109680 sectors
mode: read/write
Команда выполнена успешно.
Рекомендую сделать резервную копию заголовков LUKS это может помочь при возможных в будущем проблем.
После открытия раздела он воспринимается системой, как и все другие. Для проверки можно использовать утилиту fsck ( при условии что файловая система отмантирована ):
fsck -vy /dev/mapper/sdb_crypt
Изменение парольной фразы LUKS
Парольную фразу можно изменить или создать до восьми разных парольных фраз.
Перед началом обязательно сделайте резервную копию заголовков LUKS:
cryptsetup luksDump /dev/sdb
Команда для создания новой парольной фразы:
cryptsetup luksAddKey /dev/sdb
= вывод команды =
Введите любую существующую парольную фразу: ! вводим существующий пароль
Введите новую парольную фразу для слота ключа: ! вводим новый пароль
Парольная фраза повторно: ! повторяем новый пароль
Пользуюсь таким вариантом в работе уже давно и каких то проблем я не замечал.
Единственный минус заключается только в том что при перезагрузке системы приходится вручную подключать шифрованные разделы указывая пароль. Используя файл ключа шифрования можно настроить автоматическое монтирование шифрованного устройства, но тогда вообще пропадает смысл шифрования. Когда в системе с шифрованным устройством находится и сам ключ шифрования при правильных манипуляциях хороший специалист без проблем подключит шифрованный диск.
Решать в любом случае вам как защищать свои данные, но то что сейчас это надо делать обязательно актуально как никогда.
Несколько версий PHP на сервере Linux удобно в работе и последующем обслуживании. В статье пример на базе Rocky Linux , но вы можете использовать его и для других систем использующих репозиторий RHEL.
Введение
Для любого системного администратора обновление версий PHP является задачей не простой и очень ответственной. При использовании на сервере одной версии php в процессе перехода на новую версию приходиться делать много действий необходимых для безотказной работы ресурса на период обновления. Сюрпризы могут подстерегать на любом моменте и спрогнозировать их крайне сложно.
В этой статье я описал механизм того как можно совершенно спокойно обновлять версии PHP не создавая проблем в работе пользователей с рабочим ресурсом.
Предварительная подготовка
Для работы с разными версиями php на одном сервере нам необходимо произвести предварительную настройку системы.
Перед началом использования репозитория Remi (на базе которого мы и будем устанавливать разные версии PHP) необходимо подключить репозиторий Epel созданный группой специалистов операционной системы Fedora. Пакеты из Epel репозитория никогда не конфликтуют и не переустанавливают базовые пакеты RHEL.
Установка Epel для дистрибутивов на базе RHEL производится командой:
dnf install epel-release
dnf update
Установка и настройка Nginx
При написании статьи учитывается что настройка Nginx была произведена согласно статьи NGINX установка и настройка.
Посмотрим какие варианты присутствуют в базовой версии:
# dnf module list php
Последняя проверка окончания срока действия метаданных: 1:27:39 назад, Ср 10 ноя 2021 11:34:45.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Подсказка: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Видим что в базовой версии по умолчанию находится версия 7.2 её и будем устанавливать.
Установим php и наиболее популярные модули, которые могут пригодится в процессе эксплуатации веб сервера.
Проверим установленную версию выполнив команду в консоли сервера:
php -v
= вывод команды =
PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.24, Copyright (c) 1999-2018, by Zend Technologies
Для того чтобы связать nginx и php будем использовать мост php-fpm. Основной файл настройки находится по пути /etc/php-fpm.conf и там должен быть параметр include=/etc/php-fpm.d/*.conf говорящий о том где лежат настройки пулов.
Запускаем php-fpm и добавляем в автозагрузку:
systemctl enable --now php-fpm
Проверяем, запустился ли он.
systemctl status php-fpm
= вывод команды =
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-11-10 13:51:24 EST; 16s ago
Main PID: 7567 (php-fpm)
Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 6 (limit: 23681)
Memory: 17.3M
CGroup: /system.slice/php-fpm.service
├─7567 php-fpm: master process (/etc/php-fpm.conf)
├─7568 php-fpm: pool www
├─7569 php-fpm: pool www
├─7570 php-fpm: pool www
├─7571 php-fpm: pool www
└─7572 php-fpm: pool www
ноя 10 13:51:24 localhost.localdomain systemd[1]: Starting The PHP FastCGI Process Manager...
ноя 10 13:51:24 localhost.localdomain systemd[1]: Started The PHP FastCGI Process Manager.
Из вывода видно сервис успешно работает.
Настройки php находятся по стандартному пути /etc/php.ini а настройки пулов лежат в папке /etc/php-fpm.d/.
Использовать порт или сокет решать вам, но говорят что сокет использовать лучше. Запустим php-fpm через unix сокет. Для этого переименуем конфиг /etc/php-fpm.d/www.conf, создадим новый и приводим к следующему виду:
Вы можете для каждого сайта создать свой пул и указать там все необходимые параметры. Например, для каждого сайта я создаю свой пул для гибкости настройки и благодаря этому я настраиваю корректный доступ к файлам по sftp. Более подробно про настройку доступа по SFTP прочтите в статье SFTP настройка для веб хостинга.
В настройках nginx для сайта необходимо указать требуемый пул.
Например, прописать код fastcgi_pass unix:/run/php-fpm/www.sock; в секции location ~ \.php$
Настройка базовой версии закончена и приступаем к установке других версий php.
Версии PHP от Remi
Есть замечательный человек Remi Collet, который создал репозиторий пользующийся огромной популярностью у пользователей операционных систем на базе RHEL. Познакомится с новостями репозитория можно на блоге Remi Collet.
Посмотрим список всех доступных вариантов установки php:
dnf module list php
= вывод команды =
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 1.6 MB/s | 2.0 MB 00:01
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
Подсказка: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Из вывода выше видно что появилась возможность установить версии от 7.2 до 8.1 из реппозитрия Remi.
В выводе нет информации о возможности установить PHP версии 5.6, но сделать это можно по аналогии как мы будем устанавливать версии ниже. Достаточно указать код #dnf install php56 php56-php-fpm
Для чистоты эксперимента и наглядности установим две версии 7.4 и 8.1
В результате мы получим на сервере 3 разных версии php.
Установка версий PHP от Remi
Активируем репу php remi-7.4, для этого выполняем команды:
Обращаю особое внимание на указание именно php74 перед требуемыми пакетами. Только при таком названии пакетов установятся необходимые и не возникнет путаницы.
Сразу установим версию php 8.1 из репозитория Remi и выключим активную версию:
В случае если вы не хотите смотреть всю информацию можете использовать такой код файла info.php в котором выбрано отображение информации только о загруженных модулях:
<?php
// Показывать всю информацию, по умолчанию INFO_ALL
//phpinfo();
// Показывать информацию только о загруженных модулях.
phpinfo(INFO_MODULES);
?>
Конфигурации NGIN для сайтов
Создадим для для каждого сайта свои конфигурационные файлы:
Используя этот код можно использовать различные ресурсы с разными параметрами php использующими одну версию php.
Проверка работы
Для проверки нам необходимо или прописать для каждого тестируемого ресурса DNS или на компьютере с которого производим проверку внести необходимые правки. В нашем случае система с которой проводится проверка работает на базе Linux и там необходимо внести следующие правки:
vim /etc/hosts
= необходимые добавления =
192.168.0.206 php72.loc
192.168.0.206 php74.loc
192.168.0.206 php81.loc
Для проверки необходимо в строке браузера вписать путь http://ДОМЕН/info.php.
Вот так выглядит вывод для разных сайтов:
Обновление версий PHP
Обновление версий происходит обычным механизмом обновления и последующим перезапуском необходимых сервисов.
Для нашего случая команды будут иметь такую последовательность:
Используя разные версии php на одном ресурсе можно спокойно перевести работу ресурса на новую версию и в случае проблем в работе оперативно вернутся на старую.
При использовании не сервере одной версии при переходе на другую версию необходимо было выполнять следующие действия:
Остановка php-fpm,
Вывод и удаление всех имеющихся пакетов php,
Удаление старого и активирование нового репозитория требуемой версии php,
Установка новой версии,
Проверка настрое из старой версии,
Запуск php-fpm и проверка сервиса.
Если ресурс рабочий выполнять все действия приходится оперативно и очень аккуратно для минимизирования простоя в работе ресурса.
Заключение
Данный вариант работы с разными версиями меня вполне устраивает и не вызывает проблем. В статье я специально сделал установку версии как с базовых репозиториев так и с репозитория Remi. На практике использовать базовый репозиторий не удобно, так как не удобно просматривать какие именно пакеты установлены в базовой версии. Запрос # rpm -qa | grep php выведет все имеющиеся версии.
Рекомендую использовать версии PHP от Remi это удобно и вызывает меньше путаницы.
В любом случае какие версии использовать и с какими параметрами использовать необходимо смотреть в каждом конкретном случае. Нормальные разработчики ресурсов всегда указывают какие необходимо использовать версии php и с какими параметрами.
Рассмотрим установку Rocky Linux 8 и последующую настройку исходя из практики использования этой операционной системы. Данная система для меня является основной для использования на серверах. Стабильность работы гарантированна. Поддержка до 2029 года.
Введение
В данной статье собраны все основные моменты базовой настройки сервера Rocky Linux 8 которые я использую на практике. Rocky Linux это полностью бинарно совместимый дистрибутив с RHEL.
Собирается дистрибутив силами сообщества и Rocky Enterprise Software Foundation. Развитием системы занимается Gregory Kurtzer, являющийся автором Centos. Лично я отдаю предпочтение именно Rocky Linux, потому что организация вокруг него строится только для развития самой системы.
К сожалению дальнейшее стабильное использование CentOS стало не возможно. Версия CentOS Stream конечно имеет более новые версии, но при использовании я стал получать неожиданные сюрпризы которых на стабильной ветке раньше не было.
Установка Rocky Linux 8
Создания USB носителя для установки
Существует множество программ для записи iso образа на устройство. Например, у меня два варианта для создания носителя для установки:
Rufus — использую эту программа для создание загрузочных USB-дисков в системе Windows;
ROSA ImageWriter — использую эту программу для любой системы Linux.
Варианты установки
Рассмотрим два самых популярных варианта установки Rocky Linux 8.
Образы iso Rocky Linux 8
Образы можно скачать c официального сайта по ссылке Download Rocky Linux. Существует три варианта:
Rocky-8.4-x86_64-boot.iso — загрузочный образ 755M;
Rocky-8.4-x86_64-minimal.iso — минимальный образ 2G;
Rocky-8.4-x86_64-dvd1.iso — полный образ 9.9G.
Какой вариант использовать решать вам. Например, мне нравится устанавливать загрузочный образ и дальше настраивать руками, так и опыт приходит и понимаешь как что работает.
Минимальный образ не такой уж и маленький, но радует что есть загрузочный при установке с которого надо только руками внести требуемый репозиторий и выбрать нужные параметры установки.
Указывать надо путь к той папке, где лежит каталог repodata http://download.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/
В выборе программ выбираем базовое окружение «Минимальная установка» а в дополнительных параметрах «Гостевые агенты» и «Стандарт».
Шаблоны
Шаблоны используются как правило для установки на VDS и предоставляются компаниями предоставляющие такие услуги. Удобно, но тем не менее я пару раз попадал в дурацкие ситуации.
Вот моменты почему я советую использовать установку на VDS систем с iso образа:
Разбивка диска порой не учитывает конфигурацию тарифа или требований вашей системы — например, на одном хостинге при 2 G оперативной памяти был создал SWAP раздел в 512 М в результате пришлось переустанавливать систему дабы не терять место на и так небольшом диске;
Локализация как правило Английская — мне приятней работать на своем родном языке хотя и на английском если надо всё настрою;
Присутствие в шаблоне каких-то изменений отличающихся от стандартных минимальных параметров установки — порой не понимаешь откуда взялись какие то настройки которых раньше не видел. Кроме того, можно потратить кучу времени не понимая почему не работает то что всегда работало как часы. В итоге выясняется что в шаблоне установки нет пакета который всегда ставился в стандартном минимальном образе.
Все компании предоставляющие услуги VDS могут предоставить возможность установки системы с ISO образа системы. При установке надо правильно указать сетевые параметры исходя из предоставленных сетевых параметров настроек выбранного тарифа!
Разбивка диска для установки
Вариантов разбивки диска для Rocky Linux 8 может быть множество исходя из пожеланий и предпочтений. Например, мне нравиться придерживаться таких параметров:
Размер диска под систему Linux 50 G — этого мне хватает с запасом;
Создаю раздел boot размером 1 G — так я гарантирую что при заполнении диска система загрузится однозначно;
Создаю SWAP — согласно требованиям системы.
Можно выносить логи и кэш в отдельные разделы, но это лишняя трата времени. Лучше всегда выполнять мониторинг размера диска и в случае проблем оперативно принять необходимые меры. Прежде всего, так пропадёт головная боль о том какой размер указывать разделам ( вариант с перераспределением очень сюрпризная тема).
SWAP
Тема организации SWAP на сервере очень важная и поэтому я описал все основные моменты использования в статье SWAP для Linux
Настройка Rocky Linux 8
Пакетный менеджер DNF
Используется новый менеджер пакетов который поддерживает модульный формат пакетов.
По прежнему можно вносить команды yum вместо dnf и всё будет работать. Для yum сделан алиас для запуска dnf.
Для вывода всей информации о том какие команды можно использовать достаточно внести в консоли команду dnf и увидеть полный список возможностей.
dnf
= вывод части команды =
usage: dnf [options] COMMAND
Список основных команд:
alias List or create command aliases
autoremove удалить все ненужные пакеты, первоначально установленные по зависимостям
check поиск проблем в packagedb
check-update проверить доступные обновления для пакетов
clean удалить кэшированные данные
deplist Показывать список зависимостей пакета и какие пакеты их предоставляют
distro-sync обновить установленные пакеты до последних имеющихся версий
downgrade Откат к предыдущей версии пакета
group показать или использовать информацию о группах
help отобразить подсказку по использованию
history отобразить (или использовать) историю транзакций
info отобразить информацию о пакете или группе пакетов
install установка пакета(ов) в систему
list вывести список пакетов или групп пакетов
makecache создание кэша метаданных
mark отметить или снять отметку пользовательской установки с установленных пакетов.
module Взаимодействие с репозиторием Modules.
provides найти пакет по заданному значению
reinstall переустановка пакета
remove удалить пакет или пакеты из системы
repolist отобразить настроенные репозитории ПО
repoquery поиск пакетов по ключевому слову
repository-packages выполнить команды над всеми пакетами заданного репозитория
search поиск информации о пакете по заданной строке
shell запустить интерактивную оболочку DNF
swap запустить интерактивный вариант dnf для удаления и установки одной спецификации
updateinfo показать рекомендации к пакетам
upgrade обновить пакет или пакеты в системе
upgrade-minimal обновление, но только «новейших» пакетов, которые исправляют проблему в вашей системе
Информация об установленной системе
Узнать какая система установлена на сервере можно следующими командами:
uname -a
= вывод команды =
Linux localhost.localdomain 4.18.0-305.19.1.el8_4.x86_64 #1 SMP Wed Sep 15 19:12:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
= вывод команды =
Rocky Linux release 8.4 (Green Obsidian)
Этой информации достаточно для понимания с какой системой предстоит работать.
Отключение SELinux
Отключаем SELinux. Его использование и настройка в системе Rocky Linux 8 отдельный разговор.
vi /etc/sysconfig/selinux
= меняем значение =
SELINUX=disabled
Перезагрузим для применения изменений. После перезагрузки проверяем статус:
sestatus
= вывод команды =
SELinux status: disabled
Надо иметь четкое понимание что SELinux система требующая хорошего понимания в том как она работает и как настраивать. Надо или отключить сразу или потратить время на изучение как она работает.
Добавление репозиториев
Для инсталляции различного софта необходимо подключить репозитории в Rocky Linux 8. Со временем пришло понимание того что относится к добавляемым репозиториям надо очень внимательно, чтобы в последствии не возникало проблем при обслуживании.
Всегда подключаю самый популярный репозиторий Epel (Extra Packages for Enterprise Linux). Epel хранилище пакетов, созданное группой специалистов операционной системы Fedora. Пакеты из Epel репозитория никогда не конфликтуют и не переустанавливают базовые пакеты RHEL.
dnf -y install epel-release
Старюсь подключать репозитории которые поддерживают сами разработчики программ. Например, такие как Nginx, Zabbix, MariaDB.
Обновление Rocky Linux 8
Обновление системы очень важный момент и следует относится к нему очень внимательно. Всегда проще найти проблему когда проходит немного обновлений.
Прежде всего, всегда перед обновлениями делайте резервные копии!
Перед выполнением настройки лучше выполнить полное обновление системы:
dnf update
Автоматическое обновление системы
Для безопасности сервера его необходимо своевременно обновлять. Вариантов обновления Rocky Linux 8 несколько и это тема отдельного длинного разговора.
Например, получать сообщения на почту об появившихся обновлениях и уже на основании этого принимать решение о необходимости обновления — для меня лучший вариант.
При моих пожеланиях мне подойдёт утилита dnf-automatic. Ставится она из базового репозитория командой:
dnf install dnf-automatic
Управлением запуском по расписанию занимается systemd со своим встроенным планировщиком. Посмотреть таймеры автоматического запуска можно командой:
systemctl list-timers *dnf-*
= вывод команды =
NEXT LEFT LAST PASSED UNIT ACTIVATES
Thu 2021-10-24 14:36:56 MSK 5min left n/a n/a dnf-makecache.timer dnf-makecache.service
Посмотрим настройки этого таймера выполнив команду:
cat /etc/systemd/system/multi-user.target.wants/dnf-makecache.timer
= вывод команды =
[Unit]
Description=dnf makecache --timer
ConditionKernelCommandLine=!rd.live.image
# See comment in dnf-makecache.service
ConditionPathExists=!/run/ostree-booted
Wants=network-online.target
[Timer]
OnBootSec=10min
OnUnitInactiveSec=1h
Unit=dnf-makecache.service
[Install]
WantedBy=multi-user.target
Если заданий нет, то можно добавить таймер выполнив команду:
systemctl enable --now dnf-automatic.timer
Настройка этого таймера будет по пути — /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.
Настройка системы автоматического обновления находится по пути /etc/dnf/automatic.conf. По-умолчанию он только скачивает обновления, и отправляет сообщение на почту root.
Самый важный параметр это update_type — которой будет говорить системе какие выполнять обновления. Доступно несколько вариантов:
default — полное обновление;
security — только обновление безопасности.
Мой вариант настройки выглядит следующим образом:
vim /etc/dnf/automatic.conf
= часть вывода с пояснениями
[commands]
# What kind of upgrade to perform:
# default = all available upgrades
# security = only the security upgrades
upgrade_type = security
random_sleep = 0
# To just receive updates use dnf-automatic-notifyonly.timer
# Whether updates should be downloaded when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
download_updates = yes
# Whether updates should be applied when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
apply_updates = no
Согласно этих параметров будут скачаны все обновления безопасности и будет отправлено сообщение пользователю root.
В настройках можно настроить отправку почты на другой почтовый ящик, но мне больше нравится вариант когда все сообщения пользователя root пересылаются на мой почтовый ящик.
Популярные и полезные утилиты
Установим в начале основные популярные утилиты которые обычно требуются в работе.
dnf -y install net-tools bind-utils htop atop iftop lsof wget bzip2 traceroute gdisk yum-utils vim mc tmux
net-tools bind-utils — сетевые утилиты после установки которых будут работать команды # ifconfig и # nslookup,
htop atop — два интересных диспетчера задач,
iftop — показывает в режиме реального времени загрузку сетевого интерфейса,
lsof — вывода информации о том, какие файлы используются теми или иными процессами,
wget — неинтерактивная консольная программа для загрузки файлов по сети,
bzip2 — утилита командной строки с открытым исходным кодом для сжатия данных,
traceroute — утилита предназначенная для определения маршрутов следования данных в сетях TCP/IP,
gdisk — умеет работать с GPT-дисками разработано по подобию fdisk,
yum-utils — — это набор утилит для управления репозиторием, установки и отладки пакетов, поиска пакетов и много другого.
Про vim, mc и tmux расскажу ниже.
Настройка времени
Определим текущее время на сервере:
date
= вывод команды =
Ср ноя 14 12:17:34 CET 2021
Как видим временная зона не настроена.
Выполним необходимую настройку временной зоны Europe — Moscow:
= Сделать резервную копию текущей timezone =
mv /etc/localtime /etc/localtime.bak
= В папке /usr/share/zoneinfo/ ищем что надо и делаем ссылку =
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
В итоге получим:
date
= вывод команды =
Сб окт 13 02:59:46 MSK 2021
Можно использовать одну команду зная точно что эта временная зона присутствует в настройках:
timedatectl set-timezone Europe/Moscow
Синхронизация времени
В Rocky Linux 8 по-умолчанию используется утилита для синхронизации времени chrony. Если у вас её нет, то устанавливайте:
dnf install chrony
Запускаем chrony и добавляем в автозагрузку:
systemctl enable --now chronyd
Проверяем правильность работы:
systemctl status chronyd
= вывод команды =
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Ср 2021-10-03 21:55:18 MSK; 27min ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Main PID: 631 (chronyd)
CGroup: /system.slice/chronyd.service
└─631 /usr/sbin/chronyd
окт 03 21:55:17 lemp.sevo44.loc systemd[1]: Starting NTP client/server...
окт 03 21:55:17 lemp.sevo44.loc chronyd[631]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +ASYNCDNS +IPV6 +DEBUG)
окт 03 21:55:17 lemp.sevo44.loc chronyd[631]: Frequency 1.141 +/- 1.440 ppm read from /var/lib/chrony/drift
окт 03 21:55:18 lemp.sevo44.loc systemd[1]: Started NTP client/server.
окт 03 21:55:35 lemp.sevo44.loc chronyd[631]: Selected source 89.109.251.23
окт 03 21:55:35 lemp.sevo44.loc chronyd[631]: System clock wrong by 1.035954 seconds, adjustment started
окт 03 21:55:36 lemp.sevo44.loc chronyd[631]: System clock was stepped by 1.035954 seconds
Сетевые параметры
При установке Rocky Linux 8 уделяю особое внимание настройки сетевых параметров. Кроме того, на странице настройки сетевых параметров указывается название хоста.
Всегда отключаю ipv6 так как в большинстве случаев он не используется а вот проблемы при работе с системой может создать.
Для управления сетевыми настройками в Rocky Linux 8 после установки можно воспользоваться графической утилитой nmtui:
nmtui
= вывод команды =
-bash: nmtui: команда не найдена
= команда установки необходимого пакета для работы nmtui =
yum install NetworkManager-tui
В Rocky Linux 8, сеть управляется только через Network Manager. Сетевые настройки лучше выполнять с помощью утилиты nmtui.
Руками вся настройка сводится к редактированию файлов в паке /etc/sysconfig/network-scripts/. Для определения интерфейсов необходимо предварительно выполнить команду ip addr которая покажет название всех имеющихся интерфейсов.
Например, мой файл настройки сетевого интерфейса ens18:
Для применения изменений необходимо перезагрузить Network Manager выполнив команду:
= или командой =
systemctl restart NetworkManager
= предварительно поняв название необходимого сервиса =
systemctl list-units | grep -i network
Смена пароля root
Смена пароля производится командой:
passwd
= вывод команды =
Изменяется пароль пользователя root.
Новый пароль :
Повторите ввод нового пароля :
passwd: все данные аутентификации успешно обновлены.
Брандмауэр FirewallD
По умолчанию в системе Rocky Linux 8 используется брандмауэр FirewallD.
Ниже я выполню необходимые действия не описывая всё подробно.
Вывод информации об активных зонах:
firewall-cmd --get-active-zones
= вывод команды =
public
interfaces: ens18
Выведем информацию о конкретной зоне:
firewall-cmd --list-all --zone=public
= вывод команды =
public (active)
target: default
icmp-block-inversion: no
interfaces: ens18
sources:
services: cockpit ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Для безопасности порт ssh лучше поменять на нестандартный.
Добавим разрешение подключаться по этому порту:
firewall-cmd --permanent --zone=public --add-port=35555/tcp
= вывод команды =
success
Кроме того, сразу удалим ненужный сервис:
firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
= вывод команды =
success
Применим изменения и посмотрим результат сделанных действий:
firewall-cmd --reload
= вывод команды =
success
firewall-cmd --list-all --zone=public
= вывод команды =
public (active)
target: default
icmp-block-inversion: no
interfaces: ens18
sources:
services: cockpit ssh
ports: 35555/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Только после настройки ssh для работы по новому порту удаляйте сервис ssh из FirewallD! Иначе в случае ошибки настройки можете потерять доступ к серверу.
Смена порта SSH
Укажем порт в настройках ssh открыв конфигурационный файл командой:
vi /etc/ssh/sshd_config
= необходимые изменения =
Раскоментируем строку Port 22 и заменим на наш 35555
Перезапускаем сервис ssh командой:
systemctl restart sshd
Проверяем какой порт слушает sshd (для работы нужен установленный пакет net-tools):
Подключение производится с указанием необходимого порта командой:
ssh -p 35555 root@193.124.180.195
Авторизация SSH по ключу
Вводить каждый раз пароль не удобно да и не помешает добавить безопасности.
После настройки можно отключить в параметрах ssh авторизацию по паролю, но иногда подключение по паролю просто необходимо. Обычно я создаю 16 злачный пароль и меняю его если давал временный доступ специалистам любого уровня и моего доверия. Безопасность лишней не бывает!
Установим самый популярный файловых менеджеров с текстовым интерфейсом командой если не установили ранее:
dnf -y install mc
Включаем подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax. Этот универсальный синтаксис подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса. Перезаписываем файл unknown.syntax:
cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax
= вывод команды =
cp: переписать «/usr/share/mc/syntax/unknown.syntax»? y
В случае отказа от использования встроенного редактора MC необходимо в настройках «Настройки — Конфигурация» снять галки у параметров «Встроенный редактор» и «Встроенный просмотр»
Установка редактора Vim
По умолчанию в системе работает редактор vim и это вполне оправдано.
Обоснование использования редактора VIM и как с ним работать можно в статье Vim текстовый редактор
В случае отсутствия редактора его можно установить без вопросов командой:
dnf -y install vim
Отображение приглашения в консоли bash
При появлении большого количества серверов на обслуживании я сразу столкнулся с плохой информативностью о том с каким я сервером работаю.
Стандартный вариант отображения приветствия после установки Rocky Linux 8:
[root@vds-micro ~]#
В представленном виде при работе одновременно с разными серверами я путался и порой выполнял команды не там где надо. Изменение цвета приглашения, вывода полного имени машины и пути где мы находимся позволило мне избежать таких ошибок.
Выведем имеющиеся параметры:
echo $PS1
= вывод команды =
[\u@\h \W]\$
Изменим для текущей сессии:
export PS1='\[\033[01;31m\]\u@\H\[\033[01;34m\] \w \$\[\033[00m\] '
= в результате =
root@vds-micro.sevo44.ru ~ #
Для постоянного применения настроек необходимо в папке пользователя в файл .bashrc добавить необходимый код:
vim .bashrc
= необходимые дополнения =
# bash
PS1='\[\033[01;31m\]\u@\H\[\033[01;34m\] \w \$\[\033[00m\] '
Для применения подобных настроек для всех пользователей с обычными правами сделаем приглашение зеленым. Добавим необходимые параметры в имеющийся файл или создадим новый и добавим туда необходимые параметры:
Список последних выполненных команд хранится в домашней директории пользователя в файле .bash_history (в начале точка). Его можно открыть любым редактором и посмотреть.
По умолчанию вывод команды history в консоли нам покажет:
history
= вывод команды =
1 yum update
2 reboot
3 htop
4 df -h
Как видим вывод не информативный. Кроме того, покажет только последние 1000 команд.
Быстро найти конкретную команду, можно с помощью фильтрации только нужных строк, например вот так:
history | grep yum
Изменим эту ситуацию добавив в файл .bashrc находящийся в папке пользователя необходимые параметры:
vim .bashrc
= необходимые дополнения =
# history
export HISTSIZE=50000
export HISTTIMEFORMAT="%h %d %H:%M:%S "
PROMPT_COMMAND='history -a'
export HISTIGNORE="ls:ll:history:w"
Расшифруем параметры:
Первый параметр увеличивает размер файла до 50000 строк;
Второй параметр указывает, что необходимо сохранять дату и время выполнения команды;
Третья строка вынуждает сразу же после выполнения команды сохранять ее в историю;
В последней строке мы создаем список исключений для тех команд, запись которых в историю не требуется.
Для применения изменений необходимо выполнить команду:
Можно применить эту настройку для всех пользователей указав параметр в файле /etc/profile.d/bash_completion.sh.
В таком варианте получаем гораздо большую информативность.
Установка Tmux
Установим пожалуй один из самых необходимых и удобных программ для удаленной работы с сервером. Tmux терминальный оконный менеджер при использовании дает возможность при обрыве связи с сервером по ssh не терять информацию о выполняемых действиях.
Cockpit: Веб-интерфейс управления сервером Rocky Linux 8
Возможность видеть наглядно все основные параметры системы и иметь возможность ими управлять пожалуй самая приятна новость которая меня порадовала в выпуске Rocky Linux 8.
При авторизации по ssh вы увидите следующее сообщение:
Activate the web console with: systemctl enable --now cockpit.socket
Достаточно выполнить команду в консоли systemctl enable —now cockpit.socket и при следующей авторизации вы увидите следующее сообщение:
Web console: https://localhost:9090/ or https://192.168.0.23:9090/
Порт 9090 должен быть открыт. Работающий по умолчанию сервис cockpit в FirewallD открывает этот порт.
При вводе в браузере https://192.168.0.23:9090 увидите приглашение ввести данные авторизации.
После входа вы увидите главную страницу с выводом графиков нагрузки основных параметров сервера.
Далеко не все конечно можно видеть и настраивать в этой панели но определенное удобство есть явно. Пользоваться панелью просто, понятно и не вызывает никаких сюрпризов, так что описывать по большому счету нечего. Попробуйте и вы сами всё поймете.
Единственное что я делаю это то что не держу её включенной. Убираю из автозагрузки в самой панели управления или командой:
systemctl disable cockpit.socket
В случае необходимости мне не сложно включить при необходимости и отключить после использования следующими командами:
Установим и настроим децентрализованную платформу для организации видеохостинга и видеовещания под названием PeerTube на системe Rocky Linux. Лучший вариант для организации хранения и использования своих видеофайлов. Сети распространения контента на базе P2P-коммуникаций.
Предисловие
В современном мире сделать видеозапись не составляет никакого труда. Все сложности возникают когда надо поделится видео и выбрать место где хранить видеофайлы. Вариант с выгрузкой видео на «бесплатные» ресурсы я исключил сразу. Мне необходима 100% гарантия сохранности данных и удобное использование ресурса без сюрпризов.
Не знаю как вы, но я не могу больше смотреть этот рекламный бред который размещают в видеороликах.
Мои требования для организации базы видеофайлов были следующие:
Общий сервер куда пользователи могут загружать и просматривать видеофайлы,
Система администрирования как самой системы так и прав пользователей,
Удобный поиск нужных видео,
Обработка видеофайлов на самом сервере,
Загрузка видео по прямой ссылке на видео,
Добавление видео используя торрент-файл.
Все эти требования с легкостью осуществляет PeerTube.
Мне не надо теперь сидеть и часами обрабатывать видео для получения нужного качества и размера видеофайла. Например, при загрузке фидеофайла снятого на мобильном телефоне и имеющего общий размер в районе 8 Гиб я получаю на выходе видеофайл размером в районе 1,5 Гиб без потери качества видео.
Система активно развивается и с каждым выпуском возможности только расширяются.
Становитесь пользователями PeerTube и вы никогда об этом не пожалеете.
Системные требования
Почти сразу после публикации статьи сразу в комментариях появился вопрос о системных требованиях данного сервиса.
Почему я сразу не написал про параметры системы не могу сказать, но мысль проскакивала. Коментарии важны так как получаешь обратную связь и это вызывает желание дополнять или редактировать статью в будущем.
Для работы системы в режиме просмотра много ресурсов не надо, но вот когда происходит загрузка видео и идет последующее транскодирование в другие разрешения время обработки сильно зависит от ресурсов железа.
Исходные данные тестирования:
Система работает в виртуальной машине под управлением Proxmox c процессором Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, DDR3, обычные HDD;
Во время всего тестирования пользователи активно пользовались системой в режиме просмотра ( 3-5 );
Для тестирования был выбран видеофайл размером 7.8 Гиб с разрешением 1920х816.
Никаких проблем с работой в системе пользователи не заметили на протяжении всего периода тестов.
Сводная таблица времени транскодирования:
Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, DDR3
Время транскодирования 816p
Время транскодирования 480p
2 ядра и 4 Гиб памяти
2 часа 45 минут
1 час
8 ядер и 8 Гиб памяти
1 час 10 минут
30 минут
Вот такие параметры были в системе мониторинга Zabbix:
Самое приятное видеть как уменьшился размер видеофайла без потери качества. Вместо 7.8 Гиб стал 1.7 Гиб!
Раньше лежал у меня фильм и занимал места 7.8 Гиб и не важно в каком разрешении и на чем я его смотрел он качался всегда целиком. Теперь у меня два файл которые в сумме дают примерно 2.5 Гиб что почти в три раза меньше чем было. Смотрю на большом экране качается 1.7 Гиб, смотрю на мобильном телефоне качает 950 Миб. Можно транскадировать ещё в другие форматы и это все равно будет меньше чем был оригинал. Чудеса да и только 🙂
Предварительная подготовка
Написание статьи базировалось на официальной документации PeerTube в которой всё хорошо изложено и описано.
Установка Rocky Linux 8
Политика поддержки CentOS 8 поменялась и пока не могу однозначно сказать хорошо это или плохо, но лично у меня с ней стали возникать некоторые сложности. Хорошо что основатель CentOS взялся за разработку Rocky Linux которая будет развиваться в лучших традициях CentOS до момента перехода на Stream.
Не спешим выходить из под пользователя postgres. Создадим пароль для главного администратора базы данных иначе в последствии при смене прав доступа к базе система будет просить внести пароль которого у нас нет.
\password
Выходим на пользователя root
postgres=# \q
[postgres@video ~]$ exit
выход
root@video.sevo44.loc ~ #
Проверяем подключение к базе данных из под пользователя root
psql -U peertube -d peertube_prod
=== вывод команды ===
psql: ВАЖНО: пользователь "peertube" не прошёл проверку подлинности (Peer)
Подключение не прошло. Необходимо настроит права доступа к базам данных.
Выполняем настройку доступа к SQL-серверу, разрешив доступ только с localhost по паролю
vim/var/lib/pgsql/data/pg_hba.conf
=== необходимые изменения ===
# TYPE DATABASE USER ADDRESS METHOD# "local" is for Unix domain socket connections onlylocal all all password# IPv4 local connections:host all all 127.0.0.1/32 password# Настройка необходимая для обновления PeerTube используя скрипт обновленияhost all all ::1/128 password# IPv6 local connections:#host all all ::1/128 ident# Allow replication connections from localhost, by a user with the# replication privilege.#local replication all peer#host replication all 127.0.0.1/32 ident#host replication all ::1/128 ident
Перегружаем сервис и проверяем подключение к базе данных
systemctl restart postgresql
psql -U peertube -d peertube_prod
=== вывод команды ===
Пароль пользователя peertube: ПАРОЛЬ
psql (10.14)
Введите "help", чтобы получить справку.
peertube_prod=> \q ВЫХОДИМ
root@video.sevo44.loc ~ #
Соединение по паролю прошло успешно.
Настройка FirewallD
Откроем необходимые порты для доступа к серверу, удалим ненужные и применим правила
Вот перевод ответа: «Если вы имеете в виду все предупреждения Yarn, вы можете их игнорировать. Насколько я понимаю, это проблема Yarn, и она будет исправлена в следующей версии.»
Конфигурация PeerTube
Создаем файл конфигурации с шаблона
cd /var/www/peertube && sudo -u peertube cp peertube-latest/config/production.yaml.example config/production.yaml
Произведем настройку указав свои параметры
vim/var/www/peertube/config/production.yaml
=== необходимые блоки для настройки ===
# Correspond to your reverse proxy server_name/listen configuration
webserver:
https: truehostname: 'video.sevo44.ru'# sevo44
port: 443# Your database name will be database.name OR "peertube"+database.suffix
database:
hostname: 'localhost'
port: 5432
ssl: false
suffix: '_prod'
username: 'peertube'password: 'password'# sevo44
pool:
max: 5# SMTP server to send emails
smtp:
# smtp or sendmail
transport: smtp
# Path to sendmail command. Required if you use sendmail transport
sendmail: null
hostname: smtp.yandex.ru # sevo44
port: 465# If you use StartTLS: 587username: 'video@sevo44.ru'# sevo44
password: 'password'# sevo44
tls: true# If you use StartTLS: false
disable_starttls: false
ca_file: null # Used for self signed certificatesfrom_address: 'video@sevo44.ru'# sevo44
В настройках мы указали доменное имя на котором будет работать ресурс, параметры для работы почты через сторонний smtp.
Остальные параметры можно не править, так как при работе будет создан файл /var/www/peertube/config/local-production.json в котором будут указаны все параметры которые делаются в панели администратора.
Настройка Nginx
Как правило все инструкции пишутся с учетом того что у вас на статическом внешнем ip адресе работает сервер только с этим ресурсом. На практике такое случается крайне редко и на одном IP может работать разное количество ресурсов работающих как веб север.
Приведу пример как производится проксирования сигнала до PeerTube средствами Nginx.
Ни в коем случае не пытайтесь настроить работу PeerTube на http так как будут глюки в работе как в отображении информации так и задержка при просмотре видео. Сервис заточен под работу на https и адаптировать его под работу http нет смысла. Проще добавить сертификат ssl. О том как это сделать узнаете ниже.
Подключаем официальный стабильный репозиторий разработчиков Nginx и устанавливаем
vim /etc/yum.repos.d/nginx.repo
=== необходимый код ===
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
dnf install nginx
Сделаем копию и изменим главный файл настройки Nginx
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf_orig
vim/etc/nginx/nginx.conf
=== необходимый код ===
# Пользователь и группа, от имени которых будет запущен процесс
user peertube;
# Число воркеров в новых версиях рекомендовано устанавливать параметр auto
worker_processes auto;
# Уровни лога debug, info, notice, warn, error, crit, alert или emerg# перечислены в порядке возрастания важности. При установке определённого уровня# в лог попадают все сообщения указанного уровня и уровней большей важности. # Например, при стандартном уровне error в лог попадают сообщения уровней error, crit, alert и emerg. # Если параметр не задан, используется error.
error_log /var/log/nginx/error.log warn;
# Файл в котором будет храниться идентификатор основного процесса
pid /var/run/nginx.pid;
events {# Максимальное количество соединений одного воркера
worker_connections 1024;
# Метод выбора соединений (для FreeBSD будет kqueue)
use epoll;
# Принимать максимально возможное количество соединений
multi_accept on;
}
http {# Отключить вывод версии nginx в ответе
server_tokens off;
# Указываем файл с mime-типами и указываем тип данных по-умолчанию
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Формат для лога доступа и путь к файлу
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
# Метод отправки данных sendfile эффективнее чем read+write
sendfile on;
# Ограничивает объём данных, который может передан за один вызов sendfile(). # Нужно для исключения ситуации когда одно соединение может целиком захватить воркер
sendfile_max_chunk 128k;
# Отправлять заголовки и начало файла в одном пакете
tcp_nopush on;
tcp_nodelay on;
# Параметр задаёт тайм аут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера
keepalive_timeout 65;
# Сбрасывать соединение если клиент перестал читать ответ
reset_timedout_connection on;
# Разрывать соединение по истечению тайм аута при получении заголовка и тела запроса
client_header_timeout 3;
client_body_timeout 5;
# Разрывать соединение, если клиент не отвечает в течение 3 секунд
send_timeout 3;
# Задание буфера для заголовка и тела запроса
client_header_buffer_size 2k;
client_body_buffer_size 256k;
# Ограничение на размер тела запроса
client_max_body_size 8G;
# Подключение дополнительных конфигов
include /etc/nginx/conf.d/*.conf;
}
Мы специально указали пользователя peertube так как сервер создан для работы одного ресурса.
Добавим в автозагрузку и запустим сервис Nginx
systemctl enable --now nginx
Производители рекомендуют выполнить оптимизацию и мы не будем игнорировать этим советом
Посмотреть с какими настройками создалась служба можно выполнив команду
cat /etc/systemd/system/peertube.service
=== Вывод команды ===
[Unit]
Description=PeerTube daemon
After=network.target postgresql.service redis-server.service
[Service]
Type=simple
Environment=NODE_ENV=production
Environment=NODE_CONFIG_DIR=/var/www/peertube/config
User=peertube
Group=peertube
ExecStart=/usr/bin/npm start
WorkingDirectory=/var/www/peertube/peertube-latest
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=peertube
Restart=always
; Some security directives.
; Mount /usr, /boot, and /etc as read-only for processes invoked by this service.
ProtectSystem=full
; Sets up a new /dev mount for the process and only adds API pseudo devices
; like /dev/null, /dev/zero or /dev/random but not physical devices. Disabled
; by default because it may not work on devices like the Raspberry Pi.
PrivateDevices=false
; Ensures that the service process and all its children can never gain new
; privileges through execve().
NoNewPrivileges=true
; This makes /home, /root, and /run/user inaccessible and empty for processes invoked
; by this unit. Make sure that you do not depend on data inside these folders.
ProtectHome=true
; Drops the sys admin capability from the daemon.
CapabilityBoundingSet=~CAP_SYS_ADMIN
[Install]
WantedBy=multi-user.target
В выводе кода вы видите пароль от администратора сервиса! User password: xelurocikokuyave и больше его вывод никогда не покажет. Запишите его или потом сможете создать другой.
В выводе всё хорошо расписано и в случае ошибок сможете увидеть подсказки что не так настроено.
Настройка PeerTube
Настроек множество и описывать все не имеет смысла. Покажу те моменты на которые имеет смысл обратить особое внимание.
Настоятельно рекомендую для безопасности оставить главным администратором только пользователя root. Все главные параметры нет смысла менять часто а для обычного администрирования роли «Модератор» вполне достаточно.
Выбираем варианты как можно загружать видеофайлы. Импорт с URL-адреса или торрент-файла очень удобен и отключать такую возможность не надо.
К настройке транскодирования отнеситесь очень внимательно, так как от этого будет зависеть как скорость работы ресурса так и объем занятого пространства видеофайлами.
В моем случае выбраны разрешения для транскодирования 480p и 1080p мне этого хватает. В случае если происходит загрузка видеофайла разрешением менее 480р транскодирования производится не будет и в системе будет только этот видеофайла. При загрузке видеофайла разрешением больше 1080р будет произведено транскодирование в форматы 480p и 1080р.
Чем больше форматов тем системе легче работать, но платить за это приходится размером дисков для видеофалов.
Главный параметр PeerTube
Спустя какое то время я стал замечать что объем хранилища видео стал сильно увеличиваться когда я стал более активно добавлять видео. Как влияет на объём выбор вариантов разрешения все понятно а вот с выбором формата я сразу не разобрался и включал оба параметра.
Теперь мои параметры выглядят так:
При выводе информации понятно почему этот вариант гораздо предпочтительней.
Расскажу что происходит на сервере когда включено оба параметра:
После обработки видеофайл попадает в папку /var/www/peertube/storage/videos и имеет столько вариантов сколько вариантов разрешения вы выбрали;
Потом видеофайлы попадают в папку /var/www/peertube/storage/streaming-playlists/hls и для каждого видео создаётся своя папка в которой помимо самих видеофайлов присутствуют технические файлы для работы с этой технологией.
Вот откуда идет двойное увеличение хранилища. В случае когда параметр «WebTorrent» выключен файлы всё равно во время транскодирования попадают в папку videos, но лишь временно на момент обработки файла. После окончания обработки файлы в папке videos удаляются.
Если после отключения параметра «WebTorrent» зайти и просто удалить файлы в папке videos то вы не сможете скачать видео которое было загружено с включением обоих параметров.
Обзор PeerTube
Особо расписывать нет смысла как работать в системе по причине понятного и дружественного интерфейса. Добавляйте пользователей создавайте каналы, закачивайте видео, подписывайтесь и получайте удовольствие от того что все ваше видео теперь находится в одном месте.
На фотках ниже вы увидите как система выглядит у меня.
Обновление PeerTube
В случае проблем в работе с некоторыми функциями PeerTube обновляйте если вышла новая версия.
Например, в какой то момент у меня перестала работать загрузка видео по адресу. После обновления все заработало.
Для обновления достаточно запустить скрипт который всё сделает автоматически.
Останавливаем сервис, переходим в нужное место и запускаем скрипт обновления
systemctl stop peertube
cd /var/www/peertube/peertube-latest/scripts
sudo -H -u peertube ./upgrade.sh
В конце выдаст информацию об изменениях сделанных в файле конфигурации по отношению к базовому.
В папке /var/www/peertube/config находится 3 файла:
default.yaml — базовая конфигурация. Обновляется после каждого обновления и имеет все настройки для новой версии;
local-production.json — настройки которые делаются в панели администратора и не меняются при обновлении версии;
production.yaml — настройки действующей версии.
Создадим копию файла из настроек что действуют на данный момент:
Обновим из базовой новой конфигурации файл с настройками:
cp /var/www/peertube/config/default.yaml /var/www/peertube/config/production.yaml
= при вопросе пишем yes =
Обычно надо внести необходимые правки в следующих блоках:
# Correspond to your reverse proxy server_name/listen configuration (i.e., your public PeerTube instance URL)
webserver:
https: truehostname: 'video.sevo44.ru'port: 443
# Your database name will be database.name OR 'peertube'+database.suffix
database:hostname: 'localhost'port: 5432ssl: falsesuffix: '_prod'username: 'peertube'password: 'Sdthdfhdfhhf'
pool:
max: 5
# SMTP server to send emails
smtp:
# smtp or sendmail
transport: smtp
# Path to sendmail command. Required if you use sendmail transport
sendmail: null
hostname: smtp.yandex.ruport: 465 # If you use StartTLS: 587username: 'video@sevo44.ru'password: 'tzZqAeu656ddsdfg2s6'
tls: true # If you use StartTLS: false
disable_starttls: false
ca_file: null # Used for self signed certificates
from_address: 'video@sevo44.ru'
# From the project root directory
storage:
tmp: '/var/www/peertube/storage/tmp/' # Use to download data (imports etc), store uploaded files before and during processing...
bin: '/var/www/peertube/storage/bin/'
avatars: '/var/www/peertube/storage/avatars/'
videos: '/var/www/peertube/storage/videos/'
streaming_playlists: '/var/www/peertube/storage/streaming-playlists/'
redundancy: '/var/www/peertube/storage/redundancy/'
logs: '/var/www/peertube/storage/logs/'
previews: '/var/www/peertube/storage/previews/'
thumbnails: '/var/www/peertube/storage/thumbnails/'
torrents: '/var/www/peertube/storage/torrents/'
captions: '/var/www/peertube/storage/captions/'
cache: '/var/www/peertube/storage/cache/'
plugins: '/var/www/peertube/storage/plugins/'
# Overridable client files in client/dist/assets/images:
# - logo.svg
# - favicon.png
# - default-playlist.jpg
# - default-avatar-account.png
# - default-avatar-video-channel.png
# - and icons/*.png (PWA)
# Could contain for example assets/images/favicon.png
# If the file exists, peertube will serve it
# If not, peertube will fallback to the default file
client_overrides: '/var/www/peertube/storage/client-overrides/'
Запускаем и смотрим информацию о сервисе
systemctl start peertube
journalctl -feu peertube
Без проблем прошли обновления 2.4.0 -> 3.0.0 -> 3.1.0 -> 3.2.1 -> 3.3.0 -> 3.4.0 -> 4.0.0 -> 4.1.0 -> 4.1.1
Переезд PeerTube
На новом сервере устанавливаем последнюю версию и переносим необходимые данные.
Обновлять версию на сервере с которого переезжаем нет необходимости. После переезда запускается скрипт обновления и всё обновится до необходимой версии.
При переносе на другой сервер нам необходимо перенести следующие данные:
Каталог /var/www/peertube/storage, в котором содержатся видео, миниатюры, предварительные просмотры и так далее,
Переходим в нужное место и запускаем скрипт обновления
cd /var/www/peertube/peertube-latest/scripts
sudo -H -u peertube ./upgrade.sh
После выполнения команды запускаем сервис и смотрим что происходит
systemctl start peertube
journalctl -feu peertube
При переносе для того чтобы не потерять данные которые появились во время переноса так же необходимо остановить сервис PeerTube.
Именинно поэтому я рекомендую вначале сделать тестовый переезд. Если все прошло хорошо останавливаем сервис с которого переезжаем, синхронизируем папку с данными, переносим заново базу данных и запускаем сервис после выполнения скрипта обновления.
Смена доменного имени PeerTube
При желании можно сменить доменное имя. После того как внесете правки в файл настройки PeerTube и поправите настройки Nginx необходимо выполнить следующие команды
cd /var/www/peertube/peertube-latest && su peertube[peertube@video peertube-latest]$ NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run update-host
=== вывод команды ===
> peertube@2.4.0 update-host /var/www/peertube/versions/peertube-v2.4.0
> node ./dist/scripts/update-host.js
Updating actors.
Updating actor http://video.sevo44.ru/video-channels/root_channel
Updating actor http://video.sevo44.ru/video-channels/sevo44_all
Updating actor http://video.sevo44.ru/accounts/root
Updating actor http://video.sevo44.ru/accounts/sevo44
Updating actor http://video.sevo44.ru/accounts/peertube
Updating video shares.
Updating video share http://video.sevo44.ru/videos/watch/9c178338-fa10-47b0-b2d1-f41af08179cc/announces/5
Updating video share http://video.sevo44.ru/videos/watch/9c178338-fa10-47b0-b2d1-f41af08179cc/announces/1
Updating video share http://video.sevo44.ru/videos/watch/c8dfa17f-ad7a-478a-83d0-6c53767f778a/announces/5
Updating video share http://video.sevo44.ru/videos/watch/c8dfa17f-ad7a-478a-83d0-6c53767f778a/announces/1
Updating video share http://video.sevo44.ru/videos/watch/2ef17574-dbc8-4111-936c-773c755141db/announces/5
Updating video share http://video.sevo44.ru/videos/watch/2ef17574-dbc8-4111-936c-773c755141db/announces/1
Updating video share http://video.sevo44.ru/videos/watch/753df8df-5bae-4bef-8d3c-5bb688a8c0fb/announces/5
Updating video share http://video.sevo44.ru/videos/watch/753df8df-5bae-4bef-8d3c-5bb688a8c0fb/announces/1
Updating video comments.
Updating video and torrent files.
Updating video 9c178338-fa10-47b0-b2d1-f41af08179cc
Updating torrent file720 of video 9c178338-fa10-47b0-b2d1-f41af08179cc.
[video.sevo44.ru:443]2020-12-28 00:35:39.659 info: Creating torrent /var/www/peertube/storage/torrents/9c178338-fa10-47b0-b2d1-f41af08179cc-720.torrent.
Updating video c8dfa17f-ad7a-478a-83d0-6c53767f778a
Updating torrent file720 of video c8dfa17f-ad7a-478a-83d0-6c53767f778a.
[video.sevo44.ru:443]2020-12-28 00:35:42.519 info: Creating torrent /var/www/peertube/storage/torrents/c8dfa17f-ad7a-478a-83d0-6c53767f778a-720.torrent.
Updating video 2ef17574-dbc8-4111-936c-773c755141db
Updating torrent file720 of video 2ef17574-dbc8-4111-936c-773c755141db.
[video.sevo44.ru:443]2020-12-28 00:35:45.303 info: Creating torrent /var/www/peertube/storage/torrents/2ef17574-dbc8-4111-936c-773c755141db-720.torrent.
Updating video 753df8df-5bae-4bef-8d3c-5bb688a8c0fb
Updating torrent file304 of video 753df8df-5bae-4bef-8d3c-5bb688a8c0fb.
[video.sevo44.ru:443]2020-12-28 00:35:51.759 info: Creating torrent /var/www/peertube/storage/torrents/753df8df-5bae-4bef-8d3c-5bb688a8c0fb-304.torrent.
[peertube@video peertube-latest]$
После успешного выполнения перезагрузите Nginx и PeerTube
nginx -s reload
systemctl start peertube
Смена пароля администратора PeerTube
Пароль администратора генерируется автоматически, его можно найти в журналах. Вы можете установить другой пароль с помощью следующей команды
cd /var/www/peertube/peertube-latest && NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u root
Заключение
Долго лежала эта статья в черновиках и только после того как я все проверил и произвел несколько обновлений совесть позволила мне опубликовать статью.
Однозначно делайте резервную копию системы перед обновлением и тогда вам не страшны любые сюрпризы при обновлениях.
К сожалению обновление системы необходимо если вы хотите пользоваться всеми прелестями системы. В случае если вы планируйте производить простой вариант загрузки файлов и не использовать сеть P2P систему можно не обновлять.
За время использования много раз слышал спасибо от родни за то что теперь они могут без проблем смотреть семейное видео и делится им.
Больше всего ушло на то чтобы вытащить со всех щелей семейное видео и загрузит в одно место.
Удаленное управление компьютером без ограничений по времени и скорости сеанса. Бесплатная версия как для физических, так и для юридических лиц. Программа LiteManager это идеальное решение для удаленного управления компьютерами на разных ОС.
Введение
Удаленное управление в повседневных буднях системного администратора обыденная вещь. О том как я добился простоты и удобства в этом вопросе я расскажу в этой статье.
На практике я перепробовал все возможные бесплатные варианты удаленного управления компьютерами без использования IP адреса, но все они таят в себе сюрпризы.
Основные моменты которые меня не устраивали в бесплатных версиях:
Ограничение сеанса минутами;
Ограничение скорости сеанса;
Легальность использования в организациях;
Необходимость одинаковых версий на компьютерах.
Для себя я нашел программу LiteManager которая удовлетворила все мои требования и дает возможность комфортно и удобно работать с удаленными компьютерами.
Главные для меня моменты благодаря которым я выбрал этот продукт:
Работает на всех операционных системах, Windows, Linux, Mac OS, Android;
Подключатся по ID через свой сервер NoIP;
Легальное использование в организациях;
Программа не требует установки на компьютер.
Обязательно посетите сайт разработчика. Все возможности хорошо и наглядно задокументированы. В случае вопросов вы можете посетить их форум или написать разработчику напрямую. У программы много возможностей которые возможно вас заинтересуют и подтолкнут к выбору именно этой программы. Например, есть режим работы для удаленного обучения.
Режимы работы LiteManager
Удаленное управление может требовать разных вариантов режимов работы, но обычно их используется не много.
Основные режимы которые мной используются:
Режим просмотра — вы видите что делает пользователь но не можете ничего сделать;
Режим полного управления — полный контроль над удаленным компьютером;
Передача файлов — возможность обмениваться файлами с удаленным компьютером.
На практике мне обычно хватает этих трех режимов. Тем не менее, периодически пользуюсь и другими режимами. При покупке платной версии добавляются механизмы которые востребованы при обслуживании большого парка машин.
Слева вы видите группы компьютеров которые вы создадите по своему усмотрению, посередине компьютеры для подключения а слева типы подключений. Вы можете смотреть имеющиеся узлы в режиме списка или создать карту.
В бесплатной версии имеется ограничение на 30 компьютеров, но в программе есть замечательная возможность импорта и экспорта как всех узлов так и выбранных.
Удаленное управление для сотрудников
В случае если необходимо настроить сотруднику удаленное управление компьютером на работе достаточно выполнить несколько простых действий.
Вот перечень необходимых действий:
Добавить на компьютере пользователя профиль для подключения с необходимыми параметрами;
Экспортировать нужное подключение;
Передать работнику LiteManager Viewer портативную версию (работает без установки) и сказать как импортировать подключение.
Вот таким простым способом можно настроить работнику удаленную работу с его компьютером на работе.
Необходимо учитывать при удаленной работе разрешение экрана.
При варианте когда разрешение монитора на компьютере к которому подключаетесь больше достаточно на нем снизить разрешение до такого как на том с которого подключаетесь и работать станет комфортно.
Варианты доступа к компьютерам
На практике мне требуется организовать постоянный доступ с возможностью управления в любое время без участия пользователя или вариант когда пользователь запускает программу и сообщает мне данные для подключения.
Настройки гибкие и позволяют создавать пользователей для подключения с разными правами. При желании можно скрыть от глаз пользователя работу программы.
Доступ без разрешения
При данном виде управления я устанавливаю программу, добавляю её в автозагрузку, блокирую паролем настройки программы. Произвожу подключение в любой необходимый мне момент для решения текущих задач с компьютером.
Доступ с разрешением
Когда оказываешь разовые услуги и нужно максимально быстро и просто подключится к клиенту необходимо иметь простой и понятный механизм.
Вариант когда человек просто запускает файл и передает вам параметры для подключения (желательно только цифры) самый удобный и оптимальный. Для такой простоты необходимо развернуть свой NoIP сервер и создать свою версию программы с нужными параметрами. О том как это сделать вы узнаете читая статью дальше.
Статья прям пугающая и по ощущениям явно написана на заказ. По сути уязвимость была только в случае если вы будете подключаться через сторонний NoIP. При использовании своего NoIP уязвимости нет.
Мало кто любит читать комментарии к статьям, хотя там бывает весьма любопытная информация.
+2 Программа обновлена до версии 4.8.3 в процесс авторизации внесены изменения, с учетом данного вида угроз.
Спасибо Всем, извините за неудобства
Сервис работает под управлением операционной системы Windows, но думаю что разработчик сделает версию и под Linux. Кстати, использую Wine можно запускать и на Linux, но стабильность работы я не проверял.
Скачиваем с сайта разработчика последнюю версию LiteManager Windows. В полной версии будет папка NOIP (ID router) где находится то что нам надо.
После запуска вы увидите станицу на которой показан статус и варианты запуска программы. В моем случае я запускаю её вручную:
Не забудьте открыть порт указанный в основных настройках 5651. При желании можете поменять на любой другой . Главное при дальнейших настройках учитывайте это.
Переходим на страницу «Дополнительно» в которой необходимо выбрать параметр который обеспечит совмещенный режим работы для разных лицензий:
Переходим на стартовую страницу и запускаем сервис. В результате должно быть так:
Обязательно переходим на страницу «Информация» и убеждаемся что тип лицензии сервера бесплатный:
После того как будет подключен по ID вы увидите на странице статистики информацию:
Есть и другие полезные возможности которые в последствии вы сможете применить. Для начала использования сервиса этих настроек хватит.
Настройка подключения по ID
Используя конструктор QuickSupport можно создать свою версию программы которая будет производить соединение с необходимыми вам параметрами и выводом нужной информации.
В моем случае соединение проходит через мой NoIP сервер и как следствие все работает быстро и без сбоев.
Можно использовать и общедоступные NoIP но работают они медленно и нестабильно.
При создании есть несколько нюансов о которых я расскажу.
Запустить конструктор необходимо вот так:
Базовая информация
При данном варианте достаточно указать IP адрес вашего NoIP и выбрать запись настроек в имени файла:
После нажатия «Сохранить QuickSupport пакет» создастся необходимый файл.
Свой логотип и информация
Данный вариант более привлекательный, так как позволяет изменить текстовую информацию и вставить свой логотип. Все требования для графики указанны.
В результате вы получите папку со всеми необходимыми файлами.
В моем варианте клиент видит такое окно:
При создании пакета в обоих вариантах менять названия файлов нельзя.
Для удобства я создал само распаковывающийся архив который помещает необходимые файлы в системную папку с программами а на рабочем столе создает необходимый ярлык. Кроме того, я записал видео со всеми часто встречающиеся проблемами у пользователей связанные с запуском программы.
Пример подключения по ID
В заключение, покажу как выглядит весь механизм подключения для удаленного управления компьютером.
Клиент запускает программу для доступа. Вначале выйдет сообщение с 5 секундным таймером про лицензию:
В случае успеха видим состояние соединения и параметры для подключения:
Действия на стороне клиента закончены. Переходим к непосредственному подключению.
Запускаем соединение по ID:
Нажимаем «Настройки» и указываем необходимый NoIP сервер:
Вводим ID и после подключения видим окно в которое необходимо указать пароль:
После введения пароля вы увидите созданное подключение:
Выбираем слева режим подключения и подключаемся для удаленного управления:
На картинке указано изображение в режиме масштабирования.
Заключение
Пользуюсь программой очень давно и вижу как постоянно добавляются новые полезные возможности. Сбоев в работе за все время я не встречал.
Огромное спасибо разработчикам давшим возможность пользоваться программой в коммерческих целях и позволили создавать версию для удаленной поддержки со своей информацией.
Уважаю и ценю таких разработчиков. Они ведут открытую и понятную политику своих продуктов без использования маркетинговых ухищрений. Может из за этого они получают меньше денег, но мне кажется я не один для кого деньги пахнут.
Обслуживание компьютеров, ремонт, лечение вирусов, модернизация. Системы на ОС Linux. Создание и продвижение Интернет проектов. Бесплатные консультации. Офисные АТС. Видеонаблюдение.