Arborescence des pages

Vous regardez une version antérieure (v. /wiki/display/ES/Mise+en+place+du+protocole+ActivityPub) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

Nous appellerons dans la suite de cette documentation, serveur frontal le serveur où la partie web serveur est installée et serveur encodage le serveur où est déporté la tache ActivityPub


Activation sur le serveur frontal :

Rajouter la configuration Celery/Redis dans le fichier settings_local.py

(django_pod) pod@pod:/usr/local/django_projects/podv3$ nano pod/custom/settings_local.py


# Configuration ActivityPub sur le frontal
USE_ACTIVITYPUB = True
ACTIVITYPUB_CELERY_BROKER_URL = "redis://127.0.0.1:6379/7" # on utilise la db 7 comme espace file d'attente sur redis

with open("pod/activitypub/ap.key") as fd:
    ACTIVITYPUB_PRIVATE_KEY = fd.read()

with open("pod/activitypub/ap.pub") as fd:
    ACTIVITYPUB_PUBLIC_KEY = fd.read() 

Installation sur le serveur d’encodage :

Il faut installer Pod sans réinitialiser la base et sans nginx/uwsgi/Elasticsearch. Vous pouvez suivre la doc Installation de la plateforme Pod.

Rajouter la configuration de tout ça dans le fichier de configuration

Il faut maintenant dire au serveur d’encodage :

  • Que l’on souhaite utiliser CELERY
  • Donner l’adresse du serveur front de CELERY BROKER
(django_pod) pod@pod-encodage:/usr/local/django_projects/podv3$ nano pod/custom/settings_local.py

 

# Configuration ActivityPub sur le frontal
USE_ACTIVITYPUB = True
ACTIVITYPUB_CELERY_BROKER_URL = "redis://127.0.0.1:6379/7" # on utilise la db 7 comme espace file d'attente sur redis

with open("pod/activitypub/ap.key") as fd:
    ACTIVITYPUB_PRIVATE_KEY = fd.read()

with open("pod/activitypub/ap.pub") as fd:
    ACTIVITYPUB_PUBLIC_KEY = fd.read() 

Activer Celery sur le serveur d'encodage 

Mettre le contenu de https://raw.githubusercontent.com/celery/celery/main/extra/generic-init.d/celeryd dans /etc/init.d/celeryd, et ajouter la ligne suivante :
export DJANGO_SETTINGS_MODULE="pod.settings"

(django_pod) pod@pod-enc:~/django_projects/podv3$ sudo nano /etc/init.d/celeryd-activitypub 
(django_pod) pod@pod-enc:~/django_projects/podv3$ sudo chmod u+x /etc/init.d/celeryd-activitypub

Créer le fichier default associé :

(django_pod) pod@pod-enc:/usr/local/django_projects/podv3$ sudo nano /etc/default/celeryd-activitypub
CELERYD_NODES="worker-activitypub"                                     # Nom du/des worker(s). Ajoutez autant de workers que de tache à executer en parallele.
CELERY_BIN="/home/pod/.virtualenvs/django_pod/bin/celery"              # répertoire source de celery
CELERY_APP="pod.activitypub.tasks"                                     # application où se situe celery
CELERYD_CHDIR="/usr/local/django_projects/podv3"                       # répertoire du projet Pod (où se trouve manage.py)
CELERYD_OPTS="--time-limit=86400 --concurrency=1 --max-tasks-per-child=1  --prefetch-multiplier=1" # options à appliquer en plus sur le comportement du/des worker(s)
CELERYD_LOG_FILE="/var/log/celery/%N.log"                              # fichier log
CELERYD_PID_FILE="/var/run/celery/%N.pid"                              # fichier pid
CELERYD_USER="pod"                                                     # utilisateur système utilisant celery
CELERYD_GROUP="pod"                                                    # groupe système utilisant celery
CELERY_CREATE_DIRS=1                                                   # si celery dispose du droit de création de dossiers
CELERYD_LOG_LEVEL="INFO"                                               # niveau d'information qui seront inscrit dans les logs

Démarrer Celeryd

(django_pod) pod@pod-enc:~/django_projects/podv3$ sudo /etc/init.d/celeryd-activitypub start

Pour vérifier si Celery fonctionne bien :

celery -A pod.activitypub.tasks -l INFO -Q activitypub --concurrency 1 -n activitypub
  • Aucune étiquette