Compare commits

...

22 Commits

Author SHA1 Message Date
92c6b3eb89 ajout du role zabbix-srv 2023-12-22 14:30:25 +01:00
bce5723e7b mise à jour du playbook journald-rcv 2023-12-22 14:20:12 +01:00
a7315fa4c8 Ajout role journald-rcv 2023-12-22 11:01:03 +01:00
8cfbefc4dc roles journald-snd 2023-12-22 09:43:24 +01:00
0697ad4eec ajout du service ssh dans Goss 2023-12-22 09:04:11 +01:00
ae54eb5cb8 README 2023-12-22 00:17:25 +01:00
2fe557e70b README 2023-12-22 00:08:40 +01:00
877f0a054f README 2023-12-22 00:01:51 +01:00
74433d2655 typo 2023-12-21 23:41:56 +01:00
51ac36f669 MAJ mkvm.ps1 pour 2024 et bookworm 2023-12-21 23:32:49 +01:00
3f565e0dac Reorganisation et toilettage... 2023-12-21 23:18:43 +01:00
71d35bb498 Reorg diverses 2023-12-21 22:37:22 +01:00
78da7eef67 inst-depl 2023-12-21 21:43:43 +01:00
ed512fc702 inst-depl 2023-12-21 20:49:29 +01:00
17266a2b57 inst-depl : maj versions ... 2023-12-21 19:26:20 +01:00
26ebf4899b Maj doc pour 2024 2023-12-21 19:11:54 +01:00
21d6a77ffa commente syslog-cli pour r-* 2023-12-21 15:28:53 +01:00
23b480e9fd comment syslog-cli 2023-12-21 15:14:59 +01:00
9f99511968 gsb-start... 2023-12-21 15:06:38 +01:00
cceccda12b comment syslog-cli 2023-12-21 14:46:12 +01:00
36a6850a52 MAJ pour bookworm 2023-12-21 14:37:43 +01:00
d14bf44b2b Modif Nom VM dans mkvm 2023-12-21 14:23:29 +01:00
131 changed files with 485 additions and 179 deletions

View File

@ -1,18 +1,22 @@
# gsb2024
2024-12-19 ps
2024-12-21 ps
Environnement et playbooks ansible pour le projet GSB 2024
## Quickstart
Prérequis :
* une machine Debian Bookworm
* une machine LInux Debian Bookworm ou Windows
* VirtualBox
* git
* fichier machines virtuelles **ova** :
* **debian-bookworm-gsb-2023c.ova**
* **debian-buster-gsb-2023a.ova**
## Les machines
* **s-adm** : routeur adm, DHCP + NAT, deploiement, proxy squid
* **s-infra** : DNS maitre, autoconfiguration navigateurs avec **wpad**
* **r-int** : routage, DHCP
@ -38,36 +42,38 @@ Prérequis :
## Les playbooks
Il existe un playbook ansible pour chaque machine à installer, nommé comme la machine avec l'extension **.yml**
## Installation
On utilisera les images de machines virtuelle suivantes :
* **debian-bookworm-gsb-2023c.ova** (2024-12-18)
* **debian-bookworm-gsb-2023c.ova** (2023-12-18)
* 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
Les images **.ova** doivent etre stockées dans le répertoire habituel de téléchargement de l'utilisateur courant.
### Création d'une VM
Récupérer le dépot gsb2024.git avec :
Sur la machine physique, récupérer le dépot **gsb2024.git** avec :
```shell
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
cd gsb2024
```
On utilisera le script (bash) **mkvm** ou (PowerShell) **mkvm.ps1** pour créer une VM Virtualbox.
```shell
gsb2024>
cd scripts
$ mkvm -r s-adm
cd gsb2024/scripts
mkvm -r s-adm
```
### Machine s-adm
* 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 :
```shell
bash chname <nouveau_nom_de_machine>` , puis redémarrer
@ -81,7 +87,7 @@ bash chname <nouveau_nom_de_machine>` , puis redémarrer
bash inst-depl
cd /var/www/html/gsbstore
bash getall
cd /root/tools/ansible/gsb023/pre
cd /root/tools/ansible/gsb024/pre
bash gsbboot
cd .. ; bash pull-config
```
@ -89,20 +95,35 @@ bash chname <nouveau_nom_de_machine>` , puis redémarrer
### Pour chaque machine
#### Etape 1
- créer la machine avec **mkvm -r**, les cartes réseau sont paramétrées par **mkvm** selon les spécifications
- utiliser le script de renommage comme suit : `bash chname <nouveau_nom_de_machine>`
- redémarrer
- ouvrir une session sur la machine considérée
- renomme la machine soit
* en utilisant le script de renommage comme suit :
` /root/tools/ansible/gsb2024/scripts/chname <nouveau_nom_de_machine>`
* soit avec :
```shell
NHOST=mavm
sed -i "s/bookworm/${NHOST}/g" /etc/host{s,name}
sudo reboot # on redemarre
```
#### Etape 2
- utiliser le script **gsb-start** : `bash gsb-start`
- ou sinon:
```shell
mkdir -p tools/ansible ; cd tools/ansible
git clone https://gitea.lyc-lecastel.fr/gadmin/gsb2023.git
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
cd gsb2024/pre
export DEPL=192.168.99.99
bash gsbboot
DEPL=192.168.99.99 bash gsbboot
cd ../..
bash pull-config
```
#### Etape 3
- redémarrer
- **Remarque** : une machine doit avoir été redémarrée pour prendre en charge la nouvelle configuration

View File

@ -1,72 +1,70 @@
package:
dnsmasq:
installed: true
squid:
installed: true
dnsmasq:
installed: true
squid:
installed: true
addr:
tcp://depl.sio.lan:80:
reachable: true
timeout: 500
tcp://depl.sio.lan:80:
reachable: true
timeout: 500
port:
tcp:53:
listening: true
ip:
- 0.0.0.0
tcp6:53:
listening: true
ip:
- '::'
udp:53:
listening: true
ip:
- 0.0.0.0
udp:67:
listening: true
ip:
- 0.0.0.0
udp6:53:
listening: true
ip:
- '::'
tcp:53:
listening: true
ip:
- 0.0.0.0
tcp6:53:
listening: true
ip:
- '::'
udp:53:
listening: true
ip:
- 0.0.0.0
udp:67:
listening: true
ip:
- 0.0.0.0
udp6:53:
listening: true
ip:
- '::'
service:
dnsmasq:
enabled: true
running: true
squid:
enabled: true
running: true
ssh:
enabled: true
running: true
dnsmasq:
enabled: true
running: true
squid:
enabled: true
running: true
ssh:
enabled: true
running: true
user:
dnsmasq:
exists: true
gid: 65534
groups:
- nogroup
home: /var/lib/misc
shell: /usr/sbin/nologin
group:
ssh:
exists: true
dnsmasq:
exists: true
gid: 65534
groups:
- nogroup
home: /var/lib/misc
shell: /usr/sbin/nologin
command:
/sbin/sysctl net.ipv4.ip_forward:
exit-status: 0
stdout:
- net.ipv4.ip_forward = 1
stderr: []
timeout: 10000
/sbin/sysctl net.ipv4.ip_forward:
exit-status: 0
stdout:
- net.ipv4.ip_forward = 1
stderr: []
timeout: 10000
dns:
depl.sio.lan:
resolveable: true
timeout: 500
depl.sio.lan:
resolveable: true
resolvable: null
timeout: 500
process:
dnsmasq:
running: true
squid:
running: true
dnsmasq:
running: true
squid:
running: true
interface:
enp0s8:
exists: true
addrs:
- 192.168.99.99/24
enp0s8:
exists: true
addrs:
- 192.168.99.99/24

83
localhost, Normal file
View File

@ -0,0 +1,83 @@
# Ce fichier viminfo a été généré par Vim 9.0.
# Vous pouvez l'éditer, mais soyez prudent.
# Viminfo version
|1,4
# 'encoding' dans lequel ce fichier a été écrit
*encoding=utf-8
# hlsearch on (H) or off (h):
~h
# Historique ligne de commande (chronologie décroissante) :
:q!
|2,0,1703236388,,"q!"
:x
|2,0,1703236381,,"x"
:x!
|2,0,1703236221,,"x!"
# Historique chaîne de recherche (chronologie décroissante) :
# Historique expression (chronologie décroissante) :
# Historique ligne de saisie (chronologie décroissante) :
# Historique Ligne de débogage (chronologie décroissante) :
# Registres :
""1 LINE 0
connection: local
|3,1,1,1,1,0,1703236374," connection: local"
"2 LINE 0
hosts: localhost
|3,0,2,1,1,0,1703236374," hosts: localhost"
# Marques dans le fichier :
'0 1 2 ~/tools/ansible/gsb2024/s-mon.yml
|4,48,1,2,1703236388,"~/tools/ansible/gsb2024/s-mon.yml"
'1 1 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,49,1,9,1703236339,"~/tools/ansible/gsb2024/s-mon.yml"
'2 9 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,50,9,9,1703236221,"~/tools/ansible/gsb2024/s-mon.yml"
'3 9 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,51,9,9,1703236221,"~/tools/ansible/gsb2024/s-mon.yml"
'4 11 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,52,11,9,1703236221,"~/tools/ansible/gsb2024/s-mon.yml"
'5 11 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,53,11,9,1703236221,"~/tools/ansible/gsb2024/s-mon.yml"
'6 1 13 ~/tools/ansible/gsb2024/s-mon.yml
|4,54,1,13,1703236013,"~/tools/ansible/gsb2024/s-mon.yml"
'7 1 13 ~/tools/ansible/gsb2024/s-mon.yml
|4,55,1,13,1703236013,"~/tools/ansible/gsb2024/s-mon.yml"
'8 1 13 ~/tools/ansible/gsb2024/s-mon.yml
|4,56,1,13,1703236013,"~/tools/ansible/gsb2024/s-mon.yml"
'9 1 13 ~/tools/ansible/gsb2024/s-mon.yml
|4,57,1,13,1703236013,"~/tools/ansible/gsb2024/s-mon.yml"
# Liste de sauts (le plus récent en premier) :
-' 1 2 ~/tools/ansible/gsb2024/s-mon.yml
|4,39,1,2,1703236388,"~/tools/ansible/gsb2024/s-mon.yml"
-' 1 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,39,1,9,1703236339,"~/tools/ansible/gsb2024/s-mon.yml"
-' 9 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,39,9,9,1703236318,"~/tools/ansible/gsb2024/s-mon.yml"
-' 11 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,39,11,9,1703236318,"~/tools/ansible/gsb2024/s-mon.yml"
-' 11 9 ~/tools/ansible/gsb2024/s-mon.yml
|4,39,11,9,1703236221,"~/tools/ansible/gsb2024/s-mon.yml"
-' 1 13 ~/tools/ansible/gsb2024/s-mon.yml
|4,39,1,13,1703236018,"~/tools/ansible/gsb2024/s-mon.yml"
-' 1 13 ~/tools/ansible/gsb2024/s-mon.yml
|4,39,1,13,1703236013,"~/tools/ansible/gsb2024/s-mon.yml"
# Historique des marques dans les fichiers (les plus récentes en premier) :
> ~/tools/ansible/gsb2024/s-mon.yml
* 1703236386 0
" 1 2
^ 9 10
. 2 0
+ 10 0
+ 2 0

View File

@ -7,6 +7,6 @@
- gestsup
- postfix-gestsup
- ssh-cli
- syslog-cli
# - syslog-cli
- snmp-agent
- post

View File

@ -11,50 +11,36 @@ apt-get update
apt-get install -y apache2 git
STOREREP="/var/www/html/gsbstore"
GLPIREL=10.0.6
GLPIREL=10.0.11
str="wget -nc https://github.com/glpi-project/glpi/releases/download/${GLPIREL}/glpi-${GLPIREL}.tgz"
#Fusion Inventory
#FIREL=10.0.3+1.0
#str2="https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi${FIREL}/fusioninventory-${FIREL}.tar.bz2"
#GLPI Agent
GLPIAGVER=1.4
GLPIAGVER=1.7
str31="wget -nc 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 https://github.com/glpi-project/glpi-agent/releases/download/${GLPIAGVER}/GLPI-Agent-${GLPIAGVER}-x86.msi"
FOGREL=1.5.9
FOGREL=1.5.10
str4="wget -nc https://github.com/FOGProject/fogproject/archive/${FOGREL}.tar.gz -O fogproject-${FOGREL}.tar.gz"
WPREL=6.1.1
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.1.1-fr_FR.tar.gz"
str5="wget -nc https://fr.wordpress.org/latest-fr_FR.tar.gz -O wordpress-6.4.2-fr_FR.tar.gz"
GOSSVER=v0.3.21
str6="curl -L https://github.com/aelsabbahy/goss/releases/download/${GOSSVER}/goss-linux-amd64 -o goss"
str6="curl -L https://github.com/goss-org/goss/releases/latest/download/goss-linux-amd64 -o goss"
#DOCKERREL=1.29.2
#str7="curl -L https://github.com/docker/compose/releases/download/${DOCKERREL}/docker-compose-$(uname -s)-$(uname -m) -o docker-compose"
str7="curl -L https://github.com/goss-org/goss/releases/latest/download/dgoss -o dgoss"
#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"
#METRICBEAT ET FILEBEAT
ELKREL=8.5.3
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"
@ -64,32 +50,18 @@ str84="wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-$
#!/bin/bash
${str}
${str2}
${str31}
${str32}
${str4}
${str5}
${str6}
${str7}
chmod +x ./goss
chmod +x ./goss ./dgoss
curl -L https://get.docker.com -o getdocker.sh
chmod +x ./getdocker.sh
#${str7}
#chmod +x ./docker-compose
wget -nc https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 -O mkcert
chmod +x ./mkcert
${str8}

View File

@ -1,11 +1,11 @@
#!/bin/bash
dir=/root/tools/ansible
prj=gsb2023
prj=gsb2024
opt=""
if [ -z ${UREP+x} ]; then
UREP=https://gitea.lyc-lecastel.fr/gadmin/gsb2023.git
UREP=https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
fi
dir=/root/tools/ansible

View File

@ -8,5 +8,5 @@
- r-ext
- snmp-agent
- ssh-cli
- syslog-cli
# - syslog-cli
- post

View File

@ -7,7 +7,7 @@
- goss
- r-int
- ssh-cli
- syslog-cli
# - syslog-cli
- dhcp
- snmp-agent
- post

View File

@ -15,5 +15,5 @@
- post
- wireguard-r
- ssh-cli
- syslog-cli
# - syslog-cli

View File

@ -18,4 +18,4 @@
- wireguard-l
- post
- ssh-cli
- syslog-cli
# - syslog-cli

View File

@ -1,10 +1,4 @@
#
deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main
deb http://ftp.fr.debian.org/debian/ wheezy-updates main
deb http://http.debian.net/debian wheezy-backports main
deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

View File

@ -1,4 +1,4 @@
deb http://deb.debian.org/debian/ bullseye main non-free contrib
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

View File

@ -0,0 +1,4 @@
deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

View File

@ -0,0 +1,4 @@
deb http://deb.debian.org/debian/ bullseye main non-free contrib
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free

View File

@ -0,0 +1,8 @@
# Rôle elk-filebeat-cli
## Présentation
**Filebeat** permet d'envoyer les logs système à un serveur **ELK**.
Ce rôle :
* insatlle le paquet **filebeat**
* configure **filebeat** (fichier /etc/filebeat/filebeat.yml)
* active le module **system** (Logs système)

View File

@ -0,0 +1 @@
BEATVER: "8.11.5"

View File

@ -1,6 +1,7 @@
## Utilisation du rôle metricbeat-cli
# Rôle elk-metricbeat-cli
## Utilisation
Ce rôle permet d'installer l'agent metricbeat pour le serveur ELK.
Ce rôle permet d'installer l'agent **metricbeat** pour le serveur ELK.
Metricbeat sert à faire des statistiques de performances sur les différents serveurs.
Ce rôle fonctionne en faisant :
Une installation de metricbeat,

View File

@ -0,0 +1 @@
BEATVER: "8.11.5"

View File

@ -1,7 +0,0 @@
## Explication du rôle filebeat-cli
Filebeat permet de centraliser et simplifier la gestion de logs pour ELK.
Ce rôle fonctionne en faisant :
Une installation de filebeat
Une configuration de filebeat
Une activation du module system(Logs système)

View File

@ -1 +0,0 @@
BEATVER: "8.5.3"

View File

@ -0,0 +1,16 @@
# Role syslog : installation et configuration de syslog serveur (centralisation des logs)
***
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"\)'
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"\)'
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'
pour finir le role va redemmarer automatiquement les services journald et rsyslog

View File

@ -0,0 +1,5 @@
---
- name: restart journald
service:
name: systemd-journald.service
state: restarted

View File

@ -0,0 +1,37 @@
---
- name: Installation de systemd-journal-remote
apt:
name: systemd-journal-remote
state: present
- name: Enable et start systemd-journal-remote.socket
systemd:
name: systemd-journal-remote.socket
enabled: yes
state: started
- name: Copie de systemd-journal-remote.service dans /etc/systemd/system
copy:
src: /lib/systemd/system/systemd-journal-remote.service
dest: /etc/systemd/system/systemd-journal-remote.service
remote_src: yes
backup: yes
- name: Modification de systemd-journal-remote.service
replace:
path: /etc/systemd/system/systemd-journal-remote.service
regexp: '--listen-https=-3'
replace: '--listen-http=-3'
- name: Creation /var/log/journal/remote directory
file:
path: /var/log/journal/remote
state: directory
owner: systemd-journal-remote
- name: Redemarrage de systemd
systemd:
daemon_reload: yes
notify:
- restart jourald

View File

@ -0,0 +1,16 @@
# Role syslog : installation et configuration de syslog serveur (centralisation des logs)
***
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"\)'
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"\)'
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'
pour finir le role va redemmarer automatiquement les services journald et rsyslog

View File

@ -0,0 +1,10 @@
---
- name: enable systemd-journal-upload
service:
name: systemd-journal-upload.service
state: enabled
- name: restart systemd-journal-upload
service:
name: systemd-journal-upload.service
state: restarted

View File

@ -0,0 +1,31 @@
---
- name: 1. installe systemd-journal-remote
apt:
name:
- systemd-journal-remote
state: present
- name: 2. indique l'URL journald distant
replace:
path: /etc/systemd/journal-upload.conf
regexp: '^#URL='
replace: 'URL=http://syslog.gsb.adm:19532'
- name: 3. Just force systemd to reread configs (2.4 and above)
ansible.builtin.systemd_service:
daemon_reload: true
- name: 4. active le service systemd-journald-upload
ansible.builtin.service:
name: systemd-journal-upload.service
enabled: yes
- name: 5. redemarre systemd-journal-upload.service
service:
name: systemd-journal-upload.service
state: restart
#notify:
#- enable systemd-journal-upload
#- restart systemd-journal-upload

View File

@ -1 +0,0 @@
BEATVER: "8.5.3"

Some files were not shown because too many files have changed in this diff Show More