Objectius

Sota un servidor proxmox arrancar una màquina virtual LXC amb debian bookworm. Després voldré instal·lar plex, samba i configurar-ho com a TimeMachine pel meu Mac

LXC (Linux Containers) és una tecnologia de virtualizació en el nivell de sistema operatiu (SO) per a Linux. OpenVZ permet que un servidor físic executi múltiples instàncies de sistemes operatius aïllats, coneguts com a Servidors Privats Virtuals (SPV o VPS en anglès) o Entorns Virtuals (EV).

Prepara la màquina virtual

Dono per fet que disposes de proxmox instal·lat i operatiu, que hi has posat arrancat una LXC amb debian. Sinó, mira aquí 🚀.

Instal·la Plex

Entra a la màquina virtual i com administrador, root, executa quatre coses:

apt upgrade -y
apt install curl gnupg -y
curl -sS https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | tee /usr/share/keyrings/plex.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/plex.gpg] https://downloads.plex.tv/repo/deb public main" > /etc/apt/sources.list.d/plexmediaserver.list
apt update && apt install plexmediaserver -y
systemctl status plexmediaserver

Font 🚀

Compartir ZFS amb LXC

1. Màquina Proxmox

zfs create HD-ZFS/apps
zfs create HD-ZFS/media_root
zfs create HD-ZFS/timemachine
groupadd -g 110000 nas_shares
useradd nas -u 101000 -g 110000 -m -s /bin/bash
zfs set mountpoint=/srv/zfs/apps HD-ZFS/apps
zfs set mountpoint=/srv/zfs/media_root HD-ZFS/media_root
zfs set mountpoint=/srv/zfs/timemachine HD-ZFS/timemachine
chown -R nas:nas_shares /srv/zfs/apps
chown -R nas:nas_shares /srv/zfs/media_root
chown -R nas:nas_shares /srv/zfs/timemachine

2. Màquina LXC

root@plex:~# id angel
uid=1000(angel) gid=1000(angel) groups=1000(angel),100(users)
root@plex:~# groupadd -g 10000 nas_shares
root@plex:~# usermod -a -G nas_shares angel
root@plex:~# id angel
uid=1000(angel) gid=1000(angel) groups=1000(angel),100(users),10000(nas_shares)
root@plex:~# halt
root@plex:~# Connection closed by remote host.

3. Màquina Proxmox

root@cloud:~# pct set 102 -mp0 /srv/zfs/media_root,mp=/mnt/media_root
root@cloud:~# pct set 102 -mp1 /srv/zfs/apps,mp=/mnt/app_config
root@cloud:~# pct set 102 -mp2 /srv/zfs/timemachine,mp=/mnt/timemachine

Ho escriu a la configuració de la màquina LXC que em creat, en el meu cas/etc/pve/lxc/102.conf

Compartir SMB amb cockpit 🚀

Màquina LXC

root@plex:~# usermod -a -G nas_shares plex 
root@plex:~# apt update && apt dist-upgrade -y
root@plex:~# apt install cockpit --no-install-recommends
root@plex:~# wget https://github.com/45Drives/cockpit-file-sharing/releases/download/v3.3.7/cockpit-file-sharing_3.3.7-1focal_all.deb
root@plex:~# wget https://github.com/45Drives/cockpit-identities/releases/download/v0.1.12/cockpit-identities_0.1.12-1focal_all.deb
apt install ./*.deb -y
root@plex:~# rm *.deb
zfs set  atime=off dnodesize=auto aclinherit=passthrough acltype=posixacl xattr=sa exec=off devices=off setuid=off canmount=on HD-ZFS/timemachine

Instal·lo samba i afegeixo un usuari

apt update
apt install -y samba
systemctl status smbd
adduser angel
smbpasswd -a angel
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

mkdir -p /mnt/timemachine
mkdir -p /mnt/apps

systemctl restart smbd

Més detalls 🚀

Edita samba Amb samba-regedit

Per acabar-ho d’adobar hi ha samba-regedit, configuració de samaba a la linia de comandament. Pot ser interessant cockpit-file-sharing i cockpit-identities de 45Drive

nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = %h server
#======================= Share Definitions =======================
include = registry

Es veu així però caldrà editar amb samba-regedit. Un cop modificat reïnicio samba

systemctl restart smbd

Edita samba directament, sense samba-regedit

També tenim configuració manual:

nano /etc/samba/smb.conf
[global]
  registry shares = Yes
  server string = %h server
  fruit:zero_file_id = yes
  fruit:encoding = native
  fruit:delete_empty_adfiles = yes
  fruit:wipe_intentionally_left_blank_rfork = yes
  fruit:veto_appledouble = no
  fruit:posix_rename = yes
  fruit:model = MacSamba
  fruit:aapl = yes
  fruit:nfs_aces = no
  fruit:metadata = stream
  idmap config * : backend = tdb
  vfs objects = catia fruit streams_xattr

[Aplicacions]
  force group = nas_shares
  path = /mnt/apps
  read only = No
  valid users = @nas_shares angel eudald nobody
  fruit:nfs_aces = no
  fruit:zero_file_id = yes
  fruit:metadata = stream
  fruit:encoding = native

[TimeMachine]
  browseable = No
  comment = Time Machine
  inherit permissions = Yes
  map acl inherit = Yes
  path = /mnt/timemachine
  read only = No
  vfs objects = acl_xattr catia fruit streams_xattr
  fruit:nfs_aces = no
  fruit:time machine = yes
  fruit:zero_file_id = yes
  fruit:metadata = stream
  fruit:encoding = native

Avahi Daemon

apt-get install -y avahi-daemon
nano /etc/avahi/services/smb.service
systemctl status avahi-daemon.service
systemctl restart avahi-daemon.service

Editem el servei de avahi nano /etc/avahi/services/smb.service

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_smb._tcp</type>
    <port>445</port>
  </service>
  <service>
    <type>_adisk._tcp</type>
    <port>0</port>
    <txt-record>dk0=adVN=TimeMachine,adVF=0x82</txt-record>
    <txt-record>sys=adVF=0x100</txt-record>
  </service>
  <service>
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=TimeCapsule</txt-record>
  </service>
</service-group>

Desactivem ipv6 nano /etc/avahi/avahi-daemon.conf amb use-ipv6=no

Compartit: public

nano /etc/samba/smb.conf
[share]
    comment = Debian File Server Share
    path = /srv/samba/share
    browsable = yes
    guest ok = yes
    read only = no
    create mask = 0755
    
sudo mkdir -p /srv/samba/share
sudo chown nobody:nogroup /srv/samba/share/

Compartit: homes

nano /etc/samba/smb.conf
[homes]
comment = Home Directories
browseable = no
# next parameter to 'no' if you want to be able to write to them.
read only = no
create mask = 0700
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0775
valid users = %S

Com crear el disk tipus sparsebunde amb Time Machine

Aquests són els passos per crear una destinació de còpia de seguretat de Time Machine mitjançant una imatge sparse, que pot ser útil quan la unitat ja s’està utilitzant per fer una còpia de seguretat d’altres Mac:

  1. Obriu la Utilitat de disc al vostre Mac. El podeu trobar a la carpeta Aplicacions/Utilitats Applications/Utilities folder.
  2. A la Utilitat de disc, aneu al menú “Arxiu” i seleccioneu “Nova Imatge” > “Imatge en blanc…“
  3. Al diàleg que apareix, especifiqueu la configuració de la imatge sparse. Podeu triar la mida, el format i les opcions de xifratge desitjades en funció de les vostres preferències. Penseu en la “mida desitjada” com la mida total d’aquesta “unitat virtual”, si voleu.
  4. Assegureu-vos de seleccionar “Imatge de disc dimàmica” (“sparse bundle disk image”) com a format d’imatge. Aquest format està dissenyat específicament per a còpies de seguretat de Time Machine i es recomana per a propòsits d’emmagatzematge i còpies de seguretat eficients.
  5. El format hauria de ser APFS si el macOS és High Sierra o posterior.
  6. La partició hauria de ser Partició única - Mapa de particions GUID (Single partition - GUID Partition Map).
  7. Trieu una ubicació on voleu desar la imatge sparse. En aquest cas seria la teva unitat externa.
  8. El xifratge és opcional
  9. Proporcioneu un nom per a la imatge sparse, com ara “TimeMachineBackup” o qualsevol altre nom descriptiu que preferiu.
  10. Feu clic al botó “Desar” per crear la imatge sparse. Trobareu un fitxer d’imatge de disc dispers “TimeMachineBackup.sparsebunde” desat a la vostra unitat externa.
  11. Un cop desat, feu doble clic al fitxer i es muntarà al vostre escriptori
  12. Utilitzeu el “spotlight” per llançar “Terminal”
  13. Escriu sudo tmutil setdestination (observeu l’espai addicional)
  14. Al Finder, navegueu fins al fitxer d’imatge .sparsebundle que heu desat al pas 10 (no el disc muntat a l’escriptori).
  15. Arrossegueu-lo i deixeu-lo anar a la finestra del terminal i premeu Intro Introduïu la vostra contrasenya d’usuari quan se us demani. Nota: per disseny, a mesura que escriviu la contrasenya, no hi ha cap comentari: el teclat funciona
    sudo tmutil setdestination /Volumes/macbook 
    
  16. El disc muntat assumeix la icona del disc Time Machine
  17. Aneu a Configuració del sistema de Time Machine, feu clic amb el botó dret i trieu una còpia de seguretat ara.

La Imatge de disc muntada, ara té una icona de Time Machine després d’emetre l’ordre del terminal. Còpia de seguretat en curs. La imatge arribarà a un màxim de 500 GB tal com ha predefinit DiskUtility en crear, però ocuparà tant d’espai com emmagatzema.

No us oblideu d’establir la freqüència de les vostres còpies de seguretat, ja que aquest procés sembla establir les còpies de seguretat a una freqüència manual que requereix que l’usuari iniciï la còpia de seguretat. Utilitzeu el botó Opcions per definir una freqüència de còpia de seguretat horària, diària o setmanal.

Font 🚀 Com crear el disc TM 🚀