Compare commits

...

10 Commits

Author SHA1 Message Date
5dcaeb0629 s-adm.yaml pour goss 2024-01-14 23:03:57 +01:00
gsb
82bda1c85b Actualiser roles/journald-rcv/README.md 2024-01-14 22:51:39 +01:00
0537e6f942 mise a jour test goss role s-itil s-mon. Actualisation de la documentation role journald-rcv modification des roles s-fog et s-itil 2024-01-14 22:47:02 +01:00
7310641ce0 typo 2024-01-14 22:44:49 +01:00
48b16468b6 typo inst-depl 2024-01-14 22:43:05 +01:00
c7a893651e inst-depl : inst goss 2024-01-14 22:39:56 +01:00
236e560329 inst-depl ipv4 et gestup 2024-01-14 22:30:01 +01:00
84144c72fb inst-depl => lighttpd 2024-01-14 22:15:23 +01:00
84aa96c106 maj handler role glpi 2024-01-14 14:20:13 +01:00
d6ddbb4dd6 MAJ doc README.md 2024-01-13 16:08:49 +01:00
10 changed files with 143 additions and 48 deletions

View File

@ -1,34 +1,34 @@
# gsb2024
2024-12-21 ps
2024-01-13 ps
Environnement et playbooks ansible pour le projet GSB 2024
Environnement et playbooks **ansible** pour le projet **GSB 2024**
## Quickstart
Prérequis :
* une machine LInux Debian Bookworm ou Windows
* une machine Linux Debian Bookworm ou Windows
* VirtualBox
* git
* fichier machines virtuelles **ova** :
* **debian-bookworm-gsb-2023c.ova**
* **debian-buster-gsb-2023a.ova**
* **debian-bullseye-gsb-2024a.ova**
## Les machines
* **s-adm** : routeur adm, DHCP + NAT, deploiement, proxy squid
* **s-adm** : routeur adm, DHCP + NAT, déploiement, proxy squid
* **s-infra** : DNS maitre, autoconfiguration navigateurs avec **wpad**
* **r-int** : routage, DHCP
* **r-ext** : routage, NAT
* **s-proxy** : squid
* **s-proxy** : proxy **squid**
* **s-itil** : serveur GLPI
* **s-backup** : DNS esclave + sauvegarde s-win (SMB)
* **s-mon** : supervision avec **Nagios4**, notifications et syslog
* **s-fog** : deploiement postes de travail avec **FOG**
* **s-win** : Windows Server 2019, AD, DNS, DHCP, partage fichiers
* **s-nxc** : NextCloud avec **docker**
* **s-elk** : pile ELK dockerisée
* **s-nxc** : NextCloud avec **docker** via proxy inverse **traefik** et certificat auto-signé
* **s-elk** : pile **ELK** dockerisée
* **s-lb** : Load Balancer **HaProxy** pour application Wordpress (DMZ)
* **r-vp1** : Routeur VPN Wireguard coté siège
* **r-vp2** : Routeur VPN Wireguard coté agence, DHCP
@ -51,8 +51,8 @@ On utilisera les images de machines virtuelle suivantes :
* Debian Bookworm 12.4 - 2 cartes - 1 Go - Stockage 20 Go
et pour **s-fog** :
* **debian-buster-2023a.ova** (2023-01-06)
* Debian Buster 10 - 2 cartes - 1 Go - stockage 20 Go
* **debian-bullseye-2024a.ova** (2024-01-06)
* Debian Bullseye 11.8 - 2 cartes - 1 Go - stockage 20 Go
Les images **.ova** doivent etre stockées dans le répertoire habituel de téléchargement de l'utilisateur courant.
@ -72,6 +72,10 @@ mkvm -r s-adm
```
### Machine s-adm
La machine **-sadm** est la première machine à installer.
* créer la machine virtuelle **s-adm** avec **mkvm** comme décrit plus haut.
* démarrer la VM puis ouvir une session
* utiliser le script de renommage comme suit :
@ -85,13 +89,12 @@ bash chname <nouveau_nom_de_machine>` , puis redémarrer
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
cd gsb2024/pre
bash inst-depl
cd /var/www/html/gsbstore
bash getall
cd /root/tools/ansible/gsb024/pre
cd /root/tools/ansible/gsb2024/pre
bash gsbboot
cd .. ; bash pull-config
```
- redémarrer
- la machine **s-adm** doit etre opérationnelle
### Pour chaque machine
@ -99,7 +102,7 @@ bash chname <nouveau_nom_de_machine>` , puis redémarrer
- créer la machine avec **mkvm -r**, les cartes réseau sont paramétrées par **mkvm** selon les spécifications
- ouvrir une session sur la machine considérée
- renomme la machine soit
- renommer la machine soit
* en utilisant le script de renommage comme suit :
` /root/tools/ansible/gsb2024/scripts/chname <nouveau_nom_de_machine>`
* soit avec :

View File

@ -1,6 +1,18 @@
file:
/var/www/html/gsbstore/getall:
exists: true
mode: "0644"
owner: root
group: root
filetype: file
contents: []
package:
dnsmasq:
installed: true
lighttpd:
installed: true
versions:
- 1.4.69-1
squid:
installed: true
addr:
@ -12,10 +24,18 @@ port:
listening: true
ip:
- 0.0.0.0
tcp:80:
listening: true
ip:
- 0.0.0.0
tcp6:53:
listening: true
ip:
- '::'
tcp6:80:
listening: true
ip:
- '::'
udp:53:
listening: true
ip:
@ -32,6 +52,9 @@ service:
dnsmasq:
enabled: true
running: true
lighttpd:
enabled: true
running: true
squid:
enabled: true
running: true
@ -61,6 +84,8 @@ dns:
process:
dnsmasq:
running: true
lighttpd:
running: true
squid:
running: true
interface:

View File

@ -1,3 +1,6 @@
#package:
# systemd-journal-remote:
# installed: true
file:
/var/www/html/glpi:
exists: true
@ -6,7 +9,7 @@ file:
group: www-data
filetype: directory
/var/www/html/ficlients:
/var/www/html/glpicli:
exists: true
mode: "0775"
owner: www-data
@ -18,13 +21,17 @@ file:
mode: "0777"
filetype: directory
/var/www/html/glpicli/GLPI-Agent-1.7-x64.msi:
exists: true
#mode: "0777"
filetype: file
/var/www/html/index.nginx-debian.html:
exists: true
mode: "0775"
owner: www-data
group: www-data
filetype: file
service:
mariadb:
enabled: true
@ -34,3 +41,19 @@ service:
enabled: true
running: true
zabbix-agent:
enable: true
running: true
systemd-journal-upload.service:
enabled: true
running: true
port:
tcp:10050:
listening: true
ip:
- 0.0.0.0
tcp:10050:
listening: true
ip:
- '::'

View File

@ -15,6 +15,17 @@ package:
installed: true
python3-pymysql:
installed: true
systemd-journal-remote:
installed: true
file:
/etc/systemd/system/systemd-journal-remote.service:
exist: true
mode: "0777"
filetype: directory
/var/log/journal/remote:
exist: true
mode: "0777"
filetype: directory
port:
tcp:80:
listening: true
@ -32,6 +43,10 @@ port:
listening: true
ip:
- 0.0.0.0
tcp:19532:
listening: true
ip:
- '*'
service:
apache2:
enabled: true
@ -42,6 +57,9 @@ service:
zabbix-agent:
enabled: true
running: true
systemd-journal-remote.socket:
enabled: true
running: true
command:
sysctl net.ipv4.ip_forward:
exit-status: 0

View File

@ -8,25 +8,26 @@ set -o pipefail
GITUSR=gitgsb
GITPRJ=gsb2024
apt-get update
apt-get install -y apache2 git
apt-get install -y lighttpd git
STOREREP="/var/www/html/gsbstore"
GLPIREL=10.0.11
str="wget -nc 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"
#GLPI Agent
GLPIAGVER=1.7
str31="wget -nc https://github.com/glpi-project/glpi-agent/releases/download/${GLPIAGVER}/GLPI-Agent-${GLPIAGVER}-x64.msi"
str31="wget -nc -4 https://github.com/glpi-project/glpi-agent/releases/download/${GLPIAGVER}/GLPI-Agent-${GLPIAGVER}-x64.msi"
#str32="wget -nc https://github.com/glpi-project/glpi-agent/releases/download/${GLPIAGVER}/GLPI-Agent-${GLPIAGVER}-x86.msi"
#str32="wget -nc -4 https://github.com/glpi-project/glpi-agent/releases/download/${GLPIAGVER}/GLPI-Agent-${GLPIAGVER}-x86.msi"
FOGREL=1.5.10
str4="wget -nc https://github.com/FOGProject/fogproject/archive/${FOGREL}.tar.gz -O fogproject-${FOGREL}.tar.gz"
str4="wget -nc -4 https://github.com/FOGProject/fogproject/archive/${FOGREL}.tar.gz -O fogproject-${FOGREL}.tar.gz"
WPREL=6.4.2
#v6.1.1 le 17/01/2023
str5="wget -nc https://fr.wordpress.org/latest-fr_FR.tar.gz -O wordpress-6.4.2-fr_FR.tar.gz"
str5="wget -nc -4 https://fr.wordpress.org/latest-fr_FR.tar.gz -O wordpress-6.4.2-fr_FR.tar.gz"
str6="curl -L https://github.com/goss-org/goss/releases/latest/download/goss-linux-amd64 -o goss"
@ -34,17 +35,17 @@ str7="curl -L https://github.com/goss-org/goss/releases/latest/download/dgoss -o
#GESTSUPREL=3.2.30
#str8="wget -nc 'https://gestsup.fr/index.php?page=download&channel=stable&version=${GESTSUPREL}&type=gestsup' -O gestsup_${GESTSUPREL}.zip"
str8="wget -nc '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
ELKREL=8.11.3
str81="wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-amd64.deb"
str82="wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-windows-x86_64.zip"
str83="wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-${ELKREL}-windows-x86_64.zip"
str84="wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-${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"
str83="wget -nc -4 https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-${ELKREL}-windows-x86_64.zip"
str84="wget -nc -4 https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-${ELKREL}-amd64.deb"
[[ -d "${STOREREP}" ]]|| mkdir "${STOREREP}"
[[ -d "${STOREREP}" ]] || mkdir "${STOREREP}"
(cat <<EOT > "${STOREREP}/getall"
#!/bin/bash
@ -61,10 +62,10 @@ chmod +x ./goss ./dgoss
curl -L https://get.docker.com -o getdocker.sh
chmod +x ./getdocker.sh
wget -nc https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 -O mkcert
wget -nc -4 https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 -O mkcert
chmod +x ./mkcert
${str8}
#${str8}
${str81}
${str82}
@ -75,3 +76,9 @@ EOT
)
cat "${STOREREP}/getall"
cd "${STOREREP}" || exit 2
bash getall
cp goss /usr/local/bin

View File

@ -6,7 +6,7 @@ Le rôle permet de créer la base GLPI.
## Comment utiliser GLPI
Après le pull-config, depuis une machine du réseau n-user, se rendre sur l'URL : *http://s-itil/install/install.php*
Après le pull-config, depuis une machine du réseau n-user, se rendre sur l'URL : *http://s-itil.gsb.lan*
Puis lancer l'installation, les paramètres sql à fournir sont les suivant :
* serveur : **localhost**
* utilisateur : **glpi**

View File

@ -1,12 +1,15 @@
---
- name: restart php-fpm
service: name=php8.2-fpm
state=: restarted
service:
name: php8.2-fpm
state=: restarted
- name: restart nginx
service: name=nginx
state: restarted
service:
name: nginx
state: restarted
- name: restart mariadb-server
service: name=mariadb-server
state: restarted
service:
name: mariadb-server
state: restarted

View File

@ -1,16 +1,30 @@
# Role syslog : installation et configuration de syslog serveur (centralisation des logs)
# Role journald-rcv : installation et configuration du serveur systemd-journal-remote (centralisation des logs)
***
## Fonctionnalitées du rôle:
Ce role a pour objectif de activer le module UDP dans le fichier /etc/rsyslog.conf pour accepter les logs entrants des machines concernées :
on décommente la ligne suivante :
'module(load="imudp"\)'
Ce role a pour objectif d'installer et d'éditer les fichiers de configuration de systemd journal remote afin que les machines lançant ce rôle puissent recevoir les logs des autres machine du parc.
Ensuite le role active l'écoute du module UDP sur le port 514 afin de pouvoir envoyer les logs.
on décommente la ligne suivante dans le même fichier que ci-dessus :
'input\(type="imudp" port="514"\)'
## Opérations réaliser par le role:
Le role réalise les opération suivante:
* installation du paquet **systemd-journal-remote**.
* Démarrage et activation (au démarrage) du service **systemd-journal-remote.socket.
* Création des fichiers de configuration de **systemd-journal-remote** à partir d'une copie du fichier de configuration déja existante.
* Changement du protocole utilisé par journald. Passant du protocole **HTTPS** au protocole **HTTP*** Activation du mode split qui permet d'avoir un fichier de log par machine supervisées.
* Création du répertoire qui accueillera les fichiers de logs.
* Rédémarrage du daemon systemd afin que le système prenne en compte les modifications efféctuées.
pour finir le role va charger le module UDP afin que la machine **s-infra** puissent reçevoir les logs entrants.
Pour faire cela on décommente la ligne suivante dans le fichier /etc/systemd/journald.conf :
'ForwardToSyslog=yes'
## Test du bon fonctionnement du rôle
pour finir le role va redemmarer automatiquement les services journald et rsyslog
Afin de tester le rôle nous éffectuons un test:
**Depuis la machine sur laquelle ce rôle est installé:**
* **journalctl -f -D /var/log/journal/remote/
* S'assurer que le port 19532 (port par défault utilisé par le serviceà) soit ouvert et utilisable sur toutes les machines en entrée.
Afin de consulter les fichiers d'événement.
** Depuis une des machines eméttrices de logs:**
* **logger ok**
Si le message émis par la machine éméttrice et consultable depuis la machine receptrice alors le test est réussi.

View File

@ -10,4 +10,5 @@
- snmp-agent
# - syslog-cli
# - fog
- - journald-snd
- post

View File

@ -17,4 +17,5 @@
- glpi
- ssh-cli
# - syslog-cli
- journald-snd
- post