Acheter un conteneur SAMBA+

Les abonnements aux conteneurs SAMBA+ peuvent être achetés sur https://shop.samba.plus (devise EUR) ou https://usdshop.samba.plus (devise USD). Dans la zone de licence de ton compte d'utilisateur dans la boutique, tu peux voir la clé d'abonnement achetée dont tu as besoin pour récupérer les images de conteneurs SAMBA+ et les scripts nécessaires. Le mot de passe est toujours "sambaplus".

Démarrage avec le conteneur SAMBA+

Tout d'abord, vous avez besoin d'un système exécutant Docker / Podman comme hôte. Passez sur ce système et commencez par y configurer le conteneur SAMBA+.

Ensuite, veuillez télécharger le script wrapper csmb ici:
https://$SUBSCRIPTIONKEY:sambaplus@download.samba.plus/subscriptions/samba-container/csmb

Après cela, les informations d'identification doivent être stockées via

$ chmod u+x csmb
$ sudo ./csmb login --key $SUBSCRIPTIONKEY --password sambaplus

Après cela, réfléchissez à l'endroit où vous souhaitez stocker les données persistantes du conteneur et passez le chemin à l'option csmb "--state-directory". Pour votre commodité, si le répertoire n existe pas, csmb le créera pour vous.

Les données persistantes de Samba, comme les bases de données TDB, seront stockées dans le répertoire d'état. Assurez-vous de vider régulièrement les fichiers TDB et de les ajouter à votre sauvegarde.

Disclaimer

Le logiciel proposé au téléchargement par ce service est un logiciel libre et open source sous licence GNU General Public License (GPL) version 3 ou supérieure. Il est fourni en l'état, sans aucune garantie selon les conditions de la GPL. Pour plus de détails, voir les pages d'accueil des GNU General Public License et Free Software Foundation.

Le chemin d'accès aux partages Samba (option csmb "--shares-directory") sera créé par csmb s'il ne sort pas.

Si vous exécutez plus d'un conteneur, veillez à séparer leurs répertoires d'état!

 

Compte administratif par défaut

csmb va créer un compte utilisateur "csmbadmin" qui peut être utilisé pour administrer le serveur, en particulier les autorisations de fichiers (voir ci-dessous). Le mot de passe du compte est soit tiré de l'option csmb "--csmbadmin-password" soit lu interactivement depuis la ligne de commande lors de la création d'un conteneur.

 

Partage de fichiers et ACLs

Tous les partages seront configurés comme des sous-répertoires du --shares-directory.

Exemple :

lors de la création d'un conteneur avec

un répertoire de partage.

--shares-directory /data/storage/samba/shares
 --shares "share1;share2"

La structure de répertoire résultante est:

host# ls -l /data/storage/samba/shares
total 8
drwxr-xr-x. 2 root root 4096 Jun  1 11:23 share1
drwxr-xr-x. 2 root root 4096 Jun  1 11:23 share2

Dans le conteneur, la config résultante ressemblerait à ceci:

Container# net conf list | tail -10
[share1]
        path = /srv/samba/shares/share1
        guest ok = no
        lecture seule = non

[share2]
        path = /srv/samba/shares/share2
        guest ok = no
        lecture seule = no

Le serveur de fichiers est configuré pour utiliser l'objet "acl_xattr" VFS pour permettre l'utilisation des ACL Windows complètes sur le serveur. Pour configurer les permissions, il est plus pratique de se connecter au serveur de fichiers soit en tant qu'utilisateur "csmbadmin" soit, dans le cas d'un serveur membre, en tant que membre du groupe des administrateurs de domaine, et de configurer les permissions à partir de l'onglet sécurité de l'Explorateur Windows.

 

Serveur autonome

Vous n'avez pas besoin de configurer les dépôts SAMBA+ de SerNet dans votre conteneur, il vous suffit de télécharger "csmb" et d'exécuter la commande suivante:

$ sudo ./csmb create standalone $CONTAINERNAME \
  ; --ståate-directory $STATEDIR \
  ; --shares-directory /path/to/your/shares \
  ; --dns-serveur $DNS \
  ; --listen $IP \
  ; --workgroup $WORKGROUP \
  ; --shares "$SHARE1;$SHARE2" \
  ; --users "$USER1%$PWD;$USER2%$PWD"

 

Serveur de membres

$ sudo ./csmb create member $CONTAINERNAME \
  --state-directory $STATEDIR \
  --shares-directory /path/to/your/shares \
  --dns-serveur $IPDC \
  --listen $IP \
  --workgroup $WORKGROUP \
  --workgroup $WORKGROUP \
  --realm $REALM \
  --shares "$SHARE1;$SHARE2" \
  --join-user "Administrator" \
  --join-user "Administrator" \
  --join-passwd "Passw0rd"

Le mot de passe de jonction sera stocké dans un fichier temporairement, mais le fichier sera supprimé après la jonction pour des raisons de sécurité.

Le répertoire d'état et le répertoire de partages sont des répertoires locaux sur l'hôte qui seront exportés vers le conteneur via un montage bind. Ils sont très importants, car des données persistantes seront stockées ici. Veillez à inclure ces répertoires dans votre sauvegarde (il est judicieux d'arrêter les services samba avant de copier les fichiers tdb).

Une configuration plus poussée peut être effectuée en entrant dans le conteneur avec:

$ sudo ./csmb enter $CONTAINERNAME

et en utilisant la commande Samba'net conf' ensuite.

Ce conteneur n'est pas fait pour exécuter un contrôleur de domaine Active Directory (il y aura probablement bientôt un conteneur dédié aux DC AD). De même, le service d'impression n'est actuellement pas pris en charge.

 

Mise à jour du conteneur

Pour mettre à jour le conteneur incluant Samba, veuillez utiliser la commande csmb "update".

Exemple:

$ sudo ./csmb update standalone $CONTAINERNAME \
  ; --state-directory $STATEDIR \
  ; --shares-directory /path/to/your/shares \
  ; --dns-serveur $DNS \
  ; --listen $IP \
  ; --workgroup $WORKGROUP \
  ; --shares "$SHARE1;$SHARE2" \
  ; --users "$USER1%$PWD;$USER2%$PWD"

Comme cela recrée essentiellement le conteneur, vous devez passer l'ensemble des options utilisées lors de la création du conteneur. L'utilisation du csmb "update" a l'avantage de la facilité d'utilisation car il effectue également les étapes suivantes:

  • arrêter le conteneur existant
  • renommer le conteneur existant en CONTAINERNAME-DATE (où DATE est au format AAAAMMJJ-HHMMSS)
  • Créer le nouveau conteneur
  • Dans le cas où le nouveau conteneur n'est pas entièrement fonctionnel, vous pouvez démarrer l'ancien conteneur en exécutant :

     

$ sudo ./csmb stop CONTAINERNAME
$ sudo ./csmb start CONTAINERNAME-DATE

 

Configuration du réseau

csmb prend en charge les deux façons standard de mettre en place un réseau de conteneurs: NATed et bridged.

NAT

Pour spécifier une IP sur l'hôte exécutant le conteneur, utilisez l'option csmb --listen.

Exemple:

# csmb ... --listen 192.168.1.2

Le runtime du conteneur établira une redirection de port pour le port 445 sur le conteneur. Le conteneur fournira le service uniquement sur l'adresse IP spécifiée.

Bridged

Pour prendre en charge les réseaux pontés, csmb fournit les options --network et --ip pour spécifier le réseau du conteneur auquel il sera attaché et son adresse IP.

Typiquement, vous attacherez une interface réseau dédiée de l'hôte au dispositif de pont associé au réseau de conteneurs.

Pour trouver le pont de réseau hôte associé à un réseau de conteneurs, vous pouvez utiliser la commande 'docker network inspect' pour récupérer l'Id du réseau:

$ sudo docker network inspect NETWORK_NAME | jq '.[0].Id'
"a796598154d6ac14be8818c9abc6002b9cdd91fc5f0352edf6bbb7b418429841"

Le runtime du conteneur utilise cet Id par défaut pour le nom du pont, par exemple:

$ sudo brctl show | grep a796598154d6
br-a796598154d6         8000.0242bd8a10d3       no

Pour attacher une interface hôte au pont, utilisez la commande 'ip link' 

$ sudo ip link set dev HOST_INTERFACE master BRIDGE

Exemple:

$ sudo ip link set dev ens1 master br-a796598154d6

Enfin, vous pouvez définir une IP sur le port de pont de l'hôte

$ sudo ip a add IP/NETMASK dev BRIDGE

Exemple:

$ sudo ip a add 192.168.2.2/24 dev br-a796598154d6

Notez que la configuration réseau résultant des commandes ip ne persiste pas les redémarrages du système. Pour que cette configuration soit persistante, veuillez consulter la documentation réseau de votre système.

 

Variables d'environnement

Si vous ne voulez pas utiliser le script "csmb", vous pouvez bien sûr utiliser le conteneur simple en définissant les variables d'environnement suivantes selon les besoins:

Required:
SAMBA_SERVERNAME ... Le nom du serveur
SAMBA_DNSSERVER ... Le serveur DNS à utiliser à l'intérieur du conteneur

Pour un serveur autonome:
SAMBA_DOMAIN  ... Le groupe de travail Windows pour le conteneur

Pour le serveur membre AD:
SAMBA_WORKGROUP ... Le groupe de travail Windows pour le conteneur
.SAMBA_REALM ... Le domaine Active Directory
SAMBA_JOIN_USER ... Le nom de l'utilisateur utilisé pour rejoindre le domaine

Le mot de passe de jointure est lu à partir du fichier /var/lib/samba/join.pass à l'intérieur du conteneur. Le fichier de mot de passe est supprimé après la jointure.

Optionnel:
SAMBA_SHARES ... Liste des parts à provisionner, séparées par des " ;",
                   eg SAMBA_SHARES="share1;share2"
SAMBA_USERS ... Liste des utilisateurs à provisionner, séparés par des " ;",
                   eg SAMBA_USERS="user1%pass1;user2%pass2"

 

Contact us
Contact
Deutsch English Français