Compare commits

..

5 Commits

Author SHA1 Message Date
ca6cdd921a Mise à jour du script 2024-10-25 23:36:41 +02:00
619d3929cd Ajout de vuejs 2024-10-25 23:36:20 +02:00
65eebd60e3 Ajout de prometheus 2024-10-25 23:36:06 +02:00
1e6ec0890a Ajout de grafana 2024-10-25 23:35:52 +02:00
77984a6e9f Ajout de cadvisor 2024-10-25 23:35:41 +02:00
8 changed files with 335 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
- job_name: cadvisor_metrics
static_configs:
- targets: ["172.17.0.1:3001"]

View File

@@ -0,0 +1,17 @@
version: "3"
services:
cadvisor:
container_name: cadvisor
image: gcr.io/cadvisor/cadvisor:latest
restart: unless-stopped
ports:
- "3001:8080"
volumes:
- "/:/rootfs:ro"
- "/var/run:/var/run:ro"
- "/sys:/sys:ro"
- "/var/lib/docker/:/var/lib/docker:ro"
- "/dev/disk/:/dev/disk:ro"
privileged: true
devices:
- "/dev/kmsg"

View File

@@ -0,0 +1,12 @@
version: "3.8"
services:
grafana:
image: grafana/grafana
container_name: grafana
restart: unless-stopped
ports:
- "3003:3000"
volumes:
- grafana-storage:/var/lib/grafana
volumes:
grafana-storage: {}

View File

@@ -11,9 +11,252 @@ if! [ -x "$(command -v git)" ]; then
apt update
apt install -y git
echo "Git a été installé avec succès!"
read -p "Veuillez saisir votre nom d'utilisateur Git: " username
read -p "Veuillez saisir votre adresse e-mail Git: " email
git config --global user.name "$username"
git config --global user.email "$email"
echo "Votre nom d'utilisateur et votre adresse e-mail Git ont été configurés avec succès!"
else
echo "Installation de Git annulée."
fi
else
echo "Git est déjà installé sur votre système."
fi
# Vérifier si btop est déjà installé
if! [ -x "$(command -v btop)" ]; then
# Si btop n'est pas installé, demander confirmation avant installation
read -p "btop n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer btop
echo "Installation de btop en cours..."
apt update
apt install -y btop
echo "btop a été installé avec succès!"
else
echo "Installation de btop annulée."
fi
else
echo "btop est déjà installé sur votre système."
fi
# Vérifier si tree est déjà installé
if! [ -x "$(command -v tree)" ]; then
# Si tree n'est pas installé, demander confirmation avant installation
read -p "tree n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer tree
echo "Installation de tree en cours..."
apt update
apt install -y tree
echo "tree a été installé avec succès!"
else
echo "Installation de tree annulée."
fi
else
echo "tree est déjà installé sur votre système."
fi
# Vérifier si Docker est déjà installé
if! [ -x "$(command -v docker)" ]; then
# Si Docker n'est pas installé, demander confirmation avant installation
read -p "Docker n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer Docker
echo "Installation de Docker en cours..."
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
echo "Docker a été installé avec succès!"
# Donne les droits à l'utilisateur courant d'exécuter Docker sans avoir à utiliser sudo
usermod -aG docker $USER
mkdir -p /home/$USER/docker
echo "Veuillez vous déconnecter et vous reconnecter pour appliquer les changements."
else
echo "Installation de Docker annulée."
fi
else
echo "Docker est déjà installé sur votre système."
fi
# Vérifier si le docker compose de nginx reverse proxy est déjà installé mais avant vérifier si docker est installé
if! [ -x "$(command -v docker)" ]; then
if [! -d "nginx-proxy" ]; then
# Si le docker compose de nginx reverse proxy n'est pas installé, demander confirmation avant installation
read -p "Le docker compose de nginx reverse proxy n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r -d "n"
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, cloner le dépôt Git contenant le docker compose de nginx reverse proxy
echo "Installation du docker compose de nginx reverse proxy en cours..."
mkdir -p /home/$USER/docker/nginx-proxy
cd /home/$USER/docker/nginx-proxy
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/nginx-proxy-manager/docker-compose.yml
docker-compose up -d
echo "Le docker compose de nginx reverse proxy a été installé avec succès!"
else
echo "Installation du docker compose de nginx reverse proxy annulée."
fi
else
echo "Le docker compose de nginx reverse proxy est déjà installé sur votre système."
fi
fi
# Vérifier si npm est déjà installé
if! [ -x "$(command -v npm)" ]; then
# Si npm n'est pas installé, demander confirmation avant installation
read -p "npm n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer npm
echo "Installation de npm en cours..."
apt update
apt install -y npm
echo "npm a été installé avec succès!"
# Vérifier si nvm est déjà installé
if! [ -x "$(command -v nvm)" ]; then
# Si nvm n'est pas installé, demander confirmation avant installation
read -p "nvm n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer nvm
echo "Installation de nvm en cours..."
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
echo "nvm a été installé avec succès!"
source ~/.bashrc
# Installer la dernière version de Node.js avec nvm
nvm install node
nvm use node
echo "La dernière version de Node.js a été installée avec succès!"
else
echo "Installation de nvm annulée."
fi
else
echo "nvm est déjà installé sur votre système."
fi
else
echo "Installation de npm annulée."
fi
else
echo "npm est déjà installé sur votre système."
fi
# Vérifier si le dossier www est déjà créé dans le répertoire de docker
if! [ -x "$(command -v docker)" ]; then
if [! -d "/home/$USER/docker/www" ]; then
# Si le dossier www n'est pas créé, demander confirmation avant création
read -p "Le dossier www n'est pas créé dans le répertoire de docker. Voulez-vous le créer? (o/n) " -n 1 -r -d "n"
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, créer le dossier www
echo "Création du dossier www en cours..."
mkdir -p /home/$USER/docker/www
echo "Le dossier www a été créé avec succès!"
else
echo "Création du dossier www annulée."
fi
else
echo "Le dossier www est déjà créé dans le répertoire de docker."
fi
fi
# Vérifier si le docker est installé et si le répertoire www est créé pour installer une app vuejs
if! [ -x "$(command -v docker)" ]; then
if [ -d "/home/$USER/docker/www" ]; then
# Si le docker est installé et le répertoire www est créé, demander confirmation avant installation de l'app Vue.js
read -p "Voulez-vous installer une application Vue.js dans le répertoire www? (o/n) " -n 1 -r -d "n"
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer l'app Vue.js en demandant le nom du projet
read -p "Veuillez saisir le nom du projet Vue.js: " project
echo "Installation de l'application Vue.js en cours..."
cd /home/$USER/docker/www
npm create vue@latest $project
cd $project
npm install
# Vérifier si le docker compose de l'app Vue.js est déjà installé
if [! -d "$project" ]; then
# Si le docker compose de l'app Vue.js n'est pas installé, demander confirmation avant installation
read -p "Le docker compose de l'application Vue.js n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r -d "n"
echo "Installation du docker compose de l'application Vue.js en cours..."
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/vuejs/docker-compose.yml
# Créer le 'nom_container' dans le fichier docker-compose.yml par le nom du projet
sed -i "s/nom_container/$project/g" docker-compose.yml
# Demander le port d'écoute de l'app Vue.js
read -p "Veuillez saisir le port d'écoute de l'application Vue.js: " port
echo "EXTERNAL_PORT=$port" > .env
echo "INTERNAL_PORT=8080" >> .env
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/vuejs/Dockerfile
docker-compose up -d
echo "Le docker compose de l'application Vue.js a été installé avec succès!"
else
echo "Le docker compose de l'application Vue.js est déjà installé sur votre système."
fi
else
echo "Installation de l'application Vue.js annulée."
fi
else
echo "Le répertoire www n'est pas créé dans le répertoire de docker."
fi
# Vérifier si grafana est déjà installé
if! [ -x "$(command -v docker)" ]; then
if [! -d "/home/$USER/docker/grafana" ]; then
# Si grafana n'est pas installé, demander confirmation avant installation
read -p "Grafana n'est pas installé. Voulez-vous l'installer? (o/n) " -n 1 -r -d "n"
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer grafana
echo "Installation de grafana en cours..."
mkdir -p /home/$USER/docker/grafana
cd /home/$USER/docker/grafana
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/grafana/docker-compose.yml
docker-compose up -d
echo "Grafana a été installé avec succès!"
# Vérifier si l'utilisateur veut installer prometheus
read -p "Voulez-vous installer Prometheus? (o/n) " -n 1 -r -d "n"
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer prometheus
echo "Installation de Prometheus en cours..."
mkdir -p /home/$USER/docker/prometheus
cd /home/$USER/docker/prometheus
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/prometheus/docker-compose.yml
mkdir -p /home/$USER/docker/prometheus/prometheus
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/prometheus/prometheus/prometheus.yml
# Vérifier si l'utilisateur veut installer cadvisor
read -p "Voulez-vous installer cAdvisor? (o/n) " -n 1 -r -d "n"
echo
if [[ $REPLY =~ ^[Oo]$ ]]; then
# Si l'utilisateur accepte, installer cadvisor
echo "Installation de cAdvisor en cours..."
mkdir -p /home/$USER/docker/cadvisor
cd /home/$USER/docker/cadvisor
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/cadvisor/docker-compose.yml
docker-compose up -d
echo "cAdvisor a été installé avec succès!"
echo "Ajout de cAdvisor dans le fichier de configuration de Prometheus..."
wget https://ganesh.turing.untypequicode.fr/untypequicode/script-vps/raw/branch/main/cadvisor/config-prometheus.yml
cat config-prometheus.yml >> /home/$USER/docker/prometheus/prometheus/prometheus.yml
echo "cAdvisor a été ajouté avec succès dans le fichier de configuration de Prometheus!"
echo "cAdvisor a été installé avec succès!"
else
echo "Installation de cAdvisor annulée."
fi
cd /home/$USER/docker/prometheus
docker-compose up -d
echo "Prometheus a été installé avec succès!"
else
echo "Installation de Prometheus annulée."
fi
cd /home/$USER/docker/grafana
docker-compose up -d
echo "Grafana a été installé avec succès!"
else
echo "Installation de grafana annulée."
fi
else
echo "Grafana est déjà installé sur votre système."
fi
fi

View File

@@ -0,0 +1,15 @@
version: "3.8"
services:
prometheus:
image: prom/prometheus
container_name: prometheus
command:
- "--config.file=/etc/prometheus/prometheus.yml"
ports:
- 3002:9090
restart: unless-stopped
volumes:
- ./prometheus:/etc/prometheus
- prom_data:/prometheus
volumes:
prom_data:

View File

@@ -0,0 +1,21 @@
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets: []
scheme: http
timeout: 10s
api_version: v1
scrape_configs:
- job_name: prometheus
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- 172.17.0.1:3002

11
vuejs/Dockerfile Executable file
View File

@@ -0,0 +1,11 @@
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

13
vuejs/docker-compose.yml Normal file
View File

@@ -0,0 +1,13 @@
services:
vue_app:
container_name: nom_container_container
restart: unless-stopped
build:
context: .
dockerfile: Dockerfile
ports:
- ${EXTERNAL_PORT}:${INTERNAL_PORT}
volumes:
- .:/app
- /app/node_modules
command: "npm run dev -- --host --port ${INTERNAL_PORT}"