четверг, 24 декабря 2020 г.

Миграция или обновление до актуальной версии FreePBX без использования convert.freepbx.org

Раньше для миграции со старых версий FreePBX на актуальную можно было использовать специальный сервис, который располагался по адресу https://convert.freepbx.org, но теперь он закрыт и альтернативы для него создано не будет. Сервис использовался для миграции со старых версий FreePBX Distro, работавших на виртуальных машинах Hyper-V, т.к. скрипт обновления FreePBX Distro до актульной версии не работет на Hyper-V, либо с FreePBX, установленных на других дистрибутивах, в качестве отдельного приложения.

Если же всё-таки нужно обновить FreePBX до актуальной версии, то не будем отчаиваться и опускать руки, а сделаем всё самостоятельно.

среда, 16 декабря 2020 г.

Ошибка при обновлении Zabbix: "Неподдерживаемая кодовая страница"

После очередного обновления в веб-интерфейсе Zabbix появилось сообщение
Неподдерживаемая кодовая страница или тип сравнения для таблиц: < длинный список таблиц >
то же самое на английском
Unsupported charset or collation for tables: < длинный список таблиц >
и в логе
character set name or collation name that is not supported by Zabbix found in 379 column(s) of database "zabbix", only character set "utf8" and collation "utf8_bin" should be used in database
Это происходит из-за того, что в базе данных MySQL используется кодировка отличная от utf-8. Исправляется это буквално за несколько минут.

вторник, 27 октября 2020 г.

Миграция Jira с H2 на PostgreSQL

Если при устновке Jira Software была выбрана встроенная СУБД H2, а не внешняя, то со временем увеличение объёма данных может отрицательно сказаться на производительности сервиса. В моём конкретном случаем размер файла /var/atlassian/application-data/jira/database/h2db.mv.db приблизился к 5 Гб, что вызывало огромные задержки при выполнении любых действий. Чтобы решить эту проблему было принято решение перенести данные на полноценную СУБД - PostgreSQL. Ставить PostgreSQL будем на тот же сервер, на котором запущена Jira.

пятница, 23 октября 2020 г.

Запись видеоконференций Jitsi Meet с помощью Jibri, запущенного в docker-контейнере

Процесс установки и настройки сервиса видеоконференций Jitsi Meet был описан в одной из предыдущих заметок. Указанная в той заметке конфигурация срвиса была лишена одной немаловажной возможности, а именно возможности вести видеозапись конференции. За наличие этой возможности отвечает сервис Jibri (JItsi BRoadcasting Infrastructure). Его настройка и будет описана далее.

Специфика работы Jibri такова, что один экземпляр этой службы может записывать только одну конференцию. Это происходит из-за того, что при нажатии кнопки "Начать запись" Jibri подключается к конференции как участник и после этого записывает видео. Чтобы решить эту проблему и не плодить при этом серверы с Jibri будем использовать docker-контейнеры.

четверг, 22 октября 2020 г.

Использование SSL-сертификатов Let's Encrypt из репозитория GitLab на Zimbra Collaboration OSE

В предыдущей заметке был описан механизм загрузки SSL-сертификатов Let's Encrypt в репозиторий GitLab. Теперь доставим эти сертификаты на сервер Zimbra Collaboration Open Source Edition. Сертификаты и закрытый ключ хранятся в репозитории, так что триггером для запуска процесса обновления сертификатов на почтовом сервере будет служить наличие нового коммита в нём. Скрипт будет запускаться на почтовом сервере и рассчитан на использование в случае, когда один сервер Zimbra обслуживает один почтовый домен.

вторник, 20 октября 2020 г.

Ошибка git "fatal: unable to access 'https://...': Peer's Certificate issuer is not recognized."

При выполнениии команды git clone https://адрес репозитория.git появляется ошибка
fatal: unable to access 'https://адрес репозитория.git': Peer's Certificate issuer is not recognized.
или
fatal: unable to access 'https://адрес репозитория.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Это происходит из-за того, что на машине, где выполняется команда, отсутствует доверие к корневому центру сертификации, выдавшему SSL-сертификат, используемый сервером.
Решить это можно 2 путями.

понедельник, 19 октября 2020 г.

Хранение и автоматическая загрузка сертификатов Let's Encrypt в репозиторий GitLab

Let's Encrypt предоставляет удобный сервис для получения бесплатного SSL-сертификата, но у него есть один нюанс, сертификат выпускается со сроком действия 90 дней. Это не будет вызвать каких-либо неудобств, если сертификат используется на той же машине, на которой происходит его выпуск и обновление. В случае же, если получается wildcard-сертификат, то он будет использоваться и на других машинах, так что нужно его как-то туда доставить.
Первое, что нужно решить, это определить место хранения сертификата, доступное с любой дугой машины. Решено было использовать для этого репозиторй на локальном GitLab. Это даёт возможность контролировать версионность файлов и откатить изменения, в случае ошибки, чего не позволяет использование обычного общего smb-ресурса.

четверг, 15 октября 2020 г.

Конвертация образов дисков виртуальных машин

Для переноса виртуальной машины с одного гипервизора на другой может потребоваться конвертация образа диска этой виртуальной машины. С этой задачей на отлично справляется qemu-img. Програма поддерживает форматы дисков для всех распространённых гипервизоров:
  • KVM, Xen - qcow2
  • VMware - vmdk
  • Hyper-V - vhd, vhdx
  • VirtualBox - vdi
Так же возможна конвертация образов дисков, созданных с помощью dd.

среда, 14 октября 2020 г.

Локальный сервер обновлений 2ГИС на Linux

По непонятной причине 2ГИС удалили со своего сайта инструкцю по настройке локального сервера обновлений на Linux для ПК-версии своего продукта. Если что-то было в интернете, то WebArchive это точно помнит, так что инструкция всё ещё доступна, если знать где искать. В случае с Linux локальный сервер обнвлений из себя представляет обычный Nginx, работающий в качестве кеширующего прокси.

среда, 7 октября 2020 г.

Квадраты вместо русских букв в консоли CentOS 8

Зайдя в консоль свежеустановленного CentOS 8 можно увидеть вместо русских букв квадраты.
Чтобы это исправить нужно выполинть команду
setfont UniCyr_8x16
Чтобы эффект сохранился после перезагрузки нужно файл /etc/vconsole.conf привести к виду
KEYMAP="ru"
FONT="UniCyr_8x16"

Установка временной зоны в CentOS

Настроить временную зону можно с помощью timedatectl.
Список доступных зон можно увидеть выполнив команду
timedatectl list-timezones
Установка необходимой временной зоны:
timedatectl set-timezone Asia/Yekaterinburg
Проверить результат:
timedatectl status

               Local time: Ср 2020-10-07 16:02:26 +05
           Universal time: Ср 2020-10-07 11:02:26 UTC
                 RTC time: Ср 2020-10-07 16:02:25
                Time zone: Asia/Yekaterinburg (+05, +0500)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

пятница, 25 сентября 2020 г.

Установка и настройка GitLab Community Edition с авторизацией пользователей в ActiveDirectory

В данной заметке будет описан процесс установки GitLab Community Edition на CentOS 8 и настройки его для авторизации пользователей в Active Directory. Мануалов по установке и настройке GitLab множество, просто запишу все необходимые этапы в одном месте.

среда, 12 августа 2020 г.

Миграция контроллера HYCU на другой кластер Nutanix AHV

В руководстве пользователя HYCU процесс миграции контроллера резервного копирования с одного кластера на другой описан следующим образом:
  1. Поднимите временный контроллер резервного копирования HYCU;
  2. Предоставьте временному контроллеру HYCU доступ к кластерам Nutanix, с которого будет переноситься существующая виртуальная машина HYCU, и на который она будет переноситься;
  3. Зайдите в веб-интерфейс HYCU и переведите контроллер в состояние Suspend All, для этого нажмите на кнопку шестерни и выберте соответствующий пункт в меню Power Options;
  4. Зайдите в веб-интерфейс временного контроллера HYCU и сделайте резервную копию виртуальной машины HYCU, после чего восстановите эту виртуальную машину на новый кластер;
  5. Выключите оригинальную виртуальную машину HYCU на старом кластере;
  6. Включите восстановленную виртуальную машину HYCU на новом кластере;
  7. Переведите новый контроллер резервного копирования в состояние Resume, выбрав соответствующий пункт в меню Power Options.
Если следовать этой инструкции, то контроллер HYCU будет пернесён на новый кластер и будет исправно функционировать, но при этом на нём будет недоступно последующее обновление ПО.

вторник, 7 июля 2020 г.

Завершение всех экземпляров приложения

Чтобы завершить все экземпляры приложения, например Google Chrome, нужно от имени администратора запустить командрую строку и выполнить команду
taskkill /IM "chrome" /F
то же самое на PowerShell, тоже от имени администратора

Stop-Process -Name "chrome" -Force

Подсчёт запущенных экземпляров приложения

Чтобы узнать количество запущенных экземпляров приложения, например Google Chrome, нужно запустить командную строку и выполнить команду
tasklist | find /I /C "chrome"
то же самое на PowerShell
@(get-process -ea silentlycontinue 'chrome').count

среда, 27 мая 2020 г.

Установка Prometheus на CentOS

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

Установка Grafana на CentOS

Grafana является очень удобным инструментом для визуализации и мониторинга разнообразных метрик. Установка её на CentOS будет описана в этой заметке.

вторник, 26 мая 2020 г.

Изменение режима работы бондинга на узле Nutanix AHV

При установке узла Nutanix все доступные сетевые интерфейсы объединяются в один логический. Однако интерфейсы объединяются в режиме active-backup, это означает, что используется только один из интерфейсов, а все остальные будут использованы только тогда, когда выйдет из строя активный интерфейс, но при этом так же будет использоваться только один интерфейс из всех доступных.
Кластер виртуализации Nutanix очень требователен к пропускной способности сети между узлами, поэтому изменим режим работы логического сетевого интерфейса на balance-slb, чтобы одновременно использовались все доступные интерфейсы. Описание режимов работы интерфейсов при использовании бондинга можно прочитать в документации RedHat.

среда, 6 мая 2020 г.

Установка и настройка Jitsi Meet с авторизацией пользователей в Active Directory и гостевым доступом

Необходимость взаимодействовать с коллегами в условиях удалённой работы потребовала оперативно развернуть систему видеоконференций, чтобы заменить очные совещания.
В этой заметке будет описано то, как установить Jitsi Meet - полнофункциональную и абсолютно бесплантую систему для организации ВКС.

четверг, 12 марта 2020 г.

Создание SSH-ключа для подключения к Linux-серверу

Использование SSH-ключей для подключения к удалённому серверу - удобный и безопасный способ авторизации. Тем более, что для его создания и доставки на удалённый сервер нужна всего пара команд.

пятница, 6 марта 2020 г.

Добавление шрифтов в web-клиент Zimbra

Набор встроенных шрифтов в веб-клиенте Zimbra Collaboration OSE весьма скромен. По умолчанию при форматировании текста можно выбрать один из 12 доступных шрифтов. Но это не повод расстраиваться. В этой заметке приведена последовательность действий, позволяющая добавить один из распространённых шрифтов, имеющихся практически в каждой системе.
В данном конкретном примере будем добавлять шрифт Calibri, который используется по-умолчанию в MS Office 2013 и выше.

понедельник, 2 марта 2020 г.

Автоматическое получение и продление wildcard-сертификатов от Let's Encrypt для доменов, размещённых на DNS Яндекс.Коннект

Получение wildcard-сертификатов от удостоверяющего центра Let's Encrypt возможно только при подтверждение владения доменом, путём создания временной TXT записи вида _acme-challenge.oldfag.ru с определённым значением.
Самое простое решение для автоматизации получения сертификатов от Let’s Encrypt - использование Cetrbot или acme.sh.
Мой выбор пал на Certbot. Он имеет уже готовые плагины для работы с некоторыми DNS-провайдерами. К несчастью, он не имеет плагина для работы с DNS Яндекс.Коннект, но возможность использовать свои скрипты исправляет эту ситуацию.

среда, 26 февраля 2020 г.

Увеличение размера lvm-тома без перезагрузки ОС

Иногда случается так, что доступное дисковое пространство заканчивается. В этой заметке будет описан процесс увеличения lvm-тома за счёт нераспределённого пространства на физическом сервере или добавленного пространства на виртуальной машине.
Процесс одинаков для Ubuntu, RHEL/CentOS и скорее всего будет идентичен для любого другого linux-дистрибутива.
Предполагается, что диск, который мы хотим использовать для расширения раздела, - /dev/sda.
Запустим fdisk и приступим к изменению разметки диска

Добавление меток времени в лог OpenVPN

По умолчанию OpenVPN не добавляет метки времени в лог. Чтобы это исправить нужно отредактировать файл службы /lib/systemd/system/openvpn-server@.service, изменив строку запуска

вторник, 25 февраля 2020 г.

Установка mpv на Fedora

Для установки плеера mpv на Fedora 31 потребуется подключить репозиторий RPM Fusion, являющийся самым популярным сторонним репозиторием для Fedora и RHEL/CentOS.
Заглянем в справку и подключим репозиторий, выполнив команду
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
теперь установим непосредственно плеер
sudo dnf install mpv

Список установленных пакетов в CentOS и Ubutnu

Список установленных пакетов можно посмотреть выполнив команды:
для CentOS
yum list installed
для Ubuntu
apt list --installed

среда, 19 февраля 2020 г.

Обновление Ubuntu на почтовом сервере Zimbra c 16.04 LTS на 18.04 LTS

Т.к. срок поддержки Ubuntu 16.04 LTS близится к завершению, то пришло время задуматься об обновлении операционной системы на почтовых серверах под управлением Zimbra Collaboration OSE. Тем более, что начиная с версии 8.8.15 Patch 1 Zimbra полностью поддерживает Ubuntu 18.
Для обновления релиза в Ubuntu используется команда do-release-upgrade. По умолчанию при таком обновлении будут удалены все сторонние пакеты, включая компоненты Zimbra. Чтобы предотвратить подобные катастрофические последствия нужно незначительное вмешательство в штатный процесс обновления.

понедельник, 17 февраля 2020 г.

Установка Remote Server Administration Tools в Windows 10

В Windows 10, начиная с версии 1809, Microsoft убрали возможность установить пакет Remote Server Administration Tools (RSAT) как отдельное обновление. Теперь для администрирования сервисов удалённо нужно либо поставить RSAT для Windows Server 2016, который поставит весь набор без возможности выбора компонентов, либо использовать Powershell для установки только необходимых.

четверг, 13 февраля 2020 г.

Обновление Zimbra Collaboration OSE

Процесс обновления Zimbra Collaboration OSE достаточно прост.
Нужно скачать дистрибутив актуальной версии, запустить установку, дождаться завершения процесса и проверить, что всё работает.
Ниже этот процесс описан немного подробнее.

четверг, 6 февраля 2020 г.

Установка OpenVPN на CentOS

Самым простым способом доступа во внутреннюю сеть предприятия для удалённых сотрудников и сотрудников филиалов является использование vpn.
В этой заметке будет описана настройка сервера OpenVPN с возможностью разграничения доступа подключенных клиентов к определённым сегментам сети. В качестве ОС сервера будет использоваться CentOS 7/8, различия при настройке заключаются только в имени службы и пути, по которому она будет искать конфигурационный файл. Это различие будет отражено при описании соответствующих шагов.

среда, 29 января 2020 г.

Перенос баз данных MS SQL между серверами

Для автоматизации переноса баз данных с одного Microsoft SQL сервера на другой можно использовать скрипт на PowerShell.
Он делает следующее:
  • Подключается к серверу с которого необходимо перенести базу данных и создаёт её резервную копию;
  • Подключается к серверу, на который необходимо перенести базу данных и восстанавливает её из резервной копии, сделанной на предыдущем этапе;
  • Удаляет файл резервной копии.

Экспорт и импорт учётных данных в PowerShell

При использовании PowerShell для автоматизации процессов очень удобным инструментом является снипет подобного вида:
$credentials = @{
    production = Get-Credential -Message 'Please enter production server credentials'
    testing = Get-Credential -Message 'Please enter testing server credentials'
    development = Get-Credential -Message 'Please enter development server credentials'
}
$credentials | Export-Clixml -Path "${env:\userprofile}\passwd.xml"
Он позволяет хранить учётные данные за пределами основного скрипта в зашифрованном виде. Для получения данных сохранённых в файле passwd.xml можно в основном скрипте использовать подобную конструкцию:
$credentials = Import-Clixml -Path "${env:\userprofile}\passwd.xml"
$devUserName = $credentials."development".UserName
$devPassword = $credentials."development".Password
У такого подхода есть только один недостаток, для шифрования паролей используются идентификаторы текущего компьютера и пользователя, что делает невозможным перенос файла с паролями на другой компьютер или передачу его другому пользователю.