| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| serveurs:installation:web-srv:docker-portainer [2020/02/14 13:39] – jpmilcent | serveurs:installation:web-srv:docker-portainer [2022/12/17 14:29] (Version actuelle) – [Configurer Portainer] jpmilcent |
|---|
| ====== Installer et configurer le domaine manager.silene.eu ====== | ====== Installer, configurer et gérer le sous-domaine "manager" ====== |
| **Notes** : ce domaine hébergera l'outil Portainer permettant d'administrer les containers Docker. | **Notes** : ce domaine hébergera l'outil Portainer permettant d'administrer les containers Docker. |
| |
| listen [::]:80; | listen [::]:80; |
| |
| server_name manager.silene.eu; | server_name manager.<domaine-sinp>; |
| | |
| location / { | location / { |
| </code> | </code> |
| * Créer un lien depuis les sites actifs : ''cd /etc/nginx/sites-enabled/ ; ln -s ../sites-available/manager.conf manager.conf'' | * Créer un lien depuis les sites actifs : ''cd /etc/nginx/sites-enabled/ ; ln -s ../sites-available/manager.conf manager.conf'' |
| * Tester la config et relancer Nginx si OK : ''nginx -t && nginx -s reload'' | * Tester la config et relancer //Nginx// si OK : ''nginx -t && nginx -s reload'' |
| * Tester l'URL http://manager.silene.eu/ qui doit afficher une erreur 502 car nous n'avons pas encore lancé le container Docker. | * Tester l'URL <nowiki>http://manager.<domaine-sinp>/</nowiki> qui doit afficher une erreur 502 car nous n'avons pas encore lancé le container Docker. |
| * Se connecter en tant qu'utilisateur //admin//, créer un dossier //docker// : ''cd ~ ; mkdir docker'' | |
| * En local, sur votre machine, récupérer le dépôt Github "//sinp-paca-srv//" : ''git clone git@github.com:jpm-cbna/sinp-paca-srv.git'' | |
| * Suivre les étapes indiquées dans le fichier [[https://github.com/jpm-cbna/sinp-paca-srv/blob/master/README.md|README.md]] | |
| * Se placer dans le dossier //web-srv//. | |
| * Préparer les différents fichiers //.env// et //.conf// en vous basant sur les fichiers //.sample// présents. | |
| * Exécuter la commande //Rsync// indiquée dans le fichier //README.md//. | |
| * Sur le serveur dans le dossier //docker// de l'utilisateur //admin// : | * Sur le serveur dans le dossier //docker// de l'utilisateur //admin// : |
| * créer un nouveau réseau Docker spécifique à notre utilisation de type //bridge// nommé //nginx-proxy// (voir fichier //.env//) : ''docker network create nginx-proxy'' | * créer un nouveau réseau //Docker// spécifique à notre utilisation de type //bridge// nommé //nginx-proxy// (voir fichier //.env//) : ''docker network create nginx-proxy'' |
| * se placer dans le dossier //manager.silene.eu// : ''cd ~/docker/manager.silene.eu'' | * se placer dans le dossier //manager.<domaine-sinp>// : ''cd ~/docker/manager.<domaine-sinp>'' |
| * exécuter la commande : ''docker-compose up'' | * exécuter la commande : ''docker-compose up'' |
| * vérifier que tout fonctionne à l'adresse : http://manager.silene.eu | * vérifier que tout fonctionne à l'adresse : <nowiki> http://manager.<domaine-sinp> </nowiki> |
| * indiquer le mot de passe pour l'utilisateur //admin// de Portainer afin de créer le compte d'administrateur | * indiquer le mot de passe pour l'utilisateur //admin// de //Portainer// afin de créer le compte d'administrateur |
| * arrêter le container : ''CTRL+C'' | * arrêter le container : ''CTRL+C'' |
| * relancer le container en tant que service : ''docker compose up -d'' | * relancer le container en tant que service : ''docker compose up -d'' |
| * si besoin de l'arrêter utiliser : ''docker-compose down'' | * si besoin de l'arrêter utiliser : ''docker-compose down'' |
| |
| ===== Activer le SSL sur le domaine ===== | ===== Activer le SSL et HTTP2 sur le domaine ===== |
| * Installer un certificat SSL via Certbot (Letsencrypt) : ''<nowiki> certbot --nginx -d manager.silene.eu </nowiki>'' | * Installer un certificat SSL via //Certbot// (//Letsencrypt//) : ''<nowiki> certbot --nginx -d manager.<domaine-sinp> </nowiki>'' |
| | * Indiquer l'email de l'admin système : adminsys@<domaine-sinp> |
| * Répondre : 2 | * Répondre : 2 |
| * Tester ensuite la redirection auto de HTTP vers HTTPS : http://manager.silene.eu/ -> doit redirigé vers HTTPS automatiquement | * Tester ensuite la redirection auto de HTTP vers HTTPS : <nowiki>http://manager.<domaine-sinp>/</nowiki> -> doit redirigé vers HTTPS automatiquement |
| * Tester la configuration SSL : https://www.ssllabs.com/ssltest/analyze.html?d=manager.silene.eu | * Tester la configuration SSL : https://www.ssllabs.com/ssltest/analyze.html?d=manager.<domaine-sinp> |
| * Tester l'URL https://manager.silene.eu/ | * Tester l'URL <nowiki>https://manager.<domaine-sinp>/</nowiki> |
| * La config finale : <code nginx> | * La config finale : <code nginx> |
| server { | server { |
| listen 443 ssl; # managed by Certbot | listen 443 ssl http2; # managed by Certbot |
| listen [::]:443 ssl; # managed by Certbot | listen [::]:443 ssl http2; # managed by Certbot |
| | |
| server_name manager.silene.eu; | server_name manager.<domaine-sinp>; |
| | |
| location / { | location / { |
| } | } |
| |
| ssl_certificate /etc/letsencrypt/live/manager.silene.eu/fullchain.pem; # managed by Certbot | ssl_certificate /etc/letsencrypt/live/manager.<domaine-sinp>/fullchain.pem; # managed by Certbot |
| ssl_certificate_key /etc/letsencrypt/live/manager.silene.eu/privkey.pem; # managed by Certbot | ssl_certificate_key /etc/letsencrypt/live/manager.<domaine-sinp>/privkey.pem; # managed by Certbot |
| include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot | include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot |
| ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot | ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot |
| listen [::]:80; | listen [::]:80; |
| | |
| server_name manager.silene.eu; | server_name manager.<domaine-sinp>; |
| |
| if ($host = manager.silene.eu) { | if ($host = manager.<domaine-sinp>) { |
| return 301 https://$host$request_uri; | return 301 https://$host$request_uri; |
| } # managed by Certbot | } # managed by Certbot |
| ===== Configurer Portainer ===== | ===== Configurer Portainer ===== |
| * Se connecter à Portainer et se rendre dans le menu principal "//Endpoints//" | * Se connecter à Portainer et se rendre dans le menu principal "//Endpoints//" |
| - Pour l'instance "web-srv" : | - Pour l'instance //bkp-srv// : |
| * Renommer simplement le endpoint local en //web-paca-sinp// | * Renommer simplement le endpoint local en //bkp-<region>-sinp// |
| - Pour l'instance "db-srv" : | - Pour l'instance //db-srv// et //web-srv// : |
| * Au préalable activer l'API Docker de l'instance "db-srv" (voir section correspondante) | * Au préalable activer [[serveurs:installation:db-srv:docker-api| l'API Docker de l'instance db-srv]] ou [[[[serveurs:installation:web-srv:docker-api| web-srb]] |
| * Cliquer sur le bouton //Add endpoint// | * Cliquer sur le bouton //Add endpoint// |
| * Sélectionner "Docker - Directly connect to the Docker API" | * Sélectionner "Docker - Directly connect to the Docker API" |
| * //Name// : db-paca-sinp | * //Name// : db-<region>-sinp ou web-<region>-sinp |
| * //Endpoint URL// : 10.0.1.20:2376 | * //Environment URL// : 10.0.1.20:2376 ou 10.0.1.10:2376 |
| * //TLS// : false (à voir si on l'active ?) | * //Public IP// : 10.0.1.20 ou 10.0.1.10 |
| | * //TLS// : true (voir [[serveurs:installation:web-srv:docker-api#activer_tls_pour_l_api_docker|doc]]) |
| | * Sélectionner : ''TLS with server and client verification'' |
| | * //TLS CA certificate// : sélectionner le fichier ''ca.pem'' récupéré précédemment sur votre machine locale. |
| | * //TLS certificate// : sélectionner le fichier ''cert.pem'' récupéré précédemment sur votre machine locale. |
| | * //TLS key// : sélectionner le fichier ''key.pem'' récupéré précédemment sur votre machine locale. |
| * Valider le formulaire | * Valider le formulaire |