Compare commits

..

1 Commits

Author SHA1 Message Date
a56241b4c6 modif save 2024-01-25 11:22:44 +01:00
15 changed files with 58 additions and 213 deletions

View File

@ -11,7 +11,7 @@ GITPRJ=gsb2024
apt-get update apt-get update
apt-get install -y lighttpd git apt-get install -y lighttpd git
STOREREP="/var/www/html/gsbstore" STOREREP="/var/www/html/gsbstore"
SRC="${SRC:-http://depl.sio.lan/gsbstore}"
GLPIREL=10.0.11 GLPIREL=10.0.11
str="wget -nc -4 https://github.com/glpi-project/glpi/releases/download/${GLPIREL}/glpi-${GLPIREL}.tgz" str="wget -nc -4 https://github.com/glpi-project/glpi/releases/download/${GLPIREL}/glpi-${GLPIREL}.tgz"
@ -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" 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 #METRICBEAT ET FILEBEAT
ELKREL=8.11.4 ELKREL=8.11.3
str81="wget -nc -4 https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-amd64.deb" 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" 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" str83="wget -nc -4 https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-${ELKREL}-windows-x86_64.zip"
@ -50,12 +50,6 @@ str84="wget -nc -4 https://artifacts.elastic.co/downloads/beats/metricbeat/metri
(cat <<EOT > "${STOREREP}/getall" (cat <<EOT > "${STOREREP}/getall"
#!/bin/bash #!/bin/bash
if [[ -z "${SRC+x}" ]]; then
echo "erreur : variable SRC indefinie"
echo " SRC : URL serveur deploiement"
echo "export SRC=http://depl.sio.adm/gsbstore ; ./$0"
exit 1
fi
${str} ${str}
${str31} ${str31}
@ -78,7 +72,6 @@ ${str81}
${str82} ${str82}
${str83} ${str83}
${str84} ${str84}
wget -nc -4 "${SRC}/zabbix.sql.gz" -O zabbix.sql.gz
EOT EOT
) )

View File

@ -1,22 +1,9 @@
# Le rôle elk ## Principe du rôle elk
ELK Version 8.5.3 ELK 8.5.3
Ce rôle permet de créer un serveur ELK pour centraliser les logs et de des métriques pour simplifier la gestion du parc informatique GSB.
Ce rôle a pour but d'installer un serveur ELK pour centraliser les logs et les métriques pour simplifier la gestion du parc informatique GSB. Le principe de ce rôle est d'installer docker, les différentes tâches de ce rôle sont de :
Le rôle **elk** installe **docker**, les différentes tâches de ce rôle sont de :
- Vérifier si ELK est déjà installé, - Vérifier si ELK est déjà installé,
- clonage du depot **devianthony** depuis github, - Importation un docker-compose depuis github,
- Changement de la configuration pour passer en version 'basic' - Changement la configuration pour passer en version 'basic'
- Lancement d'ELK avec docker-compose - Lancement d'ELK avec docker-compose
## Lancement manuel
- depuis le répertoire **nxc** :
````shell
docker compose up setup
docker compose up -d
````

View File

@ -21,7 +21,7 @@
regexp: 'xpack.license.self_generated.type: trial' regexp: 'xpack.license.self_generated.type: trial'
replace: 'xpack.license.self_generated.type: basic' replace: 'xpack.license.self_generated.type: basic'
# - name: Execution du fichier docker-compose.yml - name: Execution du fichier docker-compose.yml
# shell: docker compose pull shell: docker compose up -d
# args: args:
# chdir: /root/elk chdir: /root/elk

View File

@ -1,10 +0,0 @@
# 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

@ -1,22 +0,0 @@
# Rôle lb-front
***
Rôle lb-front pour la répartition de charge des serveurs web sur WordPress avec HAProxy
## 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 ?
Le rôle lb-front va installer `haproxy` pour le load balancing/la répartition de charge et va configurer le fichier `/etc/haproxy/haproxy.cfg`.
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,10 +1,3 @@
# Rôle lb-nfs-client ##Partage NFS
***
Rôle lb-nfs-client pour l'accès au serveur NFS sur les serveurs lb-web1 et lb-web2.
## Tables des matières 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.
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,17 +1,10 @@
# Role lb-nfs-server # Role s-nas-server
*** ## Installation de nfs-server et mise en oeuvre du partage /home/wordpress
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 : Ce rôle :
* installe le paquet `nfs-server` * installe **nfs-server**
* copie le fichier de configuration **exports** pour exporter le répertoire **/home/wordpress** * copie le fichier de configuration **exports** pour exporter le répertoire **/home/wordpress**
* décompresse WordPress dans **/home/wordpress** * relance le service **nfs-server**
* relance le service `nfs-server` * décompresse wordpress
* Configure l'accès de WordPress à la base de données dans le fichier `wp-config.php` ### Objectif
Le répertoire **/home/wordpress** est exporté par **nfs** sur le réseau **n-dmz-db**
Le répertoire **/home/wordpress** est exporté par NFS dans le sous-réseau **n-dmz-db**

View File

@ -1,12 +1,3 @@
# Rôle lb-web ##Téléchargement et configuration de WordPress
***
Rôle lb-web pour l'affichage et l'utilisation du site web.
## Tables des matières Ce rôle télécharge wordpress depuis s-adm puis configure le fichier wp-config.php pour la situation du gsb.
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

@ -1,16 +1,8 @@
# Installation de Nextcloud et du proxy inverse Traefik # Installation de Nextcloud et du proxy inverse Traefik
## Explication de l'installation de Nextcloud Nextcloud et Traefik fonctionnent grâce à docker. Pour pouvoir faire fonctionner ce playbook, docker doit être installé.
Afin de pouvoir faire fonctionner Nextcloud et Traefik, il faut mettre en place docker. Dans un premier plan, il vas donc falloir lancer le script **getall** sur **s-adm**. Ensuite dans un second temps, il faudra etre dans le fichier **/nxc** sur **s-nxc** et lancer **docker-compose.yaml**. Pour finir, il faudra ajouter l'authentification LDAP au nextcloud grace a l'AD de **s-win**.
# <p align="center">Procédure d'installation</p> ## 1.
***
## 1. Installation docker
Voir: https://gitea.lyc-lecastel.fr/gsb/gsb2024/src/branch/main/roles/docker
## 2. Fonctionnement du playbook s-nxc
Le playbook crée le dossier **nxc** à la racine de root. Le playbook crée le dossier **nxc** à la racine de root.
@ -18,11 +10,11 @@ Les fichiers "nextcloud.yml" et "traefik.yml" y seront copiés depuis le répert
Enfin, dans le répertoire nxc, sont créés les répertoires **certs** et **config**. Enfin, dans le répertoire nxc, sont créés les répertoires **certs** et **config**.
### 2.1 Copie des fichiers ## 2. Copie des fichiers
Le playbook copie les fichiers placés dans "files" et les places dans les bons répertoires. Le playbook copie les fichiers placés dans "files" et les placer dans les bons répertoires.
### 2.2 Génération du certificat ## 3. Génération du certificat
Le playbook crée un certificat **x509** grâce à **mkcert**, il s'agit d'une solution permettant de créer des certificats auto-signés. Pour cela, il télécharge **mkcert** sur **s-adm** (utiliser le script **getall**). Le playbook crée un certificat **x509** grâce à **mkcert**, il s'agit d'une solution permettant de créer des certificats auto-signés. Pour cela, il télécharge **mkcert** sur **s-adm** (utiliser le script **getall**).
@ -33,7 +25,7 @@ Pour créer le certificat, le playbook exécute les commandes (lancé depuis nxc
/usr/local/bin/mkcert -install # Installe mkcert /usr/local/bin/mkcert -install # Installe mkcert
/usr/local/bin/mkcert -key-file key.pem -cert-file cert.pem "hôte.domaine.local" "*.domaine.local" #Crée le certificat le DNS spécifié /usr/local/bin/mkcert -key-file key.pem -cert-file cert.pem "hôte.domaine.local" "*.domaine.local" #Crée le certificat le DNS spécifié
``` ```
## 3. Lancement ## 4. Lancement
Le playbook lance les fichiers "docker-compose" à savoir : nextcloud.yml et traefik.yml qui démarrent les deux piles **docker**. Le playbook lance les fichiers "docker-compose" à savoir : nextcloud.yml et traefik.yml qui démarrent les deux piles **docker**.
@ -45,28 +37,22 @@ ATTENTION : Après avoir relancé la VM, executez le script "nxc-start.sh" afin
Une fois le script terminé, le site est disponible ici : https://s-nxc.gsb.lan Une fois le script terminé, le site est disponible ici : https://s-nxc.gsb.lan
## 4. Ajout authentification LDAP ## 5. Ajout authentification LDAP
Pour ajouter l'authentification LDAP au Nextcloud, depuis **n-user** il faut : Pour ajouter l'authentification LDAP au Nextcloud, il faut :
* Une fois l'installation de Nextcloud terminé, cliquez sur le profil et "Application" * Une fois l'installation de Nextcloud terminé, cliquez sur le profil et Application
* Dans vos applications, descendre et activer "LDAP user and group backend" * Dans vos applications, descendre et activer "LDAP user and group backend"
* Puis cliquer sur le profil, puis "Paramètres d'administration" et dans "Administration" cliquer sur "Intégration LDAP/AD" * Puis cliquer sur le profil, puis Paramètres d'administration et dans Administration cliquer sur Intégration LDAP/AD
* Une fois sur la page d'intégration LDAP/AD : * Une fois sur la page d'intégration LDAP/AD :
* Dans Hôte mettre : * Dans Hôte mettre :
> **ldap://s-win.gsb.lan** > ldap://s-win.gsb.lan
* Cliquer sur "Détecter le port" (normalement le port 389 apparait) * Cliquer sur Détecter le port (normalement le port 389 apparait)
* Dans DN Utilisateur mettre : * Dans DN Utilisateur mettre :
> **CN=nextcloud,CN=Users,DC=gsb,DC=lan** > CN=nextcloud,CN=Users,DC=GSB,DC=LAN
* Mot de passe : * Mot de passe :
> **Azerty1+** > Azerty1+
* Et dans "Un DN de base par ligne" : * Et dans Un DN de base par ligne :
> **DC=gsb,DC=lan** > DC=GSB,DC=LAN
* Cliquer sur "Détecter le DN de base" (normalement il apparaitra automatiquement) * Après la configuration passe OK
* Après la configuration réaliser, cliquer sur "Continuer", puis cliquer 3 fois sur continuer * Une fois la configuration finie, cliquer 3 fois sur continuer
* Une fois arrivé sur "Groupes", vous pouvez vous déconnecter du compte Admin et vous connecter avec un compte qui est dans l'AD. * Une fois arrivé sur Groupes, vous pouvez vous déconnecter du compte Admin et vous connecter avec un compte qui est dans l'AD.
## Contributeurs
- LG
- CH

View File

@ -1,10 +0,0 @@
#!/bin/bash
# envoie sur s-backup
BACKUP=/home/backup/s-nxc
# Préparation des dossiers qui vont accueillir les données à sauvegarder (-e lance le répertoire si il existe)
[[ -e "${BACKUP}" ]] || mkdir -p "${BACKUP}"
# Sauvegarde du fichier nxc.tgz vers la machine s-backup
scp -i ~/.ssh/id_rsa_sbackup root@s-nxc.gsb.adm:/root/nxc/nxc.tgz "${BACKUP}/"

View File

@ -14,14 +14,6 @@
group: root group: root
mode: '0755' mode: '0755'
- name: copie script backupnxc dans /usr/local/bin
copy:
src: backupnxc.sh
dest: /usr/local/bin
owner: root
group: root
mode: '0755'
- name: crontab backupsmb ( commentee par defaut ) - name: crontab backupsmb ( commentee par defaut )
cron: cron:
name: backupsmb name: backupsmb

View File

@ -10,8 +10,6 @@ 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. 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.
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".
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>. Pour l'identifiant de Zabbix, c'est "Admin" et le mot de passe "zabbix", à l'adresse <http://s-mon/zabbix>.

View File

@ -29,60 +29,42 @@
name: mariadb name: mariadb
state: started state: started
- name: 6. Creer un utilisateur et lui attribuer tous les droits - name: 6. Modifier la variable trust function creators pour importer la base données
community.mysql.mysql_user:
name: zabbix
password: password
priv: '*.*:ALL,GRANT'
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: 7. Modifier la variable trust function creators pour importer la base données
community.mysql.mysql_variables: community.mysql.mysql_variables:
variable: log_bin_trust_function_creators variable: log_bin_trust_function_creators
value: 1 value: 1
mode: global mode: global
login_unix_socket: /var/run/mysqld/mysqld.sock login_unix_socket: /var/run/mysqld/mysqld.sock
- name: 8. Récupérer la base de données - name: 7. Importer la base de données
get_url:
url: http://s-adm.gsb.adm/gsbstore/zabbix.sql.gz
dest: /tmp
- name: 9. Importer la base de données
community.mysql.mysql_db: community.mysql.mysql_db:
state: import state: import
name: zabbix name: zabbix
encoding: utf8mb4 encoding: utf8mb4
target: /tmp/zabbix.sql.gz target: http://s-adm.gsb.adm/gsbstore/zabbix.sql.gz
login_unix_socket: /var/run/mysqld/mysqld.sock login_unix_socket: /var/run/mysqld/mysqld.sock
- name: 10. Remettre a zero la variable trust function creators - name: 8. Remettre a zero la variable trust function creators
community.mysql.mysql_variables: community.mysql.mysql_variables:
variable: log_bin_trust_function_creators variable: log_bin_trust_function_creators
value: 0 value: 0
mode: global mode: global
login_unix_socket: /var/run/mysqld/mysqld.sock login_unix_socket: /var/run/mysqld/mysqld.sock
- name: 11. Lancer le service zabbix-server - name: 9. Lancer le service zabbix-server
service: service:
name: zabbix-server name: zabbix-server
state: restarted state: restarted
enabled: yes enabled: yes
- name: 12. Lancer le service zabbix-agent - name: 10. Lancer le service zabbix-agent
service: service:
name: zabbix-agent name: zabbix-agent
state: restarted state: restarted
enabled: yes enabled: yes
- name: 13. Lancer le service apache2 - name: 11. Lancer le service apache2
service: service:
name: apache2 name: apache2
state: restarted state: restarted
enabled: yes enabled: yes
- name: 14. Gotify
copy:
src: gotify.sh
dest: /usr/lib/zabbix/alertscripts

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
mkvmrelease="v1.3.3" mkvmrelease="v1.3.2"
ovarelease="2023c" ovarelease="2023c"
ovafogrelease="2024a" ovafogrelease="2024a"
@ -10,18 +10,10 @@ ovafilefog="$HOME/Téléchargements/debian-bullseye-gsb-${ovafogrelease}.ova"
startmode=0 startmode=0
deletemode=0 deletemode=0
declare -A vmMem
vmMem[r-int]=512
vmMem[r-ext]=512
vmMem[s-nas]=512
vmMem[s-infra]=768
vmMem[s-backup]=768
vmMem[s-elk]=3072
usage () { usage () {
echo "$0 - version ${mkvmrelease} - Ova version ${ovarelease}" echo "$0 - version ${mkvmrelease} - Ova version ${ovarelease}"
echo "$0 : creation VM et parametrage interfaces" echo "$0 : creation VM et parametrage interfaces"
echo "usage : $0 [-r] [-s] <s-adm|s-infra|r-int|r-ext|s-proxy|s-mon|s-appli|s-backup|s-itil|s-nxc|s-fog>" echo "usage : $0 [-r] [-s] <s-adm|s-infra|r-int|r-ext|s-proxy|s-mon|s-appli|s-backup|s-itil|s-ncx|s-fog>"
echo " option -r : efface VM existante avant creation nouvelle" echo " option -r : efface VM existante avant creation nouvelle"
echo " option -s : start VM apres creation" echo " option -s : start VM apres creation"
exit 1 exit 1
@ -41,11 +33,6 @@ create_vm () {
VBoxManage unregistervm --delete "${nom}" VBoxManage unregistervm --delete "${nom}"
fi fi
vboxmanage import "${nomova}" --vsys 0 --vmname "${nom}" vboxmanage import "${nomova}" --vsys 0 --vmname "${nom}"
if [[ -v vmMem[${nom}] ]]; then
mem=${vmMem[${nom}]}
echo "machine ${nom}: ${mem} ..."
VBoxManage modifyvm "${nom}" --memory "${mem}"
fi
} }
setif () { setif () {

View File

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