Aller au contenu

[TUTO] Centralisation des instances Docker


.Shad.

Messages recommandés

Le 28/02/2022 à 20:04, .Shad. a dit :

Oui @MilesTEG1 me l'avait fait remarquer mais j'avais oublié, je vais modifier ça.

Pendant longtemps j'ai préféré utilisé docker-compose via SSH, et Portainer uniquement pour la supervision et la manipulation des conteneurs, images, volumes, etc...

Depuis peu, j'ai migré tous les fichiers compose sur Github, et Portainer s'occupe de déployer les images depuis Github. Il surveille également en cas de mise à jour des fichiers et recrée les conteneurs au besoin. 2 mois que je fonctionne ainsi, rien à signaler de négatif pour l'instant.

Je deconseillerais de l'exposer directement. C'est assez critique comme application. Soit tu y accèdes en passant par un serveur VPN sur ton NAS ou autre équipement de ton réseau local, soit tu passes par un serveur d'authentification tiers, oAuth (je crois que Portainer le prévoit ?) ou celui que je développe dans mon tutoriel Authelia (qui est plus facile à mettre en place si tu utilises SWAG en proxy inversé).

Excellent, as tu réalisé un tuto pour la gestion des dockers compose via Github ?
ça m'interesse, car je travaille toujours en SSH pour la gestion de ceux-ci.

Et je me dis, le jour où je dois migrer ou changer de NAS, ça permets d'aller 10x plus vite pour le redéploiement

Lien vers le commentaire
Partager sur d’autres sites

il y a 13 minutes, .Shad. a dit :

Ca fait partie de la refonte prévue de certains de mes tutoriels, je peux pas te donner de date, mais je pense que je vais m'y atteler à partir de mi ou fin mars.

T'inquiète, ça n'urge pas, mais je suis curieux de voir comment ça fonctionne.

merci

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Hello,

De mon côté je m'interrogeais sur la manière dont vous vous y preniez pour gérer les variables d'environnement

J'ai une bonne vingtaine de containers, que j'ai cloisonnés par stacks fonctionnelles

Mais j'ai pas mal de "variables" que je réutilise dans mes différents docker-compose, et je trouve ça ultra pénible de devoir me coltiner d'éditer toutes les stacks quand je souhaite modifier quelques variables d'environnement (exemple, l'IP du serveur DNS local, ou encore le port du socket proxy pour docker, ou même des ports pour traefik)

De plus, regrouper tous les docker-compose sur une seule stack ne me satisfait pas non plus puisque modifier une seule variable d'environnement relancerait la totalité des containers

 

J'ai constaté que quand on était rattaché à un repository git (j'en ai créé un --bare sur le NAS, pour rester en local sans avoir besoin d'installer autre chose que GIT, en servant les fichiers avec nginx déjà présent sur DSM), portainer copiait également les fichiers .env dans les stacks qu'il crée, mais pas moyen des les référencer ensuite (sans compter les limitations inhérentes à docker sait gérer -au mieux- des env_file qu'au niveau des services (donc adios les variables aux top-levels)

 

J'ai l'impression qu'il faudrait que je rebascule sur des scripts pour le déploiement et ne garder portainer que pour les GUI permettant de debug/monitoring et autre, ce qui réduit considérablement son intérêt

Peut-être que de manipuler dynamiquement les yml en injectant les variables avant de les envoyer sur le repo permettrait de contourner le problème, mais je trouve ça assez sale, et pas très sécure

 

Des idées ? ^^

Lien vers le commentaire
Partager sur d’autres sites

Salut 🙂

Dites, je voulais tester une image wordpress, et je lance la connexion à Portainer... Mais j'ai plus rien dans la page d'accueil :

1xByq0w.png

Je suis avec la dernière version tombée, je sais pas quand : 2.13.0

 

Est-ce que je suis le seul ?
Comment faire pour retrouver l'accès normal ?

 

PS : j'ai bien ceci de configuré :
pey5qwr.png

Apparemment je ne suis pas le seul :

https://github.com/portainer/portainer/issues/6917

Lien vers le commentaire
Partager sur d’autres sites

@Finnithnel Salut, en gros tu voudrais utiliser des variables d'environnement au sein même du conteneur pour déployer tes stacks ?
Dans ce cas, tu ajoutes toutes les variables d'environnement dont tu as besoin dans le docker-compose de Portainer, et normalement, si tu les appelles dans Portainer, elle devrait renvoyer leur valeur. Vérifiable en te connectant auparavant au conteneur et en tapant la commande "env".

Mais ça fait bricolage je trouve. 

@MilesTEG1 Pas de problème de mon côté perso. 😕 

Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

Ho ! Comment se fait il que chez moi ça fonctionne plus 😓😭

le docker-compose.yml est suffisamment simple pour que ce ne soit pas lui la cause…

je suis en dsm 7.1-42661 update1.

pourriez vous me monter les permissions de docker.sock ? 
C’est le seul truc qui pourrait déconner chez moi…

Toute autre piste est la bienvenue 😊

Lien vers le commentaire
Partager sur d’autres sites

Il y a 4 heures, MilesTEG1 a dit :

Toute autre piste est la bienvenue

Bonjour,

Tu devrais essayer la 2.13.1 qui vient de sortir

Edit :

 

  • Changed the minimum TLS version of Portainer from 1.3 to 1.2 to avoid issues with nginx reverse proxies: #6902
  • Fixed issue with the Portainer authentication settings page not being able to save: #6899
  • Changed the password policy to require 12 characters for all Portainer internal users: #6904

 

La 2.13 m'avait déjà demandé un changement de mot de passe avec 12 caractères avec minimum 1 minuscule, majuscule, chiffre, et caractère spécial.

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

Je viens de voir ça 😊

je teste et je vous redis.

En effet, ça refonctionne 🙂 

foCpVaR.png

 

Par contre, je ne vois pas dans le changelog ce qui a résolu le soucis :

2.13.1

Portainer:

  • Changed the minimum TLS version of Portainer from 1.3 to 1.2 to avoid issues with nginx reverse proxies: #6902
  • Fixed issue with the Portainer authentication settings page not being able to save: #6899
  • Changed the password policy to require 12 characters for all Portainer internal users: #6904

 

Modifié par MilesTEG1
Lien vers le commentaire
Partager sur d’autres sites

@MilesTEG1

Lorsque j'ai mis à jour vers la 2.13.0 sur les 2 NAS du boulot (même modèle, même version), j'ai eu le même problème que toi sur l'un des 2 NAS. C'était franchement étonnant de ne pas avoir le même comportement sur les 2.
Après un (ou 2, je ne me souvien plus) stop/start sur le NAS concerné, l'interface est revenue.

Avec la mise à jour 2.13.1, pas de souci. Cela a fonctionné du 1er coup sur les deux. 😁

Lien vers le commentaire
Partager sur d’autres sites

@Lapin

Est-ce que le nas qui avait fonctionné t'avait demandé un changement de mot de passe avec 12 caractères lors du passage à 2.13.0 ?

Je trouve curieux que la 2.13.1 parle du changement de politique du MdP alors qu'il m'avait été demandé de passer à 12 caractères lors du passage à 2.13.0. Je pense que c'était déjà prévu dans cette version mais avec bug.

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

Maintenant que tu le dis, de mémoire. cela a bien fonctionné sur le 1er (celui qui a fonctionné du 1er coup). Par contre, je crois avoir eu un comportement étrange sur le 2ème (celui qui a eu du mal se lancer).

Il se pourrait bien que j'ai du changé le MDP depuis le GUI et qu'après redémarrage il affiche enfin les containers.

Lien vers le commentaire
Partager sur d’autres sites

Ça pourrait être un problème avec le mot de passe ?

Celui que j’utilise pour portainer fait largement plus de 12 caractères et à des caractères spéciaux.

Et je n’ai pas eu de message indiquant de changer le mot de passe…

Ha remarquer que ce mot de passe a été changé le 14 avril 2022…

Lien vers le commentaire
Partager sur d’autres sites

Il y a 17 heures, .Shad. a dit :

@Finnithnel Salut, en gros tu voudrais utiliser des variables d'environnement au sein même du conteneur pour déployer tes stacks ?
Dans ce cas, tu ajoutes toutes les variables d'environnement dont tu as besoin dans le docker-compose de Portainer, et normalement, si tu les appelles dans Portainer, elle devrait renvoyer leur valeur. Vérifiable en te connectant auparavant au conteneur et en tapant la commande "env".

Mais ça fait bricolage je trouve. 

Nope

Chez moi, j'ai en gros la structure suivante au niveau du NAS :

/volume1/docker/commun <= répertoire qui contient toute la config commune aux stacks (/scripts, /certs, /repo.git, ...)

/volume1/docker/stack1 <= répertoire qui contient toute le data de la stack (les volumes mapés dans docker)

....

/volume1/docker/stack20

 

au démarrage de mon NAS, j'ai différents scripts qui se lancent (routes vers les macvlan, alias, drivers usb zigbee, customisation du ssh, création d'un repo git bare, relance temporisée de traefik...)

dans portainer, j'ai créé des stacks fonctionnelles (dns, reverse proxy, databases, etc) qui contiennent n containers avec chacun leurs paramétrage spécifique, et variables d'environnement spécifiques

 

mon soucis, c'est que j'ai des "variables" que je souhaite rendre communes à mes différentes stacks.

par exemple, dans ma stack dns, je définis l'ip du serveur DNS local, et m'en sert ensuite pour chaque container de toutes les stacks (qui vont réutiliser cette ip)

ou encore, dans mon reverse proxy (traefik), je définis des noms de routes et valeurs de ports que je réapplique dans pas mal de stacks

le jour où j'ai envie de changer une valeur, plutôt que de me rééplucher les docker-compose de mes 20 containers, j'ai "juste" à modifier une variable d'environnement (celles de portainer, pas celles des container) et je sais que mes compose seront toujours bons

le hic, c'est que ça m'impose de mettre à jour les variables de chaque stacks (les stack.env de portainer) manuellement

 

et comme tout bon informaticien qui se respecte, je suis une grosse faignasse, donc je cherche à automatiser la chose 😄

pour le moment je passe par des scripts qui vont répliquer et remplacer les stack.env de chaque folder dans portainer, mais c'est un poil crade, et pas très pratique à maintenir

 

j'ai remarqué que quand les stacks sont descendues d'un repository git (local dans mon cas), portainer importe tout ce qu'il trouve dans le chemin, pas juste le compose.yml

donc dans mon cas, les folder git contenant et le compose et le .env, portainer descend les 2 fichiers, mais il ignore royalement le .env, et s'obstine à le recréer à la racine de sa stack

en docker-compose on peut simplement référencer des env_file dans les services, ce qui est un début mais déjà trop bas pour moi (j'aimerais en bénéficier au top-level du compose)

 

mais j'ai l'impression que si portainer repère et importe le .env, c'est qu'il y a moyen de le lui faire utiliser

je ne sais juste pas trop comment (règle de nommage ? conf quelque part ?)

Modifié par Finnithnel
Lien vers le commentaire
Partager sur d’autres sites

Pourtant ici ils ont l'air de dire qu'il y a un process sur un .env existant :

https://docs.portainer.io/v/ce-2.9/faq/troubleshooting/how-do-automatic-updates-for-stacks-applications-work

Citation

Portainer doesn't otherwise reference any other files in the repository, unless those files are referenced by the compose files. This can have consequences if you are trying to build an image within your compose file. The exception to this is the .env file, which if it exists (and environment variables have not been previously defined) is processed as well.

 

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour,

J'avais tester ce tuto il y a quelque temps sans soucis. Maintenant que j'utilise docker sur mon second nas je tente de le remettre en place mais je me heurte à un problème sans doute très bête :

6.A  Je ne trouve pas End Point dans le menu latéral 😑. Une idée ??

 

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.