Архив метки: Software

Настраиваем распределённую файловую систему GlusterFS на CentOS 7

GlusterFS это распределённая, параллельная файловая система с открытым исходным кодом и линейной масштабируемостью. Работает в пользовательском пространстве при помощи технологии FUSE.




Основным преимуществом GlusterFS является то, что мы можем масштабировать хранилище до нескольких петабайт без какого-либо простоя, а также обеспечивает избыточность и высокую доступность хранилища.




Доступ к Gluster-ресурсу можно получать как с использованием FUSE, так и через NFS-протокол версии не ниже третьей. В последнем случае (доступ по NFS) демон Gluster подгружает соответствующий транслятор, который выступает в роли NFS-сервера и не может работать совместно с другими NFS-серверами. Несмотря на то, что разработчики Gluster декларируют совместимость с CIFS, в действительности такая совместимость средствами самого Gluster не обеспечивается, поэтому для экспорта Windows-клиентам необходимо создать разделяемый ресурс средствами Samba. Wikipedia




Ознакомиться с терминологией GlusterFS можно в официальной документации




В статье будет рассмотрен один из примеров построения отказоустойчивого и масштабируемого хранилища. В качестве хостов будут использованы виртуальные с сервера с минимальной установкой CentOS 7.




172.16.1.7 gfs01

172.16.1.8 gfs02

172.16.1.9 gfs03




Заранее добавим эти записи в файл /etc/hosts на каждом сервере.




Установка GlusterFS




Установка дополнительных пакетов.




yum install epel-release -y

yum install yum-priorities yum-utils -y




GlusterFS доступен в репозитории CentOS SIG, установим его:




yum install centos-release-gluster

yum install glusterfs-server




Запускаем сервис и добавляем в автозапуск.




systemctl start glusterd

systemctl enable glusterd




Добавляем правила на firewall для корректной работы сервиса.




# firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent

# firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp 

--add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=24007-24009/tcp --add-port=49152-49251/tcp --permanent

# firewall-cmd --reload




Настройка Volume




Формируем доверенный пул хранения




На первом хосте выполняем команды для формирования доверенного пула хранения с соседними хостами.




gluster peer probe gfs01

gluster peer probe gfs02

gluster peer probe gfs03




Проверям статус:




[root@gfs01 ~]# gluster peer status

Number of Peers: 2



Hostname: gfs02

Uuid: 247b073e-1bb2-4784-b3d5-a39a915f3d17

State: Peer in Cluster (Connected)



Hostname: gfs03

Uuid: 3befd565-5cff-48d4-9b8e-f1956119e0b4

State: Peer in Cluster (Connected)



[root@gfs01 ~]# gluster pool list

UUID Hostname State

247b073e-1bb2-4784-b3d5-a39a915f3d17 gfs02 Connected

3befd565-5cff-48d4-9b8e-f1956119e0b4 gfs03 Connected

bc6f57b3-ddb9-4511-b9da-3202950eb43c localhost Connected




Создаём брики




В данной статье рассмотрен вариант в обычными директориями, рекомендуется использовать разделы или тома LVM.




mkdir -p /folder-one && mkdir -p /folder-two




После этого создаём общий ресурс с именем files-one и files-two с репликой 3 (обратите внимание, что количество реплик равно количеству серверов).




gluster volume create files-one replica 3 gfs01:/folder-one gfs02:/folder-one gfs03:/folder-one force

gluster volume create files-two replica 3 gfs01:/folder-two gfs02:/folder-two gfs03:/folder-two force




Запускаем тома




Выполняем запуск созданных томов




gluster volume start files-one

gluster volume start files-two




Проверяем их статус:




[root@gfs01 ~]# gluster volume status files-one

Status of volume: files-one

Gluster process TCP Port RDMA Port Online Pid

------------------------------------------------------------------------------

Brick gfs01:/folder-one 49152 0 Y 31747

Brick gfs02:/folder-one 49152 0 Y 31654

Brick gfs03:/folder-one 49152 0 Y 31632

Self-heal Daemon on localhost N/A N/A Y 31823

Self-heal Daemon on gfs03 N/A N/A Y 31701

Self-heal Daemon on gfs02 N/A N/A Y 31723



Task Status of Volume files-one

------------------------------------------------------------------------------

There are no active volume tasks







[root@gfs01 ~]# gluster volume status files-two

Status of volume: files-two

Gluster process TCP Port RDMA Port Online Pid

------------------------------------------------------------------------------

Brick gfs01:/folder-two 49153 0 Y 31802

Brick gfs02:/folder-two 49153 0 Y 31702

Brick gfs03:/folder-two 49153 0 Y 31680

Self-heal Daemon on localhost N/A N/A Y 31823

Self-heal Daemon on gfs02 N/A N/A Y 31723

Self-heal Daemon on gfs03 N/A N/A Y 31701



Task Status of Volume files-two

------------------------------------------------------------------------------

There are no active volume tasks




Настраиваем отказоустойчивость пулов




gluster volume set files-one network.ping-timeout 5

gluster volume set files-one cluster.quorum-type fixed

gluster volume set files-one cluster.quorum-count 1

gluster volume set files-one performance.quick-read on




gluster volume set files-two network.ping-timeout 5

gluster volume set files-two cluster.quorum-type fixed

gluster volume set files-two cluster.quorum-count 1

gluster volume set files-two performance.quick-read on




network.ping-timeout — устанавливаем период опроса в 5 секунд, вместо 42 по умолчанию.
cluster.quorum-type(нет|auto|fixed) — Если установлено значение fixed, этот параметр разрешает запись в файл, только если количество активных блоков в этом наборе реплик (к которому принадлежит файл) больше или равно количеству, указанному в параметре quorum-count.
cluster.quorum-count — количество блоков, которые должны быть активны в наборе реплик, чтобы разрешить запись.
performance.quick-read(on|off) — включение быстрого чтения для транслятора пула.




Монтируем пулы




Монтируем пулы к рабочим директориям.
К примеру пул files-one будет использоваться для директории /home/pictures, равно как пул files-two для /home/docs. Обратите внимание, что маунт выполняется каждый на своём сервере локально.




# On gfs01

mount -t glusterfs gfs01:/files-one /home/pictures

mount -t glusterfs gfs01:/files-two /home/docs



# On gfs02

mount -t glusterfs gfs02:/files-one /home/pictures

mount -t glusterfs gfs02:/files-two /home/docs



# On gfs03

mount -t glusterfs gfs03:/files-one /home/pictures

mount -t glusterfs gfs03:/files-two /home/docs




Для автоматического монтирования пулов при загрузке необходимо добавить соответствующие записи в /etc/fstab.




# On gfs01

gfs01:/files-one /home/pictures glusterfs defaults,_netdev 0 0

gfs01:/files-two /home/docs glusterfs defaults,_netdev 0 0



# On gfs02

gfs02:/files-one /home/pictures glusterfs defaults,_netdev 0 0

gfs02:/files-two /home/docs glusterfs defaults,_netdev 0 0



# On gfs03

gfs03:/files-one /home/pictures glusterfs defaults,_netdev 0 0

gfs03:/files-two /home/docs glusterfs defaults,_netdev 0 0



2021-03-17T23:13:52
Software

Установка облачного хранилища Nextcloud

Nextcloud – это бесплатное облачное хранилище с открытым исходным кодом. Nextcloud позволяет организовать легкий доступ к своим файлам, фотографиям и документам для работы и совместного использования с членами команды, клиентами и партнерами. В хранилище также есть дополнительные функции, такие как Календарь, Контакты, Планировщик задач, потоковое воспроизведение мультимедиа с помощью Ampache и т. д.




Для синхронизации файлов между рабочим столом и вашим собственным сервером, Nextcloud предоставляет приложения для рабочих столов Windows, Linux и Mac, а также мобильное приложение для Android и iOS.




Что потребуется для установки?




Мы будем устанавливать Nextcloud на сервер Ubuntu 20.04. Необходимым условием являются внешний  ip-адрес и открытые порты 80 и 443.




1.  Установка web-сервера Nginx




Первым делом подключимся к нашему серверу и установим веб-сервер Nginx




sudo apt update
sudo apt install nginx -y




После завершения установки запустим службу Nginx и включим ее старт при загрузке системы с помощью systemctl.




systemctl start nginx
systemctl enable nginx




Проверим, что все запустилось




systemctl status nginx







Установка и настройка PHP 7.4 – FPM




Установим пакеты PHP и PHP-FPM, используя команду ниже:




sudo apt install php-fpm php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 -y




После завершения установки нужно немного отредактировать файлы php.ini для php-fpm и php-cli. Данные изменения необходимо произвести в обоих файлах.




cd /etc/php/7.4/
sudo nano fpm/php.ini
sudo nano cli/php.ini




Раскоментируйте строку date.timezone и измените значение на свой часовой пояс.




date.timezone = Europe/Moscow




Раскоментируйте строку ‘cgi.fix_pathinfo’ и измените значение на ‘0’.




cgi.fix_pathinfo=0




Сохраняем изменения и выходим.




Теперь отредактируем файл www.conf




sudo nano fpm/pool.d/www.conf




Найдем и раскоментируем следующие строки:




env [HOSTNAME] = $HOSTNAME
env [PATH] = /usr/local/bin:/usr/bin:/bin
env [TMP] = /tmp
env [TMPDIR] = /tmp
env [TEMP] = /tmp




Сохраняем файл и выходим.




Следующим шагом нужно перезапустить службу PHP7.4-FPM  и включить ее автозагрузку.




systemctl restart php7.4-fpm
systemctl enable php7.4-fpm




Проверим что сервис работает с помощью следующей команды:




ss -xa | grep php
systemctl status php7.4-fpm







Вы увидите, что php-fpm запущен и работает под файлом sock ‘/run/php/php7.4-fpm.sock’.




3. Установка и настройка сервера MariaDB




Следующий шаг – установка базы данных. Установите последнюю версию сервера MariaDB, используя команду:




sudo apt install mariadb-server -y




После завершения установки запустим службу MariaDB и включим ее запуск при каждом старте системы.




systemctl start mariadb
systemctl enable mariadb




Проверяем:




systemctl status mariadb







Следующий шаг – настройка безопасности  SQL-сервера. У вас спросят о некоторых настройках сервера MariaDB. После ответа на вопрос Set root password? введите новый пароль root для SQL-сервера MariaDB




mysql_secure_installation




Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y




Теперь создадим новую базу данных для установки nextcloud. Назовем базу данных «nextcloud_db» с пользователем «nextclouduser» и паролем «PaSsW0rD@».




Войдите в оболочку MySQL от имени пользователя root с помощью команды mysql.




mysql -u root -p




Введите пароль root SQL-сервера MariaDB.




Создадим базу данных и пользователя:




create database nextcloud_db;
create user nextclouduser@localhost identified by 'PaSsW0rD@';
grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'PaSsW0rD@';
flush privileges;
exit;




Установка и настройка MariaDB для Nextcloud завершена.




4. Генерация SSL-сертификата Letsencrypt




Установите инструмент letsencrypt, используя команду apt ниже:




sudo apt install certbot -y




После завершения установки остановите службу nginx.




systemctl stop nginx




Сгенерируем SSL-сертификаты для доменного имени ‘cloud.admin812.ru’, используя командную строку cerbot.




certbot certonly --standalone -d cloud.admin812.ru




Вам будет предложено ввести адрес электронной почты на который будет приходить уведомление о необходимости продления сертификата.




Следующим шагом будет вывод на экран оглашения об обслуживании. Нажимаем “А” (Agree) и после этого запускается процесс генерации сертификата. По окончании появится надпись об успешном завершении процесса и можно приступать непосредственно к установке Nextcloud.




5. Скачиваем Nextcloud




Перед загрузкой исходного кода nextcloud убедитесь, что в системе установлен пакет unzip. Если у вас его нет пакета, установите его:




sudo apt install wget unzip zip -y




Теперь перейдем в каталог /var/www и скачаем последнюю версию Nextcloud:




cd /var/www/
wget -q https://download.nextcloud.com/server/releases/latest.zip




Распакуем архив и изменим владельца каталога nextcloud на пользователя ‘www-data’:




unzip -qq latest.zip
sudo chown -R www-data:www-data /var/www/nextcloud




6. Настраиваем виртуальный хост Nginx для Nextcloud




В каталоге /etc/nginx/sites-available создадим новый файл виртуального хоста nextcloud.




cd /etc/nginx/sites-available/
sudo nano nextcloud




Вставим следующую конфигурацию виртуального хоста nextcloud.




upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php/php7.4-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name cloud.admin812.ru;
# enforce https
return 301 https://$server_name:443$request_uri;
}
#
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name cloud.admin812.ru;
#
# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
# NOTE: some settings below might be redundant
ssl_certificate /etc/letsencrypt/live/cloud.admin812.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.admin812.ru/privkey.pem;
#
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this
# topic first.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
#
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
#
# Path to the root of your installation
root /var/www/nextcloud;
#
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
#
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
#
# The following rule is only needed for the Social app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/webfinger /public.php?service=webfinger last;
#
location = /.well-known/carddav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
#
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
#
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
#
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
#
location / {
rewrite ^ /index.php;
}
#
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:.|autotest|occ|issue|indie|db_|console) {
deny all;
}
#
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|oc[ms]-provider/.+).php(?:$|/) {
fastcgi_split_path_info ^(.+?.php)(/.*|)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS on;
# Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
# Enable pretty urls
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
#
location ~ ^/(?:updater|oc[ms]-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
#
# Adding the cache control header for js, css and map files
# Make sure it is BELOW the PHP block
location ~ .(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
# Add headers to serve security related headers (It is intended to
# have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into
# this topic first.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
# Optional: Don't log access to assets
access_log off;
}
location ~ .(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
try_files $uri /index.php$request_uri;
# Optional: Don't log access to other assets
access_log off;
}
}




Замените выделенное красным на свое доменное имя.




Включите виртуальный хост, протестируйте конфигурацию и убедитесь, что нетv ошибок.




ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
nginx -t




Если ошибок нет, перезапустите сервис PHP7.4-FPM и nginx.




systemctl restart nginx
systemctl restart php7.4-fpm




Конфигурация виртуального хоста Nginx для nextcloud создана.




7. Подключение к Nextcloud




Откройте веб-браузер и введите URL-адрес nextcloud. Вы будете автоматически перенаправлены на соединение https.




Нам нужно создать пользователя-администратора для Nextcloud и ввести пароль.




Также нужно настроить соединение с базой данных. Для этого введите название базы данных, имя пользователя и пароль которые мы создали на шаге 3, а затем нажмите кнопку «Finish».




И после завершения установки вы получите панель Nextcloud, как показано ниже.







Источник: https://admin812.ru/ustanovka-oblachnogo-hranilishha-nextcloud.html



2021-03-17T21:20:05
Software

Как включить аутентификацию на сервере Jitsi

В предыдущей заметке мы настраивали сервер Jitsi. По умолчанию любой, кто знает URL вашего сервера, может подключиться и начать сеанс видеоконференцсвязи.
Настроим Jitsi таким образом, чтобы права на создание чат-комнаты были только у конкретного авторизованного пользователя. Затем вы сможете поделиться этой ссылкой с кем угодно и все остальные участники смогут присоединиться анонимно. Это лучший способ запуска Jitsi. Вы знаете, что на вашем сервере не будут выполняться несанкционированные сеансы видеоконференций, но вы все равно можете приглашать кого угодно, и ваши приглашенные не должны иметь учетную запись на сервере Jitsi.
Аутентификация выполняется через компоненту Prosody. Включим ее на нашем сервере – в нашем примере это  jitsi.admin812.ru.
Для этого нужно отредактировать файл /etc/prosody/conf.avail/[ВАШ-ДОМЕН].cfg.lua




sudo nano -w /etc/prosody/conf.avail/jitsi.admin812.ru.cfg.lua




Найдите раздел «VirtualHost» и строку




authentication = "anonymous"




Заменим ее на




authentication = "internal_plain"




Это отключает анонимную аутентификацию для главного URL-адреса хоста сервера.
Однако нам также необходимо создать новый виртуальный хост для наших гостей, чтобы облегчить их анонимные подключения. Прокрутите до конца файла и добавьте эти строки, чтобы создать новый виртуальный хост с методом анонимного входа (используйте свое полное доменное имя):




VirtualHost "guest.jitsi.admin812.ru"
    authentication = "anonymous"
    c2s_require_encryption = false




VirtualHost, который мы только что создали – guest.jitsi.admin812.ru – используется только для Jitsi внутри – нет необходимости создавать отдельную запись DNS A для этого полного доменного имени.




Далее нам нужно настроить наш вновь созданный VirtualHost / анонимный домен в нашем файле config.js:




sudo nano -w /etc/jitsi/meet/jitsi.admin812.ru-config.js




Прямо в верхней части файла в разделе  var config = { …    вы должны увидеть строку, которая начинается с «anonymousdomain». Раскомментируйте эту строку и добавьте свое полное доменное имя:




anonymousdomain: 'guest.jitsi.admin812.ru',







Далее нам нужно указать службе Jicofo разрешать запросы только от нашего аутентифицированного домена.




sudo nano -w /etc/jitsi/jicofo/sip-communicator.properties




Добавьте новую строку в конец этого файла: org.jitsi.jicofo.auth.URL = XMPP: jitsi.admin812.ru







Теперь давайте перезапустим службы Jitsi:




sudo systemctl restart prosody
sudo systemctl restart jicofo
sudo systemctl restart jitsi-videobridge2




Осталось добавить пользователя, который может создавать комнаты видеоконференций. Итак, чтобы создать пользователя ‘vasya’ с паролем ‘PassW0rd’, вы должны выполнить:




sudo prosodyctl register vasya jitsi.admin812.ru PassW0rd




Теперь если вы войдете на свой сервер Jitsi и начнете новое собрание, вам сообщат, что конференция ожидает организатора. Нажмите на кнопку “I am the host” и после этого введите введите имя пользователя и пароль, которые вы создали с помощью команды prosodyctl.




Ваша видеоконференция началась! Теперь вы можете поделиться ссылкой на видеоконференцию с другими людьми.  Для большей безопасности рекомендуется добавить пароль к вашей конференции.




Источник: https://admin812.ru/kak-vklyuchit-autentifikacziyu-na-servere-jitsi.html



2021-03-17T21:14:10
Software

Установка сервера видеоконференций Jitsi

В связи с известными обстоятельствами многим понадобилось живое общение посредством камеры. Один из вариантов – установка сервера видеоконференций Jitsi.  Jitsi – это набор проектов с открытым исходным кодом, который позволяет легко создавать и развертывать безопасные решения для видеоконференций.




Вот основные составные части Jitsi:




  • Jitsi Meet – безопасная, простая и масштабируемая платформа видеоконференции, которую можно использовать в качестве автономного приложения
  • Jitsi Videobridge – механизм медиасервера (также известный как Selective Forwarding Unit (SFU)), который поддерживает все многосторонние видеоконференции Jitsi
  • Jigasi – сервис шлюза, который соединяет SIP-телефонию с конференцией Jitsi Videobridge
  • Jibri – вещатель и рекордер, используемые для сохранения записей видеозвонков и потоковой передачи на YouTube Live
  • Jidesha – расширение для Chrome и Firefox для расшаривания экрана




Установка достаточно простая, требуется установленный сервер Ubuntu/Debian с внешним ip-адресом.




Сначала установите ключ репозитория Jitsi на вашу систему:




wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -




Создайте файл sources.list.d с хранилищем




sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"




Обновим список пакетов.




sudo apt-get -y update




Установка полной версии Jitsi




sudo apt-get -y install jitsi-meet




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




Для работы сервера  Jitsi необходимо открыть следующие порты: tcp 443, tcp 4443, udp 10000.




Установка сертификата Let’s Encrypt




Если все заработало, то следующий шаг – установка сертификата. В противном случае не смогут подключатся пользователи Android и iOS. Есть уже готовый скрипт: /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh




После запуска у вас попросят указать свой адрес электронной почты на который будут приходить сообщения о проблемах с сертификатом. Весь остальной процесс автоматизирован.




Что делать если сервер Jitsi  находится за NAT ?




Если сервер находится за NAT, необходимо внести изменения в файл /etc/jitsi/videobridge/sip-communicator.properties:




org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Local.IP.Address>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Public.IP.Address>




Соответственно вместо Local.IP.Address – указываем адрес сервера в локальной сети, а вместо Public.IP.Address  прописываем адрес внешний.




Далее, пробрасываем порты на маршрутизаторе. Предположим, что наш сервер Jitsi имеет адрес 192.168.100.5




iptables -A FORWARD -p tcp -d 192.168.100.5 --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.100.5:443

iptables -A FORWARD -p tcp -d 192.168.100.8 --dport 4443 -j ACCEPT
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -p tcp -m tcp --dport 4443 -j DNAT --to-destination 192.168.100.5:4443

iptables -A FORWARD -p udp -d 192.168.100.5 --dport 10000 -j ACCEPT
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -p udp -m udp --dport 10000 -j DNAT --to-destination 192.168.100.5:10000




Для того чтобы отработал скрипт получения сертификата Let’s Encrypt нужно также пробросить порт 80.




iptables -A FORWARD -p tcp -d 192.168.100.5 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.5:80




Вот и все!




Источник: https://admin812.ru/ustanovka-servera-videokonferenczij-jitsi.html



2021-03-17T21:12:14
Software

Как подключить хранилище Nextcloud в Windows в качестве сетевого диска

В командной строке пишем:




net use Z: https://cloud.admin812.ru/remote.php/dav/files/clouduser/ /persistent:YES /user:youruser yourpassword




Выделенное красным меняем на свои данные.




Если команда не выполняется и выдает ошибку: “Системная ошибка 67. Не найдено сетевое имя.”, проверьте состояние службы Web-клиент. Некоторые обновления Windows самостоятельно меняют тип запуска службы на “Вручную”.  Установите ” Автоматически”.






2021-03-17T21:09:23
Software

Установка Docker Portainer

В последнее время Docker набирает всё больше и больше популярности благодаря возможности быстро развертывать сложные приложения, состоящие из большого количества сервисов. Portainer — это система управления docker контейнерами в Linux. Она позволяет управлять как локальными контейнерами, так и удалёнными с помощью Docker API.




С помощью Portainer вы сможете отслеживать состояние контейнеров, запускать, останавливать и удалять их, развертывать новые приложения, а также многое другое. Сегодня мы поговорим как выполняется установка Docker Portainer на ваш компьютер, а также как пользоваться программой




КАК УСТАНОВИТЬ DOCKER PORTAINER




Для выполнения этой статьи вам понадобится уже установленный в вашей системе Docker. Я не буду подробно рассказывать как установить docker и docker-compose. Для этого воспользуйтесь этой статьей для Ubuntu или этой для CentOS.




После того, как Docker будет установлен, можно развернуть контейнер с Portainer. Было бы странно, если бы программа поставлялась в каком-либо другом виде. Создайте хранилище данных для Portainer:




docker volume create portainer_data




Для установки и запуска контейнера выполните:




docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer







Эта команда настраивает автоматический запуск Portainer после перезагрузки, а также постоянное хранилище, чтобы ваши настройки не потерялись при удалении и повторном разворачивании контейнера. Чтобы убедится, что Portainer запущен выполните такую команду:




docker ps







НАСТРОЙКА PORTAINER




1. ВХОД




Получить доступ к программе вы можете через веб-интерфейс на порту 9000. Откройте его в браузере. На первом шаге надо будет ввести имя пользователя и пароль, под которым вы будете входить в систему:







Затем выберите метод подключения к Docker. Для начала можно подключиться к локальному сервису Docker. Для этого выберите Local:







2. СПИСОК УЗЛОВ И КОНТЕЙНЕРОВ




После нажатия кнопки Connect вы попадите в панель управления контейнерами:







Сначала вам надо выбрать узел, на котором вы будете управлять контейнерами, в данном случае, это local. Здесь вы можете уже управлять вашими контейнерами. Например, в разделе Containers можно посмотреть все доступные контейнеры:







А в разделе Stacks — все доступные приложения:







3. РАЗВОРАЧИВАНИЕ ПРИЛОЖЕНИЯ




В разделе App Templates вы можете развернуть новое приложение на основе одного из существующих шаблонов. Например, давайте развернем WordPress. Для этого найдите его в списке:







Затем шаблон надо настроить. В данном случае, надо указать пароль для базы данных и имя приложения:







После этого нажмите кнопку Deploy the stack и новое приложение появится в списке раздела Stasks. Как видите, теперь программа сообщает, что у неё есть полный контроль над этим приложением, потому что она его создала:




4. УПРАВЛЕНИЕ ПРИЛОЖЕНИЕМ




Если вы откроете приложение, там будут отображены его контейнеры. По каждому контейнеру можно посмотреть логи, открытые порты и даже подключится через терминал. Чтобы увидеть логи нажмите на иконку похожую на записную книжку возле состояния контейнера:







Для командной строки рядом есть значок с символом приглашения ввода. Вот так выглядит командная строка:







А открытые порты находятся в самом конце характеристик контейнера в разделе Published ports:







Если вы кликните по ссылке с надписью 32768:80 для контейнера WordPress, то попадёте на сайт WordPress:







КАК ОБНОВИТЬ PORTAINER




Чтобы обновить Portainer надо удалить текущий образ и запустить его снова. Это не вызовет никаких проблем, так как при создании предыдущего образа мы использовали внешнее хранилище для хранения данных. Остановите образ и удалите его:




docker stop portainer

docker rm portainer




Скачайте новую версию:




docker pull portainer/portainer




Затем осталось снова установить Portainer:




docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer




ВЫВОДЫ




Как видите установка Portainer очень простая, если у вас есть уже установленный docker, а далее программа только помогает пользоваться контейнерами. Вы можете подключить к ней и удалённые узлы, однако для этого надо, чтобы у них был публичный IP адрес, потому что в локальной сети взаимодействовать с ними вы не сможете. А вы используете Portainer или пользуетесь другим интерфейсом для управления Docker? Напишите в комментариях!




Источник: https://losst.ru/ustanovka-docker-portainer



2021-03-10T23:16:02
Software