...
Bloc de code |
---|
(django_pod) pod@Pod:~/django_projects/podv3$ sudo pip3 install uwsgi |
...
Dupliquer
...
le
...
fichier
...
modèle
...
et
...
éditer
...
le
...
pour
...
personnaliser
...
les
...
paramètres
...
:
Bloc de code |
---|
(django_pod) pod@Pod:~/django_projects/podv3$ cp pod_uwsgi.ini pod/custom/. (django_pod) pod@Pod:~/django_projects/podv3$ vim pod/custom/pod_uwsgi.ini |
...
(django_ |
...
pod) pod@Pod:~/django_projects/ |
...
podv3$ sudo uwsgi --ini pod/custom/pod_uwsgi.ini --enable-threads --daemonize /usr/local/django_projects/podv3/pod/log/uwsgi-pod.log --uid pod --gid www-data --pidfile /tmp/pod.pid ... [uWSGI] getting INI configuration from pod/custom/pod_uwsgi.ini |
...
(django_pod) pod@Pod:~/django_projects/ |
...
podv3$ |
...
Pour lancer le service UWSGI au démarrage de la machine :
...
Créer un fichier uwsgi-pod.service
Bloc de code |
---|
(django_pod) pod@Pod:~ |
...
/django_projects/ |
...
podv3$ sudo vim /etc/systemd/system/uwsgi-pod.service |
...
Y ajouter :
Bloc de code |
---|
[Unit] Description=Pod uWSGI app After=syslog.target [Service] ExecStart=/usr/local/bin/uwsgi --ini /usr/local/django_projects/podv3/pod/custom/pod_uwsgi.ini \ --enable-threads \ --pidfile /tmp/pod.pid ExecStop=/usr/local/bin/uwsgi --stop /tmp/pod.pid User=pod Group=www-data Restart=on-failure KillSignal=SIGQUIT Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target |
...
Il faut Ensuite activer le service
...
Bloc de code |
---|
(django_pod) pod@Pod:~ |
...
/django_projects/ |
...
podv3$ sudo systemctl enable uwsgi-pod |
...
Et le lancer ou l'arréter :
...
Bloc de code |
---|
...
(django_pod) pod@Pod:~/django_projects/ |
...
podv3$ sudo systemctl stop uwsgi-pod |
...
(django_pod) pod@Pod:~/django_projects/ |
...
podv3$ sudo systemctl restart uwsgi-pod |
...
...
Avertissement |
---|
...
(django_pod) pod@pod:~$ python manage.py collectstatic
Optionnel : Serveur FTP (enregistreur)
Lors de l'installation de Pod à l'unviersité de Lille, les fichiers vidéos sont stockés sur une partition montée sur "/data". Pour cela, le répertoire "media", qui contient les fichiers "utilisateurs" est créé sur "/data/media" en paramétrant la variable MEDIA_ROOT dans le fichier de configuration. De ce fait, pour des raisons de cohérence, le répertoire du serveur FTP est placé dans "/data/ftp-pod". Au niveau du logiciel, nous proposons d'utiliser vsftpd.
Voici le détail de son installation :
(django_pod) pod@pod:/data$ INSTALLDIR=/data
(django_pod) pod@pod:/data$ NOMFTPUSER="ftpuser"
(django_pod) pod@pod:/data$ PASSFTPUSER="*******"
(django_pod) pod@pod:/data$ sudo mkdir $INSTALLDIR/ftp-pod
(django_pod) pod@pod:/data$ sudo useradd -m -d $INSTALLDIR/ftp-pod/ftp $NOMFTPUSER
(django_pod) pod@pod:/data$ sudo echo "$NOMFTPUSER:$PASSFTPUSER"|sudo chpasswd
(django_pod) pod@pod:/data$ sudo apt-get install vsftpd
Pour la configuration, il faut éditer le fichier "/etc/vsftpd.conf"
django_pod) pod@pod1:/data$ sudo vim /etc/vsftpd.conf
[...]
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
...
chroot_local_user=YES
A la fin du fichier de configuration, nous avons ajouté ceci :
local_root=/data/ftp-pod/ftp
pasv_enable=Yes
pasv_min_port=10090
pasv_max_port=10100
allow_writeable_chroot=YES
Enfin un petit restart pour mettre tout ca en route !
(django_pod) pod@pod:/data$ sudo /etc/init.d/vsftpd restart
Déporter l'encodage sur un autre serveur
Pré-requis :
- Il faut que votre répertoire ~/django_projects/podv2/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
Installation sur le frontal :
Il ne faut pas avoir installé ffmpeg, ffmpegthumbnailer et imagemagick. Si c'est le cas, les déinstaller :
Bloc de code | ||
---|---|---|
| ||
Attention, il faut penser à collecter les fichiers "statics" pour qu'ils soient servis par le |
...
frontal web NGINX
| |||
|
Il faut installer RabbitMQ :
Bloc de code | ||
---|---|---|
| ||
(django_pod) pod@pod:~/django_projects/podv2$ sudo apt-get install rabbitmq-server
(django_pod) pod@pod:~/django_projects/podv2$ sudo rabbitmqctl add_user pod *mdp*
(django_pod) pod@pod:~/django_projects/podv2$ sudo rabbitmqctl set_user_tags pod administrator
(django_pod) pod@pod:~/django_projects/podv2$ sudo rabbitmqctl set_user_tags guest
(django_pod) pod@pod:~/django_projects/podv2$ sudo rabbitmqctl add_vhost rabbitpod
(django_pod) pod@pod:~/django_projects/podv2$ sudo rabbitmqctl set_permissions -p rabbitpod pod ".*" ".*" ".*" |
Rajouter la configuration Celery/rabbitmq dans le fichier settings_local.py
(django_pod) pod@pod:/usr/local/django_projects/podv2$ vim pod/custom/settings_local.py
Bloc de code | ||
---|---|---|
| ||
# Configuration Celery sur le frontal
CELERY_TO_ENCODE = True # Active encode
CELERY_BROKER_URL = "amqp://pod:mdp@localhost/rabbitpod" # Define a broker
|