| 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 |
Image Added
| Astuce |
|---|
Rabbitmq était utilisé comme gestion de file d'attente, il est remplacé maintenant par Redis |
- 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 |
|---|
|
(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 |
|---|
|
(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 |
|---|
|
# 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 |
...
| Bloc de code |
|---|
|
(django_pod) pod@pod-encodage:/usr/local/django_projects/podv3$ vim pod/custom/settings_local.py |
...
| Bloc de code |
|---|
|
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 |
...
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 |
|---|
|
(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 |
...