esup-pod

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.


Astuce

Nous appelerons 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é l'encodage

Schéma de principe de fonctionnement :

Image Added

Astuce

Rabbitmq était utilisé comme gestion de file d'attente, il est remplacé maintenant par Redis

Pré-requis :

  • Il faut que votre répertoire ~/django_projects/podv3/pod/media soit partagé entre vos serveurs (montage NFS par exemple)
  • Il faut utiliser une BD Mysql/MariaDB pour qu'elle soit partageable entre les serveurs Pod frontaux et encodages
  • Il faut utiliser sur les serveurs d'encodage Elasticsearch installé sur le serveur frontal

...

Bloc de code
languagebash
(django_pod) pod@pod:~/django_projects/podv3$ sudo apt-get purge ffmpeg ffmpegthumbnailer imagemagick

Il faut installer RabbitMQ :On peut utiliser le même Redis que pour la gestion du cache du frontal. Toutefois, si vous souhaitez continuer à utiliser RabbitMQ, il faut l'installer.

Bloc de code
languagebash
(django_pod) pod@pod:~/django_projects/podv3$ sudo apt-get install rabbitmq-server
(django_pod) pod@pod:~/django_projects/podv3$ sudo rabbitmqctl add_user pod *mdp*
(django_pod) pod@pod:~/django_projects/podv3$ sudo rabbitmqctl set_user_tags pod administrator
(django_pod) pod@pod:~/django_projects/podv3$ sudo rabbitmqctl set_user_tags guest
(django_pod) pod@pod:~/django_projects/podv3$ sudo rabbitmqctl add_vhost rabbitpod
(django_pod) pod@pod:~/django_projects/podv3$ sudo rabbitmqctl set_permissions -p rabbitpod pod ".*" ".*" ".*"

...

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

...

Bloc de code
languagepy
# Configuration Celery sur le frontal

CELERY_TO_ENCODE = True # Active encode
# Si RabbitMQ
CELERY_BROKER_URL = "amqp://pod:mdp@localhost/rabbitpod" # Define a broker
# Si Redis
CELERY_BROKER_URL = "redis://redis:6379/5" # on utilise la db numéro 5 

Installation sur le serveur d’encodage :

...

Bloc de code
languagebash
(django_pod) pod@pod-encodage:/usr/local/django_projects/podv3$ vim pod/custom/settings_local.py

...

Bloc de code
languagepy
CELERY_TO_ENCODE = True # Active encode
# si RabbitMQ : CELERY_BROKER_URL = "amqp://pod:mdp@ip.serveur.frontal/rabbitpod" # Definit le message broker.
# si REDIS : CELERY_BROKER_URL = "redis://redis:6379/5" # on utilise la db numéro 5
CELERY_TASK_ACKS_LATE=True # permet de ne traiter que une tache à la fois
TIME_ZONE = 'Europe/Paris'
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name', 'USER': 'user_anme', 'PASSWORD': 'password', 'HOST': 'mysql_host_ip', 'PORT': '3306', 'OPTIONS': { 'init_command': "SET storage_engine=INNODB, sql_mode='STRICT_TRANS_TABLES', innodb_strict_mode=1", }, } }
ES_URL = ['http://elastic.domaine.fr:9200/']
EMAIL_HOST = 'smtp.domaine.fr'
EMAIL_PORT = 25
DEFAULT_FROM_EMAIL = 'noreply@pod.domaine.fr'
SERVER_EMAIL = 'noreply@pod.domaine.fr'
ADMINS = ( ('Bob', 'bob@domaine.fr'), )
LANGUAGES = (
    ('fr', 'Français'),
    ('en', 'English')
)
MODELTRANSLATION_FALLBACK_LANGUAGES = ('fr', 'en')
USE_PODFILE = True 

...

Activer Celery sur le serveur d'encodage 

Mettre le contenu de https://raw.githubusercontent.com/celery/celery/4.3main/extra/generic-init.d/celeryd dans /etc/init.d/celeryd

Bloc de code
languagebash
(django_pod) pod@pod-enc:~/django_projects/podv3$ sudo vim /etc/init.d/celeryd 
(django_pod) pod@pod-enc:~/django_projects/podv3$ sudo chmod u+x /etc/init.d/celeryd

...