Skip to content

Latest commit

 

History

History
299 lines (236 loc) · 18.1 KB

omv.adoc

File metadata and controls

299 lines (236 loc) · 18.1 KB

1. OpenMediaVault

Так вышло, что обещания в спеках подогнать рабочий релиз в 2021q4 не означает, что в конце Декабря - это действительно будет.

1.1. install

Установка делается по мануалу https://openmediavault.readthedocs.io/en/latest/installation/on_debian.html Рабочий вариант для OMV5: добавить их репозитарий и ключи, скачать кастомный скрипт установки и выкинуть из него проверку на Desktop Env. https://github.com/OpenMediaVault-Plugin-Developers/installScript/blob/master/install#L30

Для OMV6 хак не работает, omv-extras встает не корректно, через webUI система крашится и уходит в режим только на чтение. Нужно ставить на deiban server.

Следом можно поставить экстра плагины по маналу https://github.com/OpenMediaVault-Plugin-Developers/installScript/

1.2. конфиги вводное

Есть несколько нюансов:

  • нужно настроить сеть в меню Network, не смотря на то что в дашбордах они вроде бы видны.

  • пользаков стоит создавать не скриптом, а в UI. Самопальные скрипты можно выкинуть.

  • при создании пользователи будут добавляться в группу users сами. Но нужно будет самостоятельно добавить их в группу ssh доступа. Об этом ниже.

  • Какое то время получится жить с dhcp. Но стоит заранее на роутере выбрать красивый статичный ip.

  • PGID=100 будет у встроенной группы users. Что бы узнать PGID новой группы надо в веб интерфесе прожамкать скрытую колонку сделать, аналогично с PUID для пользователей.

1.2.1. конфиги ssh

Cамопальным скриптом конфигурить sshd бесполезно, скрипты UI беспощадно перезатирают. Обязательно нужно добавлять пользаков в группу ssh, что бы подключиться по этому протоколу. Если отключил парольную авторизацию, нужно в редактировании пользаков добавить публичные ключи.

Разумно оставить одного образенного (не в группе судоеров) пользователя с включенным парольным доступом. Как? У сервиса в спец секции Etra options можно прописать

Match User stub
    PasswordAuthentication yes
    X11Forwarding no
Match all

Его пароль можно безопасно палить на телеках для монтирования samba шары с парольным доступом. А если нужно подключиться к консоли сервиса и что-нибудь подтюнить, то подключаешься под stub, а потом переключаешься на нормального пользователя su enot -.

1.2.2. создание точки восстановления

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

По сети вы сможете зайти и восстановить конфиг, потом примонтировать старые устройства. Или новые устройства. Или старые устройства с новыми партициями, а значит с новыми UID.

Так что именно в этот момент подключайтесь по ssh идите в cd /etc/openmediavault и сохраняйте рядом sudo cp config.xml config.xml.initial_setup

Если вы где то накосорезили, то потом по ssh делаете sudo omv-firstaid и выбираете "restore configuration backup"

1.2.3. конфиги wan хостов

Что бы не которые ретрекеры (анонсеры) были доступны, придется покостылить. Подразумевается, что вы знаете актуальные ip адреса и готовы к ситуации, если они сменятся. Если не готовы - пропускаете раздел.

sudo touch /srv/salt/omv/deploy/hosts/20myentries.sls
sudo touch /etc/hosts2

в обработчик кастомных хостов нужно записать sudo vim 20myentries.sls

{% set hosts = salt['cmd.shell']('cat /etc/hosts2') %}
append_custom_hosts:
  file.append:
    - name: "/etc/hosts"
    - text: "{{ hosts }}"

а в свои хосты для добавления sudo vim /etc/hosts2

172.64.199.20 bt.t-ru.org
172.64.198.20 bt2.t-ru.org
172.64.198.20 bt3.t-ru.org
172.64.198.20 bt4.t-ru.org

После нужно применить omv-salt deploy run hosts

1.2.4. конфиги сети

Но помере наращивания функционала, будет видоизменяться сетевые соединения. Помимо докера может захотеться покрутить виртуалочку, по этому сразу стоит настроить сеть на хост-системе в режим бриджа. Тут придется попрощаться с dhcp.

В OMV → Network → Interfaces → Add → "Bridge". В конфигурации моста нужно выбрать в разделе Interfaces чекбоксом только вашу ethernet карту, в моем случае enp3s0. В комментарии стоит указать bridge to eth card enp3s0. В IPv4 нужно указать static метод, в моем случае параметры

  • Addres 192.168.2.10

  • Netmask 255.255.255.0

  • Gateway 192.168.2.1

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

По этому важно в Advanced settings прописать DNS nameserver, под лейблом "DNS server": 192.168.2.1. В противном случае новые репозитарии, такие как docker-ce он даже не сможет найти в интернете.

1.2.5. каталоги

минимальный набор каталогов, которые нужно будет создать из под UI

название где назначение ACL

appdata

{disk_media}/appdata/

хранятся конфиги докер стэков

bender:r+w, docker-adm: r+w, enot:r+w, lisa:r+w, stub:ro

backup_appdata

{disk_ssd}/backup_appdata/

бэкап докер стеков

bender:r+w, docker-adm: r+w, enot:r+w, lisa:r+w, stub:ro

data

{disk_media}/data/

каталог проброски внутрь докер образов, пробрасывается в env’ы

bender:r+w, docker-adm: r+w, enot:r+w, lisa:r+w, stub:ro

torrents

{disk_media}/data/media/torrents

для проброски в minidlna, на случай если отрыгнет плекс или радар

bender:r+w, docker-adm: r+w, enot:r+w, lisa:r+w, stub:ro

youtube

{disk_media}/data/media/ytb

для проброски в minidlna записей из youtube

bender:r+w, docker-adm: r+w, enot:r+w, lisa:r+w, stub:ro

barn

{disk_media}/barn

для smb шары и переброски конфигов и apk между телеками

enot:r+w, users: r+w, enot:r+w, lisa:r+w, stub:ro

blackhole

{disk_media}/yandex/blackhole

для синхронизации музыки проброса в daap приклад

enot:r+w, bender: r+w

music

{disk_media}/yandex/Music

для синхронизации музыки проброса в daap приклад

enot:r+w, bender: r+w

1.2.6. конфиги шары

Надо начинать с конфигов ФС: корректно создать каталоги и права доступа к ним

Из под UI будут такие варианты создания и доступа к каталогам. Немного личных заметок на эту тему

Есть определенные прикол с веб интерфейсом: если диск пустой, и через UI создается структура вида /DEVICE/media/video, то права у нее будут root:root.

Да, можно в GUI настроить ACL, что бы поменять группу у каталога, но изменения будут применены только к оконечному каталогу. А родительский (/DEVICE/media) все еще будет с правами root:root.

симлинки

В проекте настроены 2 симлинки: music и blackhole На omv5 все работало из коробки, а вот на omv6 они заставляют вытереть слезы.

По умолчанию самба считает не безопасным ходить по симлинкам в каталоги, находящиеся вне шары и нужно сделать комбо из параметров allow insecure wide links wide links unix extensions

В Extra options у шары media/ нужно добавить

unix extensions = no
wide links = yes

А Extra options у сервиса - добавить

allow insecure wide links = yes
min receivefile size = 16384
getwd cache = yes

К сожалению это приоткрывает брешь в безопасности: можно сделать симлинк до /etc/passwd и отредактировать его через линк. Что бы нивелировать эту проблему стоит media шару сделать read-only. Повлечет за собой некоторые не удобства с доставкой torrent файлов до qbit, но что делать.

чек лист

После активации самбы стоит проверить версию протокола на сервере

sudo samba --version
cat /etc/samba/smb.conf

и сделать проверочки на win клиенте: dir \\STONE\data а потом из под админа Get-SmbConnection

проверка доступов к шаре: net net view \\stone

примонтирование дисков (не из под админа): net use m: \\stone\data /USER:enot * обрати внимание, что домен указывать не нужно.

если еще не робит, то вот топ проблем с форума, в которые наступил сам.

проблема 1 - нет доступа пользователю

нужно настроить не только ACL на каталог, но и привелегии пользователю (Privileges на каждом каталоге) - проставить галочки на опции чтения и изменения. Они не связаны с правами доступа в каталог на ФС, они выдают права в контексте прав самбы

проблема 2 - сменили пароль пользователю коряво

Или его не установили вообще, потому что пользователь был создан из под debian installer

или пользователю меняли пароль через ssh или как то еще, но не через webUI. Надо было менять через веб морду - тогда еще и самбе пароль поменяет. Самому руками можно сделать через smbpasswd stub

если система сообщает что не может найти такого пользователя Failed to find entry for user stub, хотя он есть в OS, то нужно добавить пользователя в базу cамбы smbpasswd -a stub

В других случаях - проще из под web UI удалить пользователя, а потом создать.

проблема 3 - винда залипла

И не пускает, хотя на смарте X-Plore находит шару и пускает. Нужно на win запустить Credential Manager, удалить все записи напоминающие самбашару и перезапуститься. Перезапуститься важно, у меня без этого залипала.

система взяла и добавила шару

Скорее всего вы при удалении пыли пошевелили шлейфы или села батарейка биоса и теперь у разделов новые UID.

Вариантов не так много: попробовать восстановить в /etc/openmediavault/config.xml разделы <fstab>.<mntent> через omv-firstaid

Если не знаете что там стало в конфигах и после перезагрузки висит 1 не принятое изменение, посмотрите

cd /etc/openmediavault
ls
# config.xml  config.xml.0001  php.ini
diff -c config.xml config.xml.0001
lsblk -f

В моем случае явно видно, что UID из конфигов нигде нет, да и небыло.

*** config.xml  2022-03-09 14:07:25.804882643 +0300
--- config.xml.0001     2022-03-09 14:07:25.804882643 +0300
***************
*** 415,420 ****
--- 415,430 ----
          <usagewarnthreshold>85</usagewarnthreshold>
          <comment>noxMnt</comment>
        </mntent>
+       <mntent>
+         <uuid>79684322-3eac-11ea-a974-63a080abab18</uuid>
+         <fsname>/dev/sda6</fsname>
+         <dir>/</dir>
+         <type>ext4</type>
+         <opts>noatime,nodiratime,errors=remount-ro</opts>
+         <freq>0</freq>
+         <passno>1</passno>
+         <hidden>1</hidden>
+       </mntent>
      </fstab>
      <shares>
        <!--

Не стоит в висящем изменении удалить лишнее, система встанет колом, просто удалите rm config.xml.0001. Потом ребут и отмена висящего изменения.

Если накосорезили, то reboot now не поможет, система переходит в режим read-only System has not been booted with systemd as init system (PID 1). Can’t operate. и перезагрузиться можно только с кнопки. А дальше - иил восстановление из бэкапа конфига или переустановка системы

остались следы после аварийного отключения диска.

Шаги из пердыдущего пункта выполнены, но сервер рапортует на мыло, что не получилось проверить mountpoint. Проверяете uid диска из письма и проверяете: grep -rnw '/etc/openmediavault/config.xml' -e 'b2f9a5d4-ea0f-44d0-9ce9-d72536fbdcb0' - результатов нет grep -rnw '/etc/fstab' -e 'b2f9a5d4-ea0f-44d0-9ce9-d72536fbdcb0' - результаты есть

Скорее всего ситуация возникла поторму что откат изменений не прошел до конца. Нужно в рунчую сделать одну фазу omv-salt deploy run fstab

Если помогло, то ок. Если CPU по чуть чуть утилизируется чем то, то стоит проверить syslog на предмет ошибок

Oct 24 00:16:27 stone monit[1256]: Lookup for '/srv/dev-disk-by-uuid-defeb500-44b5-4d90-90de-5f38c2eb66dd' filesystem failed  -- not found in /proc/self/mounts
Oct 24 00:16:27 stone monit[1256]: Filesystem '/srv/dev-disk-by-uuid-defeb500-44b5-4d90-90de-5f38c2eb66dd' not mounted
Oct 24 00:16:27 stone monit[1256]: 'filesystem_srv_dev-disk-by-uuid-defeb500-44b5-4d90-90de-5f38c2eb66dd' unable to read filesystem '/srv/dev-disk-by-uuid-defeb500-44b5-4d90-90de-5f38c2eb66dd' state

Это значит функции мониторинга куда то запомнили себе наличие удаленой ФС и было неплохо перестроить их настройки.

omv-salt stage run prepare
omv-salt deploy run monit

1.3. reinstall

если конфиги уже не восстановить, то можно просто переустановить весь пакет целиком

apt-get --purge remove openmediavault
rm -rf /etc/openmediavault
apt-get install openmediavault