Debian 11 – Configurer S3 Object dans CEPH

Debian 11 – Configurer S3 Object dans CEPH

Le support S3 dans Ceph est une excellente solution car il permet d’exploiter le stockage objet hautement évolutif et tolérant aux pannes de Ceph via une interface compatible avec AWS S3. Cela offre une flexibilité exceptionnelle pour les applications modernes qui nécessitent une gestion efficace des données non structurées. De plus, il permet de créer des environnements hybrides ou multi-cloud en intégrant des workloads cloud-natifs à des infrastructures locales, tout en bénéficiant de coûts optimisés et d’une gestion simplifiée.

Prérequis :

  • 1 VM debian 11 – radosdw : 10.10.70.24
  • Autoriser la connexion root en ssh

Étape 1 : copiez la clé publique et installez radosgw

  • Connectez vous en ssh en root sur node01
ssh-copy-id radosgw
ssh radosgw "apt -y install radosgw"

Étape 2 : éditez le fichier de configuration /etc/ceph/ceph.conf

nano /etc/ceph/ceph.conf

[client.rgw.radosgw]

host = 10.10.70.24
rgw frontends = "civetweb port=8080"
rgw dns name = radosgw

Étape 2 : transférez les fichiers :

scp /etc/ceph/ceph.conf radosgw:/etc/ceph/ 
scp /etc/ceph/ceph.client.admin.keyring radosgw:/etc/ceph/ 

Étape 3 : configurez RADOSGW :

ssh radosgw \
"mkdir -p /var/lib/ceph/radosgw/ceph-rgw.radosgw; \
ceph auth get-or-create client.rgw.radosgw osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/ceph-rgw.radosgw/keyring; \
chown ceph. /etc/ceph/ceph.*; \
chown -R ceph. /var/lib/ceph/radosgw; \
systemctl enable --now ceph-radosgw@rgw.radosgw"

Étape 4 : vérifiez le statut :

curl radosgw:8080

Étape 5 : créez un utilisateur pour utiliser le stockage S3.

radosgw-admin user create --uid=s3user --display-name="S3 User" --email=adminuser@s3gw.fr
  • Affichez les utilisateurs :
radosgw-admin user list
radosgw-admin user info --uid=s3user

Étape 6 : testez la connexions au S3 avec un script

nano s3_object.py

import sys
import boto3
from botocore.config import Config

# initiation de la connexion
session = boto3.session.Session(
    aws_access_key_id = '3TBY610STSAFYRQXELY4',
    aws_secret_access_key = 'PyweWWdiIJs9nFdz3YsYkw20aNWxTKSv3SdPTTpI'
)

# connexion au S3
s3client = session.client(
    's3',
    endpoint_url = 'http://10.10.70.24:8080',
    config = Config()
)

# donnez un nom au bucket
bucket = s3client.create_bucket(Bucket = 'nom_de_bucket')
python3 s3_object.py

Et voilà ! votre Ceph S3 Object est fonctionnel !

Mais ! dans le dashboard, si vous cliquez sur object gateway il y a une erreur 403… c’est une erreur de permission…

Reprenez la commande que l’on a tapé juste avant le script :

  • La premision du dashboard est : « system »: « true », hors, aucune ligne ne correspond à ça…
  • Voici comment faire pour y remédier : (pour bien comprendre voyons ce que l’on a fait tout à l’heure).
ceph dashboard get-rgw-api-access-key

Cette commande nous permet de voir qu’il y a bien un utilisateur configuré pour le dashboard !

Maintenant, configuré le dashboard pour le S3 :

  • Créez 2 fichiers, copiez-collez les accès respectifs à chaque fichier et ajoutez le chemin aux commandes.
nano access-key
nano secret-key

ceph dashboard set-rgw-api-access-key -i /root/access-key   
ceph dashboard set-rgw-api-secret-key -i /root/secret-key

Une fois fait, redémarrez le dashboard.

ceph mgr module disable dashboard
ceph mgr module enable dashboard

Ajoutez la permission à l’utilisateur :

radosgw-admin user modify --uid=username --system

Et enfin, cliquez de nouveau sur : Object gateway

  • Voici la liste des DEAMON
  • Voici la liste des utilisateurs S3
  • Voici la liste des buckets

Et voilà ! vous savez configurez un stockage S3 Object !

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *