Compare commits

...

16 Commits

Author SHA1 Message Date
6cfe40b998 création readme s-backup 2024-01-29 15:56:30 +01:00
e48d63a8bc update 2024-01-29 14:32:54 +01:00
873b6b6def update readme 2024-01-29 14:28:53 +01:00
3d94e6c050 update README 2024-01-29 14:23:08 +01:00
151c0adf88 elk-filebeat-cli filebeat.yml 2024-01-26 15:48:18 +01:00
745bc05e76 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gsb/gsb2024 2024-01-26 15:00:44 +01:00
82561d5d0a update gotify.sh 2024-01-26 14:59:57 +01:00
df1000e1b5 modif droit copie cle privee 2024-01-26 14:55:25 +01:00
0824fd9621 update 2024-01-26 14:22:09 +01:00
3c680769be update zabbix-srv pour gotify 2024-01-26 14:15:31 +01:00
8ceaa8791f maj readme zabbix-srv 2024-01-26 10:55:33 +01:00
5f5aea168c chgt version ELK : 8.11.4 2024-01-26 09:56:04 +01:00
ef5701c5d1 mkvm: hash table pour memoire VM 2024-01-26 09:33:11 +01:00
f74728292b peaufinage README lb 2024-01-26 09:27:29 +01:00
bfdca163f7 ajout README roles lb 2024-01-26 09:23:17 +01:00
cb1b315819 update mkvm.ps1 2024-01-26 08:56:23 +01:00
18 changed files with 149 additions and 36 deletions

View File

@ -39,7 +39,7 @@ str7="wget -nc -4 https://github.com/goss-org/goss/releases/latest/download/dgos
str8="wget -nc -4 'https://gestsup.fr/index.php?page=download&channel=stable&version=3.2.30&type=gestsup' -O gestsup_3.2.30.zip"
#METRICBEAT ET FILEBEAT
ELKREL=8.11.3
ELKREL=8.11.4
str81="wget -nc -4 https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-amd64.deb"
str82="wget -nc -4 https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-windows-x86_64.zip"
str83="wget -nc -4 https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-${ELKREL}-windows-x86_64.zip"

View File

@ -1 +1 @@
BEATVER: "8.11.5"
BEATVER: "8.11.4"

View File

@ -1,17 +1,31 @@
---
- name: Récupération de filebeat
get_url:
url: http://s-adm.gsb.adm/gsbstore/filebeat-${BEATVAR}-amd64.deb
url: "http://s-adm.gsb.adm/gsbstore/filebeat-{{ BEATVER }}-amd64.deb"
dest: /tmp/
- name: Installation de filebeat
apt:
deb: /tmp/filebeat-${BEATVEAR}-amd64.deb
deb: "/tmp/filebeat-{{ BEATVER }}-amd64.deb"
- name: Changement du fichier de conf
copy:
src: filebeat.yml
dest: /etc/filebeat/filebeat.yml
- name: Chgt filebeat.yml - localhost:9200 - Elastic
replace:
path: /etc/filebeat/filebeat.yml
regexp: 'localhost:9200'
replace: 's-elk.gsb.adm:9200'
backup: yes
- name: Chgt filebeat.yml - localhost:5601 - Kibana
replace:
path: /etc/filebeat/filebeat.yml
regexp: 'localhost:5601'
replace: 's-elk.gsb.adm:5601'
backup: yes
#- name: Changement du fichier de conf
# copy:
# src: filebeat.yml
# dest: /etc/filebeat/filebeat.yml
- name: Configuration de filebeat
shell: filebeat modules enable system

16
roles/gotify/README.md Normal file
View File

@ -0,0 +1,16 @@
# Rôle Gotify
***
Rôle gotify pour la notification Zabbix et pas que
## Que fait le rôle gotify ?
Le rôle gotify va installer gotify en binaire, il s'agit d'une installation basic sans https.
***
## Identifiant
***
Admin
Admin
***

10
roles/lb-bd/README.md Normal file
View File

@ -0,0 +1,10 @@
# Role lb-bd
***
Rôle lb-bd pour la mise en place de la base de données du serveur WordPress.
## Tables des matières
1. Que fait le rôle lb-bd ?
## Que fait le rôle lb-bd ?
Ce rôle installe le paquet `mariadb-server` puis créé et configure la base de données nommée **wordpressdb** en ouvrant le port 3306 et en créant l'utilisateur MySQL nommé **wordpressuser** avec le mot de passe **wordpresspasswd**.

View File

@ -4,6 +4,7 @@ Rôle lb-front pour la répartition de charge des serveurs web sur WordPress ave
## Tables des matières
1. Que fait le rôle lb-front ?
2. Ordre d'installation des serveurs.
## Que fait le rôle lb-front ?
@ -13,3 +14,9 @@ Le rôle lb-front va installer `haproxy` pour le load balancing/la répartition
le fichier va faire du Round-Robin, un algoritme qui va équilibrer le nombre de requêtes entre s-lb-web1 et s-lb-web2.
le site web est accessibe à l'adresse <http://s-lb.gsb.adm>.
## Ordre d'installation des serveurs.
1. Le serveur s-lb avec haproxy qui va "initialiser" les sous-réseaux dans la DMZ.
2. Le serveur s-lb-bd qui va contenir la base de données WordPress utilisée par les serveurs web.
3. Le serveur s-nas qui va stocker la configuration WordPress et la partager aux serveurs web en NFS. Il va aussi utiliser la base de données sur stockée s-lb-bd.
4. Les serveurs s-web1 et s-web2 qui vont installer Apache2, PHP et afficher le serveur WordPress.

View File

@ -1,3 +1,10 @@
##Partage NFS
Ce rôle sert à installer nfs et à monter le répertoire /home/wordpress du s-nas dans /var/www/html/wordpress sur les serveurs webs.
# Rôle lb-nfs-client
***
Rôle lb-nfs-client pour l'accès au serveur NFS sur les serveurs lb-web1 et lb-web2.
## Tables des matières
1. Que fait le rôle lb-nfs-client ?
## Que fait le rôle lb-nfs-client ?
Ce rôle sert à installer le paquet `nfs-common` et à monter le répertoire /home/wordpress du s-nas dans /var/www/html/wordpress sur les serveurs webs.

View File

@ -1,10 +1,17 @@
# Role s-nas-server
## Installation de nfs-server et mise en oeuvre du partage /home/wordpress
# Role lb-nfs-server
***
Rôle lb-nfs-server pour la mise en place du partage des fichiers de configuration de WordPress.
## Tables des matières
1. Que fait le rôle lb-nfs-server ?
## Que fait le rôle lb-nfs-server ?
Ce rôle :
* installe **nfs-server**
* installe le paquet `nfs-server`
* copie le fichier de configuration **exports** pour exporter le répertoire **/home/wordpress**
* relance le service **nfs-server**
* décompresse wordpress
### Objectif
Le répertoire **/home/wordpress** est exporté par **nfs** sur le réseau **n-dmz-db**
* décompresse WordPress dans **/home/wordpress**
* relance le service `nfs-server`
* Configure l'accès de WordPress à la base de données dans le fichier `wp-config.php`
Le répertoire **/home/wordpress** est exporté par NFS dans le sous-réseau **n-dmz-db**

View File

@ -1,3 +1,12 @@
##Téléchargement et configuration de WordPress
Ce rôle télécharge wordpress depuis s-adm puis configure le fichier wp-config.php pour la situation du gsb.
# Rôle lb-web
***
Rôle lb-web pour l'affichage et l'utilisation du site web.
## Tables des matières
1. Que fait le rôle lb-web ?
## Que fait le rôle lb-web ?
Ce rôle télécharge les paquets nécessaires au fonctionnement du site web (`apache2`, `php` et `mariadb-client`) qui permetront aux serveurs web d'accerder a la base de données de WordPress.
Le site web est accessibe à l'adresse http://s-lb.gsb.adm.

View File

@ -16,5 +16,5 @@
copy:
src: /root/id_rsa_sbackup
dest: /var/www/html/gsbstore
mode: 0600
mode: 0644
remote_src: yes

View File

@ -0,0 +1,8 @@
###récupération d'une clé publique###
Ce script permet de récupérer un clé publique créer depuis la machine s-adm:
1. Création du répertoire .ssh :
- Il crée le répertoire `~/.ssh` avec des permissions strictes (0700) pour l'utilisateur.
2. Récupération de la clé privée :
- Il télécharge une clé privée depuis l'URL spécifiée (`http://s-adm.gsb.adm/gsbstore/id_rsa_sbackup`) et la place dans le répertoire `~/.ssh` avec le nom `id_rsa_sbackup`.
- La clé privée est configurée avec des permissions strictes (0600) pour garantir la sécurité.

View File

@ -1,9 +1,9 @@
- name: Intallation paquet zabbix agent
- name: Installation paquet zabbix agent
get_url:
url: "https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb"
dest: "/tmp"
- name: Intallation paquet zabbix agent suite
- name: Installation paquet zabbix agent suite
apt:
deb: "/tmp/zabbix-release_6.4-1+debian12_all.deb"
state: present
@ -12,7 +12,7 @@
apt:
update_cache: yes
- name: Intallation Zabbix agent
- name: Installation Zabbix agent
apt:
name: zabbix-agent
state: present
@ -33,6 +33,6 @@
src: hostcreate.sh.j2
dest: /tmp/hostcreate.sh
#- name: lancement script hostcreate
#command: bash /tmp/hostcreate.sh
- name: lancement script hostcreate
command: bash /tmp/hostcreate.sh

View File

@ -10,6 +10,12 @@ Rôle zabbix-srv pour la supervision des différentes machines
Le rôle zabbix-srv va installer `apache2` pour le serveur web, `zabbix-server` pour la supervision et `zabbix-agent` pour gérer les clients, **Zabbix** qui sera notre outil de supervision.
Lors de l'éxecution du playbook, les identifiants de la BDD sont crées avec le nom d'utilisateur "zabbix" et le mot de passe "password".
La base de données est importée depuis une sauvegarde existante sur s-adm qui contient les clés API pour la notification gotify.
Lors de l'éxecution du playbook, les identifiants de la BDD sont crées avec le nom d'utilisateur "zabbix" et le mot de passe "password" pour se connecter a la BD importée.
Pour l'identifiant de Zabbix, c'est "Admin" et le mot de passe "zabbix", à l'adresse <http://s-mon/zabbix>.
## Notification Zabbix avec gotify
Ce rôle installe la base pour pouvoir faire des notification avec gotify, la base importée est pre-configurer pas besoin de rajouter le media gotify. Le serveur gotify est sur s-backup et est accessible via s-backup.gsb.adm:8008.

View File

@ -0,0 +1,7 @@
#!/bin/bash
ALERTSENDTO=$1
ALERTSUBJECT=$2
ALERTMESSAGE=$3
curl -X POST "http://s-backup.gsb.adm:8008/message?token=$ALERTSENDTO" -F "title=$ALERTSUBJECT" -F "message=$ALERTMESSAGE" -F "priority=5" > /dev/null 2>&1

View File

@ -81,3 +81,8 @@
name: apache2
state: restarted
enabled: yes
- name: 14. Gotify
copy:
src: gotify.sh
dest: /usr/lib/zabbix/alertscripts

View File

@ -4,11 +4,12 @@
# include: config.yml
roles:
- base
- zabbix-cli
# - zabbix-cli
- goss
- dns-master
- webautoconf
- journald-snd
- elk-filebeat-cli
# - journald-snd
- ssh-cli
- post

View File

@ -41,8 +41,9 @@ create_vm () {
VBoxManage unregistervm --delete "${nom}"
fi
vboxmanage import "${nomova}" --vsys 0 --vmname "${nom}"
if [[ -v vmMem["${nom}" ]]; then
mem=vmMem["${nom}"]
if [[ -v vmMem[${nom}] ]]; then
mem=${vmMem[${nom}]}
echo "machine ${nom}: ${mem} ..."
VBoxManage modifyvm "${nom}" --memory "${mem}"
fi
}

View File

@ -11,12 +11,27 @@ $ovafilefog="$HOME\Downloads\debian-bullseye-gsb-${ovafogrelease}.ova"
$vboxmanage="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
$deletemode=0
$vmMem = @{
"r-int" = "512"
"r-ext" = "512"
"s-nas" = "512"
"s-infra" = "768"
"s-backup" = "768"
"s-elk" = "3072"
}
#FONCTIONS
function create_vm{ param([string]$nomvm)
#Importation depuis l'ova
& "$vboxmanage" import "$ovafile" --vsys 0 --vmname "$nomvm"
Write-Host "Machine $nomvm importée"
if ($vmMem.ContainsKey($nomvm)) {
& "$vboxmanage" import "$ovafile" --vsys 0 --vmname "$nomvm" --memory $vmMem[$nomvm]
Write-Host "Machine $nomvm importée"
} else {
#Importation depuis l'ova
& "$vboxmanage" import "$ovafile" --vsys 0 --vmname "$nomvm"
Write-Host "Machine $nomvm importée"
}
}
function create_if{ param([string]$nomvm, [string]$nic, [int]$rang, [string]$reseau)