From a643a1bc3bf1f8889fa67f33d7930515f8b44841 Mon Sep 17 00:00:00 2001 From: mich Date: Wed, 12 Mar 2025 23:26:24 +0000 Subject: [PATCH] updt and readme --- README.MD | 161 ++++++++++++++---- config.json | 16 ++ nohup.out | 2 + playbooks/docker/deploy-docker-discordbot.yml | 9 - playbooks/docker/deploy-docker-dolibarr.yml | 9 - playbooks/docker/deploy-docker-kanboard.yml | 9 - playbooks/docker/deploy-docker-redm-die.yml | 9 - playbooks/docker/deploy-docker-redm.yml | 9 - roles/deploy-docker/templates/dolibarr.yml | 20 --- 9 files changed, 147 insertions(+), 97 deletions(-) create mode 100644 config.json create mode 100644 nohup.out delete mode 100644 playbooks/docker/deploy-docker-discordbot.yml delete mode 100644 playbooks/docker/deploy-docker-dolibarr.yml delete mode 100644 playbooks/docker/deploy-docker-kanboard.yml delete mode 100644 playbooks/docker/deploy-docker-redm-die.yml delete mode 100644 playbooks/docker/deploy-docker-redm.yml delete mode 100644 roles/deploy-docker/templates/dolibarr.yml diff --git a/README.MD b/README.MD index c4b3f60..71360ce 100644 --- a/README.MD +++ b/README.MD @@ -1,14 +1,27 @@ -# Belgium RP - Ansible Infrastructure +# Bruxelles Life - Ansible Infrastructure ## Overview -Ce projet Ansible est conçu pour déployer et gérer l'infrastructure du serveur Belgium RP. Le dépôt contient plusieurs rôles, tâches et playbooks Ansible pour automatiser le processus de déploiement. + +Ce projet Ansible est conçu pour déployer et gérer l'infrastructure du serveur Bruxelles Life. Le dépôt contient plusieurs rôles, tâches et playbooks Ansible pour automatiser le processus de déploiement. ## Structure du Dépôt -- **inventories/**: Contient les fichiers d'inventaire Ansible. - - **host_vars/**: Variables spécifiques aux hôtes. - - `localhost.yml`: Variables spécifiques à localhost. - - `localhost/`: Répertoire contenant des variables supplémentaires spécifiques aux hôtes. -- **playbooks/**: Contient les playbooks Ansible pour déployer les applications. + +Les fichiers Ansible sont stockés dans le répertoire système : +``` +/etc/ansible/ +``` +- **inventories/** : Contient les fichiers d'inventaire Ansible. +- **playbooks/** : Contient les playbooks Ansible pour déployer les applications. +- **roles/** : Contient les rôles définis pour le déploiement des services. + +Le serveur dédié tourne sous **Ubuntu Server (dernière version)**. + +## Rôles et Playbooks + +### Playbooks + +Les playbooks se trouvent dans le répertoire **playbooks/** et sont utilisés pour orchestrer le déploiement. + - **docker/**: Playbooks pour déployer les conteneurs Docker. - `deploy-docker-bitwarden.yml`: Playbook pour déployer [Bitwarden](https://github.com/bitwarden/server). - **Bitwarden** : Gestionnaire de mots de passe open-source qui stocke et gère les informations de connexion de manière sécurisée. @@ -32,8 +45,8 @@ Ce projet Ansible est conçu pour déployer et gérer l'infrastructure du serveu - **Heimdall** : Page d'accueil pour organiser et accéder facilement aux applications et services. - `deploy-docker-homepage.yml`: Playbook pour déployer [Homepage](https://github.com/benphelps/homepage). - **Homepage** : Interface web personnalisable pour accéder rapidement aux applications web et services. - - `deploy-docker-kanboard.yml`: Playbook pour déployer [Kanboard](https://github.com/kanboard/kanboard). - - **Kanboard** : Application de gestion de projets utilisant une approche Kanban pour organiser les tâches. + - `deploy-docker-planka.yml`: Playbook pour déployer [Planka](https://github.com/plankanban/planka). + - **Planka** : Application de gestion de projets utilisant une approche Kanban pour organiser les tâches. - `deploy-docker-nginx.yml`: Playbook pour déployer [Nginx Proxy Manager](https://github.com/NginxProxyManager/nginx-proxy-manager). - **Nginx Proxy Manager** : Interface utilisateur pour gérer les proxys Nginx, avec une gestion simplifiée des certificats SSL. - `deploy-docker-portainer.yml`: Playbook pour déployer [Portainer](https://github.com/portainer/portainer). @@ -46,9 +59,11 @@ Ce projet Ansible est conçu pour déployer et gérer l'infrastructure du serveu - **Cloudflare** : Réseau de diffusion de contenu et service de sécurité web. - `codeserver.yml`: Playbook pour déployer [Code Server](https://github.com/coder/code-server). - **Code Server** : Version de Visual Studio Code qui peut être exécutée dans un navigateur web. - - `deploy-homepage-config.yml`: Playbook pour déployer la configuration de la [Homepage](https://github.com/benphelps/homepage). - - **Homepage Configuration** : Configuration de l'interface web personnalisable pour accéder rapidement aux applications web et services. -- **roles/**: Contient les rôles Ansible pour le déploiement. + +### Rôles + +Le répertoire **roles/** contient divers rôles Ansible permettant l'automatisation du déploiement de services. + - **deploy-docker/**: Rôle pour déployer les conteneurs Docker. - **tasks/**: Contient le fichier de tâches principal pour le déploiement. - `main.yml`: Fichier de tâches principal pour exécuter les tâches de déploiement. @@ -64,7 +79,7 @@ Ce projet Ansible est conçu pour déployer et gérer l'infrastructure du serveu - `gitea.yml`: Configuration pour [Gitea](https://github.com/go-gitea/gitea). - `heimdall.yml`: Configuration pour [Heimdall](https://github.com/linuxserver/Heimdall). - `homepage.yml`: Configuration pour [Homepage](https://github.com/benphelps/homepage). - - `kanboard.yml`: Configuration pour [Kanboard](https://github.com/kanboard/kanboard). + - `planka.yml`: Configuration pour [Planka](https://github.com/plankanban/planka). - `nginx.yml`: Configuration pour [Nginx Proxy Manager](https://github.com/NginxProxyManager/nginx-proxy-manager). - `portainer.yml`: Configuration pour [Portainer](https://github.com/portainer/portainer). - `rainloop.yml`: Configuration pour [Rainloop](https://github.com/RainLoop/rainloop-webmail). @@ -79,23 +94,70 @@ Ce projet Ansible est conçu pour déployer et gérer l'infrastructure du serveu - **tests**: Contient les fichiers de test pour le rôle. - **vars**: Contient les fichiers de variables pour le rôle. -## Prérequis -- Docker -- Ansible +## Stack FiveM avec Docker Compose -## Installation -1. Clonez le dépôt : - ```bash - git clone https://gitlab.com/votre-utilisateur/votre-depot.git - cd votre-depot - ``` +```yaml +version: "3.9" # Déclare la version du fichier Docker Compose -2. Exécutez le playbook Ansible : - ```bash - ansible-playbook -i inventories/localhost.yml playbooks/docker/deploy-docker-bitwarden.yml - ``` +services: + fivem: + image: spritsail/fivem:13227 # Utilise l'image FiveM de Spritsail, version 13227 + container_name: fivem # Nomme le conteneur "fivem" + environment: + - NO_LICENSE_KEY=1 # Désactive l'utilisation d'une clé de licence (non recommandé en production) + - NO_DEFAULT_CONFIG=1 # Empêche le chargement de la configuration par défaut + - PUID=0 # Définit l'ID utilisateur à 0 (root) + - PGID=0 # Définit l'ID de groupe à 0 (root) + volumes: + - ./config:/config # Monte un volume local "config" vers "/config" dans le conteneur + - ./txData:/txData # Monte un volume local "txData" vers "/txData" dans le conteneur + ports: + - '40120:40120' # Ouvre le port 40120 + - '30120:30120' # Ouvre le port 30120 (TCP) + - '30120:30120/udp' # Ouvre le port 30120 (UDP) + restart: always # Redémarre toujours le conteneur en cas de crash + depends_on: + - fivem-db # Attend que le service "fivem-db" soit actif avant de démarrer + + fivem-db: + image: mariadb:10.11.6 # Utilise l'image MariaDB version 10.11.6 + container_name: fivem_db # Nomme le conteneur "fivem_db" + environment: + - PUID=0 # Définit l'ID utilisateur à 0 (root) + - PGID=0 # Définit l'ID de groupe à 0 (root) + - MYSQL_ROOT_PASSWORD=tdDgrdv6cs2J0D # Déclare le mot de passe root de MySQL + - TZ=Europe/Paris # Définit le fuseau horaire à Paris + - MYSQL_DATABASE=hardb # Définit le nom de la base de données à "hardb" + - MYSQL_USER=har-admin # Définit l'utilisateur MySQL "har-admin" + - MYSQL_PASSWORD=Xu22DW2SUwfGFv # Mot de passe de l'utilisateur MySQL + command: + --sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION # Définit les options SQL de MySQL + ports: + - 3306:3306 # Ouvre le port MySQL 3306 + volumes: + - ./mysql:/var/lib/mysql # Monte un volume pour stocker les données MySQL + restart: always # Redémarre toujours le conteneur en cas de crash + + phpmyadmin: + image: phpmyadmin # Utilise l'image officielle de phpMyAdmin + restart: always # Redémarre toujours le conteneur en cas de crash + ports: + - 8080:80 # Associe le port 8080 en local au port 80 du conteneur + environment: + - PMA_ARBITRARY=1 # Autorise la connexion à n'importe quelle base de données MySQL + - UPLOAD_LIMIT=100M # Définit la taille maximale d'upload à 100 Mo + depends_on: + - fivem-db # Attend que le service "fivem-db" soit actif avant de démarrer +``` + +## Tutoriel d'utilisation d'Ansible + +### Installation d'Ansible + +```bash +sudo apt update && sudo apt install ansible -y +``` -### Tutoriel de Déploiement de Playbook Ansible 1. **Configurer l'inventaire** : - Assurez-vous que le fichier `inventories/localhost.yml` contient les informations nécessaires sur les hôtes. - Exemple de contenu pour `localhost.yml` : @@ -133,6 +195,45 @@ Ce projet Ansible est conçu pour déployer et gérer l'infrastructure du serveu - Modifiez les fichiers YAML dans `roles/deploy-docker/templates/` pour configurer les applications selon vos besoins. - Mettez à jour le fichier d'inventaire avec les détails corrects du serveur. +### Commandes essentielles + +- Vérifier la connexion aux hôtes : + ```bash + ansible -i inventories/localhost -m ping all + ``` + +- Exécuter un playbook pour déployer FiveM : + ```bash + ansible-playbook -i inventories/localhost playbooks/docker/deploy-docker-fivem.yml + ``` + +- Exécuter un playbook en mode test : + ```bash + ansible-playbook -i inventories/localhost playbooks/docker/deploy-docker-fivem.yml --check + ``` + +- Lister toutes les tâches : + ```bash + ansible-playbook -i inventories/localhost playbooks/docker/deploy-docker-fivem.yml --list-tasks + ``` + +- Redémarrer un service : + ```bash + ansible -i inventories/localhost -m service -a "name=docker state=restarted" all + ``` + +### Dépannage + +- Vérifier la syntaxe d'un playbook : + ```bash + ansible-playbook --syntax-check playbooks/docker/deploy-docker-fivem.yml + ``` + +- Exécution avec plus de détails : + ```bash + ansible-playbook -i inventories/localhost playbooks/docker/deploy-docker-fivem.yml -vvv + ``` + ## Contribuer 1. Forkez le dépôt. 2. Créez une nouvelle branche (`git checkout -b feature-branch`). @@ -142,11 +243,7 @@ Ce projet Ansible est conçu pour déployer et gérer l'infrastructure du serveu 6. Ouvrez une Merge Request. ## Licence -Ce projet est sous licence MIT - voir le fichier [LICENSE](LICENSE) pour plus de détails. +Ce projet est sous licence MIT ## Créateurs du Projet -- Big Geo: Ne supporte pas les humains donc Contact Via MichMich. - MichMich (Discord: mitch_grey48) - -## Remerciements -- Big Geo diff --git a/config.json b/config.json new file mode 100644 index 0000000..01c890b --- /dev/null +++ b/config.json @@ -0,0 +1,16 @@ +{ + "postgres": { + "host": "127.0.0.1:5433", + "user": "semaphore", + "pass": "TANee5sqeFsgSQf7", + "name": "semaphore", + "options": { + "sslmode": "disable" + } + }, + "dialect": "postgres", + "tmp_path": "/tmp/semaphore", + "cookie_hash": "xJQvdcBJYK/yWSok06Jmwf8RMTrBqt9oUrYi7zlpuOk=", + "cookie_encryption": "hwGZaQmZqblsxC2dIwJSGRDlg2hn2Jf2GORxRfY2HbE=", + "access_key_encryption": "0bMSMFKWZPDDR1m5y7YFEyHbjqFT99p5B8dhp8NCYu8=" + } \ No newline at end of file diff --git a/nohup.out b/nohup.out new file mode 100644 index 0000000..ae27a43 --- /dev/null +++ b/nohup.out @@ -0,0 +1,2 @@ +Loading config +Cannot Find configuration! Use --config parameter to point to a JSON file generated by `semaphore setup`. diff --git a/playbooks/docker/deploy-docker-discordbot.yml b/playbooks/docker/deploy-docker-discordbot.yml deleted file mode 100644 index 4e262fd..0000000 --- a/playbooks/docker/deploy-docker-discordbot.yml +++ /dev/null @@ -1,9 +0,0 @@ - - name: Deploiement du container "Discordbot" - vars: - name_docker: discordbot - hosts: localhost - connection: local - become: true - become_user: "{{ m_user_name }}" - roles: - - deploy-docker \ No newline at end of file diff --git a/playbooks/docker/deploy-docker-dolibarr.yml b/playbooks/docker/deploy-docker-dolibarr.yml deleted file mode 100644 index 34bae1b..0000000 --- a/playbooks/docker/deploy-docker-dolibarr.yml +++ /dev/null @@ -1,9 +0,0 @@ - - name: Deploiement du container "Dolibarr - vars: - name_docker: dolibarr - hosts: localhost - connection: local - become: true - become_user: "{{ m_user_name }}" - roles: - - deploy-docker \ No newline at end of file diff --git a/playbooks/docker/deploy-docker-kanboard.yml b/playbooks/docker/deploy-docker-kanboard.yml deleted file mode 100644 index 6962364..0000000 --- a/playbooks/docker/deploy-docker-kanboard.yml +++ /dev/null @@ -1,9 +0,0 @@ - - name: Deploiement du container "Kanboard" - vars: - name_docker: kanboard - hosts: localhost - connection: local - become: true - become_user: "{{ m_user_name }}" - roles: - - deploy-docker \ No newline at end of file diff --git a/playbooks/docker/deploy-docker-redm-die.yml b/playbooks/docker/deploy-docker-redm-die.yml deleted file mode 100644 index 8cd35bb..0000000 --- a/playbooks/docker/deploy-docker-redm-die.yml +++ /dev/null @@ -1,9 +0,0 @@ - - name: Deploiement du container "RedM2" - vars: - name_docker: redm-die - hosts: localhost - connection: local - become: true - become_user: "{{ m_user_name }}" - roles: - - deploy-docker \ No newline at end of file diff --git a/playbooks/docker/deploy-docker-redm.yml b/playbooks/docker/deploy-docker-redm.yml deleted file mode 100644 index f3a5deb..0000000 --- a/playbooks/docker/deploy-docker-redm.yml +++ /dev/null @@ -1,9 +0,0 @@ - - name: Deploiement du container "RedM" - vars: - name_docker: redm - hosts: localhost - connection: local - become: true - become_user: "{{ m_user_name }}" - roles: - - deploy-docker \ No newline at end of file diff --git a/roles/deploy-docker/templates/dolibarr.yml b/roles/deploy-docker/templates/dolibarr.yml deleted file mode 100644 index 8eccbed..0000000 --- a/roles/deploy-docker/templates/dolibarr.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: "3" -services: - mariadb: - image: mariadb:latest - environment: - MYSQL_ROOT_PASSWORD: 5XgEvqxdAUTA6f - MYSQL_DATABASE: dolibarr - web: - image: tuxgasy/dolibarr - environment: - DOLI_DB_HOST: mariadb - DOLI_DB_USER: root - DOLI_DB_PASSWORD: 5XgEvqxdAUTA6f - DOLI_DB_NAME: dolibarr - DOLI_URL_ROOT: 'http://0.0.0.0' - PHP_INI_DATE_TIMEZONE: 'Europe/Paris' - ports: - - "80:80" - links: - - mariadb \ No newline at end of file