Сетевой дневник одного программиста

Персональный блог Константина Огородова

Cockpit, Samba и ZFS

Приветствую вас, «мои маленькие любители этого интересного». Сегодня будем патчить KDE под FreeBSD устанавливать Linux.
Экспериментировать лучше всего на виртуальной машине, поэтому ставим VirtualBox, если ещё нету.
Далее качаем образ Ubuntu Server.

Создание виртуальной машины:

  • Создать машину и выбрать образ ISO.
  • Отключил автоматическую установку
  • 2 ядра + 4 Гб памяти
  • включил EFI
  • диск на 8 Гб
  • Готово
  • Настроить -> Сеть -> Адаптер 1 -> Тип подключения -> Сетевой мост.
    Убедиться, что в имени выбран рабочий сетевой интерфейс.
  • Запуск.

Установка Ubuntu Server:

  • язык — выбрал Русский, но не принципиально.
  • обновился на новый установщик.
  • клавиатура — без изменений.
  • Ubuntu Server.
  • дополнительные драйвера — не надо, т.к. виртуалка.
  • в настройках сети, если всё хорошо, должен быть получен адрес от маршрутизатора.
  • proxy — пусто.
  • выбор зеркала — без изменений.
  • диск — без изменений.
  • имя пользователя — чё-нить попроще, типа qwe и такой же пароль.
  • имя сервера — ubuntu_test_1 или аналогичное.
  • Ubuntu Pro — skip for now.
  • Open SSH — install.
  • Featured server snaps — ничего дополнительного не надо.
  • дождаться окончания установки…
  • reboot.
  • после загрузки ввести логин и пароль. Далее найти в System Information и запомнить \ записать IP-адрес сервера.
  • Набрать в терминале (power shell \ командная строка) команду:
    ssh <ip_адрес_сервера_ubuntu> -l <имя_пользователя> + Enter
    сообщение, что новый сервер — yes.
    ввести пароль и вуаля — мы на сервере.

Обновление системы:

Последовательно ввести команды в терминале:

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo reboot

Временная зона сервера:

  • timedatectl — посмотреть текущую временную зону.
  • timedatectl list-timezones — посмотреть доступные временные зоны (Ctrl+c — выход)
  • sudo timedatectl set-timezone <временная_зона> — установить. Например:
    sudo timedatectl set-timezone Asia/Tomsk

Передача файлов между сервером и клиентом.

Манипуляции с файлами на сервере

  • Midnight Commander — двухпанельный файловый менеджер в терминале.
    • установка sudo apt -y install mc
    • запуск mc или sudo mc, если нужен root.

ZFS

Samba

Cockpit

Отслеживать состояние и выполнять некоторые операции всё же удобней через графический интерфейс, особенно если у вас нет свитера, бороды и 10-ти летнего стажа администрирования linux-подобных систем через терминал. Кроме того у cockpit есть дополнение для работы с ZFS, которая мне досталась от TrueNas Scale — замечательного сетевого хранилища для домохозяек и тех, кто не готов примкнуть к отряду красноглазых ботаников. Но поскольку я из последних, то готовое решение мне не подходит. Нужен конструктор. Поэтому Cockpit.

. /etc/os-releasesudo apt install -t ${VERSION_CODENAME}-backports cockpit
  • после в браузере в строке адреса набрать <ip_адрес_сервера_ubuntu>:9090
    из-за самоподписного сертификата будет предупреждение безопасности — принять и продолжить
  • авторизоваться
  • включить режим администратора
  • проверить обновления программного обеспечения на одноимённой вкладке.
    Если ошибка «Cannot refresh cache whilst offline», то решение тут:
    • sudo nano /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
    • скопировать в буффер текст и вставить в nano щёлкнув правой клавишей мыши:
      [keyfile]
      unmanaged-devices=none
    • Ctrl+s , Ctrl+x
    • sudo nmcli con add type dummy con-name fake ifname fake0 ip4 1.2.3.4/24 gw4 1.2.3.1
  • sudo reboot

Дополнения Cockpit

Списочек с оф. сайта. Наиболее интересны от 45Drives, поэтому добавим их репозиторий с пакетами:
curl -sSL https://repo.45drives.com/setup | sudo bash
sudo apt update

Далее по списку:

  • Cockpit Identities — управление пользователями и группами.
    • Установка
      sudo apt install cockpit-identities
  • cockpit-file-sharing — управление ресурсами общего доступа по протоколам SMB и NFS.
    • Установка
      sudo apt install cockpit-file-sharing
  • Cockpit ZFS Manager — управление ZFS
    • Установка № 1
      sudo apt install cockpit-zfs-manager
      Этот вариант был обнаружен опытным путём.
      Помимо расширения будет также установлена служба ZnapZend — ZFS Backup System, которая будет останавливаться по ошибке.
    • Установка № 2
      git clone https://github.com/45drives/cockpit-zfs-manager.git
      sudo cp -r cockpit-zfs-manager/zfs /usr/share/cockpit
      Это вариант с оф. сайта. Как видно по командам тут клонируется репозиторий с github и затем каталог zfs копируется в каталог установки cockpit. Службы не будет. Моё предпочтение.
    • Редактирование файла конфигурации Samba (не уверен что надо, но пусть будет)
      sudo nano /etc/samba/smb.conf
      Вставить в секцию [global] следующие строки:
      shadow: snapdir = .zfs/snapshot
      shadow: sort = desc
      shadow: format = %Y.%m.%d-%H.%M.%S
      shadow: localtime = yes
      vfs objects = acl_xattr shadow_copy2

Создание ресурсов общего доступа.

  • Создание и подключение виртуального ZFS диска.
    • Погасить машину (sudo poweroff).
    • Настроить -> Носители -> Контроллер SATA -> Добавить жёсткий диск -> Создать
    • Включить машину.
    • на вкладке «Хранилище» Сockpit появится новый диск sdb
  • Создать пул (pool = объединение) и наборы данных (dataset)
    • на вкладке ZFS -> Create Storage Pool -> выбрать единственно доступный sdb и прописать имя (например zfs_test, tank, hdd, ssd и т.п.).
    • там же раскрыть только что созданный пул -> Create filesystem. Имя произвольно, например inbox для входящих файлов.
    • создать ещё один набор данных с именем media (произвольно, опять таки).
  • Создание пользователей.
    Изначально я планировал использовать анонимный доступ — этого достаточно для домашней сети, и при условии, что только 1 каталог будет с правами записи, а всё остальное — только на чтение. Однако Microsoft отключила доступ гостевой учётной записи к удалённому серверу. Поэтому решено было создать спец. пользователя для этих целей с простым общедоступным паролем.
    • Вкладка Identities
    • Groups -> +
    • отдельную группу для каждого ресурса, например _inbox_users и _media_users. Префикс, чтобы группы были вначале списка.
    • создать пользователя anon (сокращение от Anonymous) и добавить его в обе эти группы. Пароль — GUID (абракадабра). Без возможности войти (Login Shell — No login).
    • Кнопочка Set Samba Password и туда одноимённый пароль.
  • Публикация ресурсов
    • Вкладка File Sharing -> Share Configuration -> +
    • имя media, путь /zfs_test/media, Windows ACLs, Edit Permissions -> выбрать группу и нужные разрешения, Apply.
    • аналогично для inbox.

Тестирование

  • В проводнике в строке адреса вбить 2 обратных слеша (\\) а затем IP-адрес сервера.
  • авторизоваться.

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

Cockpit, Samba и ZFS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх