Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
technique:docker:picasoft:admin [2021/11/16 00:14] – qduchemi | technique:docker:picasoft:admin [2022/09/23 10:16] (Version actuelle) – modification externe 127.0.0.1 |
---|
| |
<bootnote warning> | <bootnote warning> |
Prérequis : les articles de [[technique:docker:general:start|cette section]]. | Prérequis : avoir [[technique:tech_team:start|une idée de comment fonctionnent Docker et Compose]] ^_^. |
</bootnote> | </bootnote> |
| |
Tous les services lancés avec Docker ont leur configuration versionnée sur le dépôt [dockerfiles](https://gitlab.utc.fr/picasoft/dockerfiles) (voir [[technique:docker:picasoft:dockerfiles|gestion des services]]). | Tous les services lancés avec Docker ont leur configuration versionnée dans leur dépôt, accessible [ici](https://gitlab.utc.fr/picasoft/projets/services) (voir [[technique:docker:picasoft:dockerfiles|gestion des services]]). |
| |
En particulier, les fichier `docker-compose.yml` présents dans chaque dossier, ainsi que les fichiers de configuration et de secrets, permettent de lancer n'importe quel service de façon autonome, sur n'importe quelle machine. | En particulier, les fichiers `docker-compose.yml` présents dans chaque dépôt, ainsi que les fichiers de configuration et de secrets, permettent de lancer n'importe quel service de façon autonome, sur n'importe quelle machine. |
| |
<bootnote> | <bootnote> |
Pour chacune des opérations détaillées dans cette page, on suppose que : | Pour chacune des opérations détaillées dans cette page, on suppose que : |
* Vous savez sur quelle machine tourne ou doit tourner le service (`pica01`, `monitoring`...). Si vous ne le savez pas, les [[technique:adminserv:graph_services|graphes des services]] peuvent vous aider. | * Vous savez sur quelle machine tourne ou doit tourner le service (`pica01`, `monitoring`...). Si vous ne le savez pas, les [[technique:graph_services|graphes des services]] peuvent vous aider. |
* Vous avez une connexion SSH active sur cette machine | * Vous avez une connexion SSH active sur cette machine |
* Vous êtes dans le dossier `<clone_depot>/<service>`, sur la branche `master`. Le clone devrait se trouver dans `/DATA/docker/dockerfiles`. | * Vous êtes dans le dossier `/DATA/docker/services/<depot-service>`, sur la branche `master`. |
* Vous êtes sur la branche `master` et à jour si besoin (`git pull`) | * Vous êtes sur la branche `master` et à jour si besoin (`git pull`) |
</bootnote> | </bootnote> |
La branche `master` devant refléter l'état des services en production, toutes les opérations sur les machines de production devront être réalisées depuis `master` : cela signifie que les branches sur lesquelles vous travaillez devront être fusionnées à la fin de vos tests, et donc avant la mise en production. | La branche `master` devant refléter l'état des services en production, toutes les opérations sur les machines de production devront être réalisées depuis `master` : cela signifie que les branches sur lesquelles vous travaillez devront être fusionnées à la fin de vos tests, et donc avant la mise en production. |
| |
Par exemple : je veux faire quelques chose avec Mattermost. Mattermost tourne sur `pica02` (cf [[technique:adminserv:graph_services|graphes des services]]), je suis dans le dossier `/DATA/docker/dockerfiles/pica-mattermost`, j'ai vérifié que je suis sur `master` et j'ai fait un `git pull`, je suis prêt à effectuer une opération. | Par exemple : je veux faire quelque chose avec Mattermost. Mattermost tourne sur `pica02` (cf [[technique:graph_services|graphes des services]]), je suis dans le dossier `/DATA/docker/services/mattermost`, j'ai vérifié que je suis sur `master` et j'ai fait un `git pull`, je suis prêt à effectuer une opération. |
| |
<bootnote critical>Cette page présente le cas général, mais avant toute opération de mise à jour, il faut **absolument lire** le fichier `README.md` du sous-dossier du service. Certains nécessitent des précautions avant de lancer une nouvelle version de l'image.</bootnote> | <bootnote critical>Cette page présente le cas général, mais avant toute opération de mise à jour, il faut **absolument lire** le fichier `README.md` du sous-dossier du service. Certains nécessitent des précautions avant de lancer une nouvelle version de l'image.</bootnote> |
| |
<bootnote warning> | <bootnote warning> |
Si vous rencontrez ce genre d'erreur... | Si le dossier du service n'existe pas... |
| Alors, vous êtes probablement sur la mauvaise machine. |
``` | Si vous lancez un nouveau service, voir plus bas. |
ERROR: Couldn't find env file: /DATA/docker/dockerfiles/<service>/secrets/<service>.secrets | |
``` | |
| |
Alors, vous êtes probablement sur la mauvaise machine, car le fichier de secrets n'existe pas. Si vous lancez un nouveau service, voir plus bas. | |
</bootnote> | </bootnote> |
<bootnote> | <bootnote> |
Les secrets, tels que les mots de passe, ne sont évidemment pas présents sur le dépôt. Lorsque des secrets sont utilisés, ils sont **systématiquement** indiqués par la présence de fichiers dans un sous-répertoire `secrets`. | Les secrets, tels que les mots de passe, ne sont évidemment pas présents sur le dépôt. Lorsque des secrets sont utilisés, ils sont **systématiquement** indiqués par la présence de fichiers dans un sous-répertoire `secrets`. |
| |
Dans ce cas, on copiera tous les fichiers `.secrets.example` en `.secrets`, et on remplacera les valeurs. | Dans ce cas, on copiera tous les fichiers `*.secrets.example` en `*.secrets`, et on remplacera les valeurs. |
| |
Cette opération n'est nécessaire que lors du premier lancement. | Cette opération n'est nécessaire que lors du premier lancement. |
#### Mot de passe externe | #### Mot de passe externe |
| |
Le mot de passe est connu, par exemple le mot de passe d'un compte LDAP. On le récupérera sur le [[technique:tips:password_store:start|pass]]. | Le mot de passe est connu, par exemple le mot de passe d'un compte LDAP. On le récupérera sur le [[asso:tuto:vaultwarden|vaultwarden]]. |
| |
#### Mot de passe administratif | #### Mot de passe administratif |
| |
Le mot de passe est "inédit", mais doit être accessibles aux administrateurs (par exemple le mot de passe d'administration d'Etherpad). On le créera directement dans le [[technique:tips:password_store:start|pass]] (`picapass insert...`) et on le copiera dans le fichier de secrets. | Le mot de passe est "inédit", mais doit être accessibles aux administrateurs (par exemple le mot de passe d'administration d'Etherpad). On le créera directement dans le [[asso:tuto:vaultwarden|vaultwarden]] (`picapass insert...`) et on le copiera dans le fichier de secrets. |
| |
### Création des volumes | ### Création des volumes |