[Tuto] Installation de Portainer Agent et Configuration sur une instance Portainer

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 161
1 564
278
/var/run/docker.sock
[Tuto] Installation de Portainer Agent et Configuration sur une instance Portainer


Portainer%20Logo%20Solid%20All%20-%20Blue%20no%20padding.svg


Portainer, c'est quoi ?
Portainer est une interface utilisateur de gestion légère qui vous permet de gérer facilement vos différents environnements Docker (hôtes Docker ou clusters Swarm). Portainer se veut aussi simple à déployer qu'à utiliser. Il se compose d'un seul conteneur qui peut s'exécuter sur n'importe quel moteur Docker (peut être déployé en tant que conteneur Linux ou conteneur natif Windows, prend également en charge d'autres plates-formes). Portainer vous permet de gérer toutes vos ressources Docker (conteneurs, images, volumes, réseaux et plus!). Il est compatible avec le moteur Docker autonome et avec le mode Docker Swarm.

Vous pouvez essayer l'instance de démonstration : http://demo.portainer.io/ (connectez-vous avec le nom d'utilisateur admin et le mot de passe tryportainer).

Ici, nous allons aborder l'installation de Portainer Agent, et de sa configuration sur une instance Portainer. Avec Portainer Agent vous allez pouvoir gérer vos conteneurs Docker de plusieurs machines depuis 1 seule instance Portainer.

Pour faire cette manip, il vous faudra vous connecter en SSH à votre Serveur/NAS, si vous ne savez pas le faire, vous trouverez ici un tuto explicatif : [Tuto] Acceder à son NAS en lignes de commande.

Sommaire :
1/ Installation de Portainer Agent
2/ Rajout du "Endpoints" sur Portainer
3/ Consultation sur Portainer


:giggle:

1/ Installation de Portainer Agent
Il vous faut vous connecter a votre serveur en SSH, pour exécuter la commande suivante, afin d'installer Portainer Agent :

Code:
sudo docker run -d -p 9001:9001 --name=portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent

Et c'est tout :D

Attention, concernant le montage de /var/lib/docker/volumes il s'agit des volumes de Docker ( et non d'une autre instance portainer, ou autre ) , voir : https://www.forum-nas.fr/threads/tu...-sur-une-instance-portainer.16036/post-124769

2/ Rajout du "Endpoints" sur Portainer
Rendez-vous sur votre instance principal de Portainer, nous allons maintenant, y connecté l'agent que nous avons installé sur notre autre serveur ( Étape 1 ).
On clique sur : Endpoints
dvuyBeW.png


Puis sur Add endpoints
lmHKUwC.png


Dans la page suivante, il n'y a que 2 cases a renseigner, Name et Endpoint URL.
Dans "Name" vous choisissez un nom pour ce Endpoint, dans mlon cas c'est un raspberry, et j'en possède que un il n'y a donc pas de confusion possible, donc je le nomme "raspberry"
Dans "Endpoint URL" nous indiquons l'adresse du serveur on nous avons installer Portainer Agent, suivant du port d'écoute 9001, Exemple : 192.168.1.20:9001 ! Bien sur l'ip est adapter suivant votre cas.
f6MumQp.png


Maintenant, on clique sur + Add Endpoints pour valider.

3/ Consultation sur Portainer
Maintenant, que nous avons connecté notre second serveur a notre instance portainer nous pouvons depuis cette meme instance Portainer, gérer les conteneurs des deux serveurs.

En cliquant sur "Home" vous allez retrouver une vue d'ensemble de vos "Endpoints" et selectionner celui que vous voulez gérer :
IOeoYuS.png
 
Dernière édition:
Ah zut ! Tu m'as devancé ! J'ai expérimenté ça hier et j'allais faire le tuto ^^
 
Hello @EVOTk
Je n'avais pas vu que tu avais fait un tuto ici ^^

Du coup, je colle ce que j'ai posté ailleurs ^^

J'ai un autre NAS avec Portainer installé dessus.
Je souhaite contrôler cette installation de Portainer depuis celle de mon DS920+.

Si je suis ton tuto, pour le Portainer-agent, dois-je installer le Portainer Agent en plus du Portainer ? (Si oui, je peux du coup mettre les deux dans un même docker-compose ;) )


Mais du coup, en terme de sécurité... Je ne souhaite pas que ce soit accessible via internet, ça reste sur le LAN, et doit être accessible via le VPN Server de mon RT2600. Donc en l'état, c'est suffisant niveau sécurité, non ?
Parce que passer par le Portainer Edge agent c'est quand même plus complexe...

PS : j'ai un domaine configuré sur le Portainer du DS920+ qui possède des restrictions d'accès aux seules IP LAN et VPN. Donc depuis internet, on tombe sur une erreur 404.
Peux-tu me confirmer que c'est OK niveau sécurité ?
 
Si je suis ton tuto, pour le Portainer-agent, dois-je installer le Portainer Agent en plus du Portainer ?
Ce n'est pas obligatoire, l'agent suffit pour etre connecté a une autre instance Portainer.

Mais du coup, en terme de sécurité... Je ne souhaite pas que ce soit accessible via internet, ça reste sur le LAN, et doit être accessible via le VPN Server de mon RT2600. Donc en l'état, c'est suffisant niveau sécurité, non ?
Il faut savoir que l'agent n'accepte que la 1ere connexion qui lui viens ( une fois lié il n'est plus possible de la liè a une autre instance sans le re-créer ), aussi si l'agent est trop longtemps sans être lié a une instance Portainer ( 10min ? ) alors il faut également le re-créer pour reprendre la procédure de liaison car cela expire.

Peux-tu me confirmer que c'est OK niveau sécurité ?
Oui, cela semble :)
 
Ce n'est pas obligatoire, l'agent suffit pour etre connecté a une autre instance Portainer.
Ok, bon je laisse le Portainer WEB-UI au cas-où, mais à terme je le supprimerais probablement ;)

Il faut savoir que l'agent n'accepte que la 1ere connexion qui lui viens ( une fois lié il n'est plus possible de la liè a une autre instance sans le re-créer ), aussi si l'agent est trop longtemps sans être lié a une instance Portainer ( 10min ? ) alors il faut également le re-créer pour reprendre la procédure de liaison car cela expire.
Ok, merci pour ces précisions :)
Oui, cela semble :)
😇


Il y a une chose qui n'est pas claire dans le tuto, c'est ceci : /var/lib/docker/volumes
J'ai mis du temps à comprendre ce que c'était et où je pouvais le trouver sur l'Asustor...
Pourrais-tu indiquer qu'il faut passer en volume bind-mount le dossier système qui contient les volumes de docker ?
Car au départ j'ai cru que c'était le chemin d'accès des données de portainer sur un autre système que mon Syno, mais non...
Je vais ajouter une section dans mon tuto Portainer sur l'Asustor pour faire mention de où se trouve ce dossier là pour l'agent ^^
Mais pour info, c'est ici :
Bash:
/volume1/.@plugins/AppCentral/docker-ce/docker_lib/volumes
volume1 est le volume où est installé le paquet Docker. mais je ne crois pas avoir vu le choix dans ADM quant à l'emplacement d'installation des paquets...