Compare commits

..

78 Commits

Author SHA1 Message Date
9c8dca44c9 mise à jour mkvm 2024-01-16 10:24:04 +01:00
ce3b6e0a77 nettoyage s-fog 2024-01-15 21:47:44 +01:00
a03298ed54 php version dans fogsettings 2024-01-15 21:34:04 +01:00
80b54a50df ajout entrée dnas base, post et dns-master pour s-kea1 et s-kea2 2024-01-15 17:54:31 +01:00
045af9bea2 maj zabbix cli 2024-01-15 17:22:15 +01:00
gsb
6b10b981f4 Actualiser roles/journald-rcv/README.md 2024-01-15 13:57:01 +01:00
3811e2df5c README.md 2024-01-15 00:49:40 +01:00
27aad0dcb5 commente appel role zabbix-cli non fonctionnel 2024-01-15 00:42:05 +01:00
c03c066d41 mkvm options 2024-01-15 00:02:43 +01:00
beca7dbdcc ajout option -s pour mkvm 2024-01-14 23:19:06 +01:00
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
cc36b5dcf7 fogsettings : trash 2024-01-12 22:39:04 +01:00
5aa12d8acd chgt role base 2024-01-12 22:05:05 +01:00
35a21bab2f comment appel zabbix-cli dans s-adm.yml 2024-01-12 21:43:40 +01:00
cdd64636ed maj README windows 2024-01-12 15:48:39 +01:00
db966c5e9e README.md à jour 2024-01-12 15:22:43 +01:00
8107158a4f README.md à jour 2024-01-12 15:20:02 +01:00
18cb3a1d99 creation goss s-mon 2024-01-12 15:17:41 +01:00
0997c5d44a creation goss s-mon 2024-01-12 15:14:00 +01:00
gsb
bf877b63a6 Actualiser roles/glpi/handlers/main.yml 2024-01-12 15:07:06 +01:00
a4b7b06c3f modif test agoss 2024-01-12 14:47:21 +01:00
8a81aac1e2 modif test agoss 2024-01-12 14:37:22 +01:00
8f4b5b6398 maj readme zabbix-srv 2024-01-12 14:33:51 +01:00
03b7706c23 maj readme zabbix-srv 2024-01-12 14:26:18 +01:00
008731f456 modif role fog & routeur 2024-01-12 14:07:00 +01:00
gsb
cbcefb5fbd Actualiser roles/glpi/README.md 2024-01-12 10:56:00 +01:00
gsb
2b8745bedf Actualiser roles/glpi/README.md 2024-01-12 10:54:28 +01:00
gsb
1613c632b4 Actualiser roles/glpi/README.md 2024-01-12 10:52:24 +01:00
41aa9c626c maj role zabbix srv : rendre idempottent le playbook 2024-01-12 10:23:24 +01:00
gsb
6816bca773 Actualiser roles/glpi/README.md 2024-01-12 10:19:19 +01:00
gsb
fe386b4f4c Actualiser roles/glpi/README.md 2024-01-12 10:01:19 +01:00
gsb
008b6ce0bb Actualiser roles/glpi/README.md 2024-01-12 09:52:11 +01:00
gsb
9447a6c726 Actualiser roles/glpi/README.md 2024-01-12 09:45:59 +01:00
gsb
c550ea90c2 Actualiser roles/glpi/README.md 2024-01-12 09:39:57 +01:00
gsb
dc010b3562 Actualiser roles/glpi/README.md 2024-01-12 09:28:04 +01:00
gsb
46cd74fed6 Actualiser roles/glpi/README.md 2024-01-12 09:27:42 +01:00
gsb
1f1ade55c7 Actualiser roles/glpi/README.md 2024-01-12 09:22:41 +01:00
gsb
e5ba286b4f Actualiser roles/glpi/README.md 2024-01-12 09:21:06 +01:00
gsb
9faec4b433 Actualiser roles/glpi/README.md 2024-01-12 09:20:22 +01:00
gsb
29f0b8e269 Actualiser roles/glpi/README.md 2024-01-12 09:17:21 +01:00
gsb
4722affa2e Actualiser roles/glpi/README.md 2024-01-12 09:16:56 +01:00
gsb
fb290afb6a Actualiser roles/glpi/README.md 2024-01-12 09:15:33 +01:00
gsb
a0be338fd5 Actualiser roles/glpi/README.md 2024-01-12 09:13:33 +01:00
gsb
1e8e9e1281 Actualiser roles/glpi/README.md 2024-01-12 08:53:31 +01:00
gsb
713a9ecc28 Actualiser roles/glpi/README.md 2024-01-12 08:50:43 +01:00
gsb
6a023456fb Actualiser roles/glpi/README.md 2024-01-12 08:49:59 +01:00
gsb
932728ae3a Actualiser roles/glpi/README.md 2024-01-12 08:45:44 +01:00
gsb
b35f036ce2 Actualiser roles/glpi/README.md 2024-01-12 08:44:54 +01:00
gsb
fd25eba978 Actualiser roles/glpi/README.md 2024-01-12 08:20:45 +01:00
7b36d98298 mise a jour role glpi 2024-01-11 16:12:00 +01:00
gsb
663b8d349a Actualiser roles/glpi/README.md 2024-01-11 15:36:13 +01:00
gsb
d5279901dc Actualiser roles/glpi/README.md 2024-01-11 15:34:15 +01:00
790cf9f0a6 modif fog 2024-01-11 15:26:32 +01:00
b03fedcc45 modif role fog 2024-01-11 15:26:32 +01:00
9deef13f8e modif fog 2024-01-11 15:18:03 +01:00
6ebde054e0 update 2024-01-11 15:07:44 +01:00
57738871f0 update 2024-01-11 15:00:04 +01:00
4f73bd7520 mise à jour 2eme du nom zabbix cli 2024-01-11 11:51:32 +01:00
efcbd3d0cf modification roles glpi 2024-01-11 11:19:46 +01:00
ac1d2756bd mise a jour role glpi 2024-01-11 11:19:46 +01:00
1a9cfeb5d2 mise à jour zabbix-cli 2024-01-11 11:06:35 +01:00
dea09f952d amelioration role zabbix server 2024-01-11 09:49:23 +01:00
1a63a0d865 mise à jour roles GLPI 10.0.11 et maj role BASE 2024-01-09 12:37:47 +01:00
975cb35f00 chgt buster => bullseye, 2023=>2024 2024-01-09 11:42:14 +01:00
ccb083ddcc doc Windows - suite 2024-01-08 20:48:58 +01:00
882a072fa9 doc Windows 2024-01-08 20:40:31 +01:00
01faab4a6e modifications des playbooks journald snd et rcv 2023-12-25 14:57:04 +01:00
d9fb25425d Ajout de default pour Zabbix-cli 2023-12-22 19:01:25 +01:00
fb900be1e4 Ajout role Zabbix-cli + ajout des agents dans les srv 2023-12-22 15:00:33 +01:00
42 changed files with 672 additions and 236 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
bash gsbboot
cd .. ; bash pull-config
cd /root/tools/ansible/gsb2024/pre
DEPL=192.168.99.99 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 :
@ -118,8 +121,7 @@ mkdir -p tools/ansible ; cd tools/ansible
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
cd gsb2024/pre
DEPL=192.168.99.99 bash gsbboot
cd ../..
bash pull-config
cd ../.. ; bash pull-config
```
#### Etape 3

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,18 +1,50 @@
interface:
enp0s3:
file:
/tftpboot/default.ipxe:
exists: true
addrs:
- 192.168.99.16/24
interface:
enp0s8:
exists: true
addrs:
- 172.16.0.16/24
interface:
enp0s9:
exists: true
addrs:
- 172.16.64.16/24
mode: "0644"
owner: root
group: root
filetype: file
contains: []
package:
apache2:
installed: true
versions:
- 2.4.57-2
isc-dhcp-server:
installed: true
versions:
- 4.4.3-P1-2
mariadb-server:
installed: true
versions:
- 1:10.11.4-1~deb12u1
tftpd-hpa:
installed: true
versions:
- 5.2+20150808-1.4
port:
tcp:80:
listening: true
ip:
- 0.0.0.0
tcp:443:
listening: true
ip:
- 0.0.0.0
service:
apache2:
enabled: true
running: true
isc-dhcp-server:
enabled: true
running: true
nfs-server:
enabled: true
running: true
tftpd-hpa:
enabled: true
running: true
command:
ping -c 4 192.168.99.99:
exit-status: 0
@ -26,3 +58,11 @@ command:
- 0% packet loss
stderr: []
timeout: 10000
process:
apache2:
running: true
interface:
enp0s9:
exists: true
addrs:
- 172.16.64.16/24

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

@ -1,36 +1,63 @@
file:
/etc/nagios4/htdigest.users:
exists: true
mode: "0640"
owner: nagios
group: www-data
filetype: file
contains: [nagiosadmin]
package:
apache2:
installed: true
nagios-snmp-plugins:
zabbix-server-mysql:
installed: true
nagios4:
zabbix-frontend-php:
installed: true
snmp:
zabbix-apache-conf:
installed: true
python3-passlib:
zabbix-sql-scripts:
installed: true
zabbix-agent:
installed: true
mariadb-server:
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
ip:
- 0.0.0.0
udp:514:
tcp:3306:
listening: true
ip:
- 127.0.0.1
tcp:10050:
listening: true
ip:
- 0.0.0.0
tcp:10051:
listening: true
ip:
- 0.0.0.0
tcp:19532:
listening: true
ip:
- '*'
service:
apache2:
enabled: true
running: true
nagios4:
zabbix-server:
enabled: true
running: true
zabbix-agent:
enabled: true
running: true
systemd-journal-remote.socket:
enabled: true
running: true
command:
@ -43,7 +70,9 @@ command:
process:
apache2:
running: true
nagios4:
zabbix_server:
running: true
mariadb:
running: true
interface:
enp0s3:
@ -55,7 +84,7 @@ interface:
addrs:
- 172.16.0.8/24
http:
http://localhost/nagios4:
http://localhost/zabbix:
status: 401
allow-insecure: false
no-follow-redirects: false

13
install-fog.yml Normal file
View File

@ -0,0 +1,13 @@
---
- hosts: localhost
connection: local
roles:
# - base
# - goss
# - dhcp-fog
#- ssh-cli
#- snmp-agent
# - syslog-cli
- fog
#- post

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

@ -1,8 +1,14 @@
---
- name: desactive unatentted upgrade
ansible.builtin.service:
name: unattended-upgrades.service
state: stopped
enabled: false
- name: Copie sources.list
copy:
src: sources.list.{{ ansible_distribution }}
src: sources.list.{{ ansible_distribution_release }}
dest: /etc/apt/sources.list
- name: Copie apt.conf pour proxy
@ -74,3 +80,4 @@
- net.ipv6.conf.all.disable_ipv6
- net.ipv6.conf.default.disable_ipv6
- net.ipv6.conf.lo.disable_ipv6

View File

@ -22,6 +22,8 @@
192.168.99.14 s-nas.gsb.adm
192.168.99.15 s-san.gsb.adm
192.168.99.16 s-fog.gsb.adm
192.168.99.20 s-kea1.gsb.adm
192.168.99.21 s-kea2.gsb.adm
192.168.99.50 s-lb-bd.gsb.adm
192.168.99.101 s-lb-web1.gsb.adm
192.168.99.102 s-lb-web2.gsb.adm

View File

@ -21,6 +21,8 @@
192.168.99.12 r-int.gsb.adm
192.168.99.13 r-ext.gsb.adm
192.168.99.14 s-nas.gsb.adm
192.168.99.20 s-kea1.gsb.adm
192.168.99.21 s-kea2.gsb.adm
192.168.99.50 s-lb-bd.gsb.adm
192.168.99.101 s-lb-web1.gsb.adm
192.168.99.102 s-lb-web2.gsb.adm

View File

@ -5,7 +5,7 @@
;
$TTL 604800
@ IN SOA s-infra.gsb.lan. root.s-infra.gsb.lan. (
2023051000 ; Serial
2024011500 ; Serial
7200 ; Refresh
86400 ; Retry
8419200 ; Expire
@ -27,6 +27,8 @@ s-mon IN A 172.16.0.8
s-itil IN A 172.16.0.9
s-elk IN A 172.16.0.11
s-gestsup IN A 172.16.0.17
s-kea1 IN A 172.16.0.20
s-kea2 IN A 172.16.0.21
r-int IN A 172.16.0.254
r-int-lnk IN A 192.168.200.254
r-ext IN A 192.168.200.253

View File

@ -5,7 +5,7 @@
;
$TTL 604800
@ IN SOA s-infra.gsb.lan. root.s-infra.gsb.lan. (
2023040501 ; Serial
2024011500 ; Serial
7200 ; Refresh
86400 ; Retry
8419200 ; Expire
@ -21,6 +21,8 @@ $TTL 604800
7.0 IN PTR s-nxc.gsb.lan.
8.0 IN PTR s-mon.gsb.lan.
9.0 IN PTR s-itil.gsb.lan.
20.0 IN PTR s-kea1.gsb.lan.
21.0 IN PTR s-kea2.gsb.lan.
101.1 IN PTR s-web1
101.2 IN PTR s-web2
100.10 IN PTR s-lb

View File

@ -1,16 +1,41 @@
# Fog
Ce rôle permet l'installation et la modification de Fog.
Ce rôle permet **l'installation** et la **configuration** de **Fog**.
**Fog** est une solution open-source de gestion de parc informatique. Il offre des fonctionnalités telles que la **création d'images système**, le **déploiement d'images sur plusieurs machines** et la **gestion des postes de travail** grâce à **PXE**.
## Fog, c'est quoi ?
**PXE** (Preboot eXecution Environment) est un protocole qui permet à un hôte de démarrer via le réseau, plutôt que depuis son disque dur local. Cela facilite le déploiement d'images système à distance.
Dans le contexte de GSB, Fog avec PXE,assure le service **DHCP**.
Fog permet le déploiement d'images disque tel que Windows ou bien Linux en utilisant PXE (Preboot Execution Environment).
Ainsi, Fog simplifie le processus de création d'images et du déployement de postes en gérant à la fois le démarrage réseau (PXE) et la configuration réseau (DHCP).
## Comment l'installer et le configurer ?
## Comment l'installer ?
### Prérequis:
Mettre au moins 4GB de mémoire.
Avant toute chose, lancer le fichier goss de s-fog ( présent dans gsb2023/goss/s-fog.yaml ) pour vérifier que la configuration réseau est correct et opérationnel. Une fois l'installation principale effectuée, il faut lancer le playbook ansible s-fog.yaml.
Il faudra se rendre dans le dossier **fog** pour lancer le script **installfog.sh** ( fog/bin/ ). La configuration sera déjà établie via le fichier **.fogsettings**
### Etape 1:
Lancez le PlayBook Ansible de "pré-installation" nommé **s-fog.yml**.
Il installe la base de **Fog** , l'outil **Goss** , configure le **DHCP** , **SSH** et l'agent **SSH**.
Ce PlayBook fait aussi appel au PlayBook **main.yml** qui se trouve dans **roles/fog/tasks/** qui installe les paquets de base comme **Apache2** , **MariaDb client et serveur** ... (Voir en détail le PlayBook).
Enfin ce PlayBook permet aussi de récupérer l'archive d'installation de Fog depuis le serveur **s-admin** (grâce au PlayBook **main.yml** dans **roles/default/**), puis décompresse cette archive et l'exécute (à partir du moment où on lance le deuxieme PlayBook : voir l'étape 2).
Redémarrer le serveur pour que les interfaces puissent avoir les bonnes adresses IP.
### Etape 2:
Lancez le second PlayBook **install-fog.yml** qui permet de faire appel aux tâches qui exécute le script d'installation **fogsettings** qui permet d'éviter de répondre aux différentes questions manuellement.
### Etape 3:
Il n'y a plus qu'à se rendre sur l'interface en ligne de Fog avec l'URL suivant : **http://172.16.64.16/management/** à partir d'un poste étant dans le bon réseau et suivre les consignes indiquées (Installation ou mise à jour de la base de données) et vous pourrez ainsi vous y connecter et commencer à l'utiliser.
### Etape supplémentaire:
Vous pouvez tester que la configuration est correcte avec Goss (commande : **./agoss -f tap** ) à partir du répertoire **gsb2024**.

View File

@ -1,3 +1,3 @@
depl_url: "http://s-adm.gsb.adm/gsbstore"
depl_fog: "fogproject-1.5.9.tar.gz"
depl_fog: "fogproject-1.5.10.tar.gz"
instructions: "Pour lancer l'installateur Fog, faites : 'bash /root/tools/fog/bin/installfog.sh'. Suivez ensuite les instructions"

View File

@ -2,15 +2,16 @@
## Created by the FOG Installer
## Find more information about this file in the FOG Project wiki:
## https://wiki.fogproject.org/wiki/index.php?title=.fogsettings
## Version: 1.5.9
## Install time: jeu. 26 janv. 2023 11:41:05
## Version: 1.5.10
## Install time: jeu. 11 janv. 2024
## Install time: jeu. 11 janv. 2024 11:41:05
ipaddress='172.16.64.16'
copybackold='0'
interface='enp0s9'
submask='255.255.255.0'
hostname='s-fog.gsb.lan'
routeraddress='192.168.99.99'
plainrouter='192.168.99.99'
routeraddress='172.16.64.254'
plainrouter='172.16.64.254'
dnsaddress='172.16.0.1'
username='fogproject'
password='/7ElC1OHrP47EN2w59xl'
@ -25,22 +26,24 @@ snmysqluser='fogmaster'
snmysqlpass='HHO5vSGqFiHE_9d2lja3'
snmysqlhost='localhost'
mysqldbname='fog'
installlang='0'
installlang='1'
storageLocation='/images'
fogupdateloaded=1
docroot='/var/www/html/'
docroot='/var/www/'
webroot='/fog/'
caCreated='yes'
httpproto='http'
httpproto='https'
startrange='172.16.64.10'
endrange='172.16.64.254'
bootfilename='undionly.kpxe'
packages='apache2 bc build-essential cpp curl g++ gawk gcc genisoimage git gzip htmldoc isc-dhcp-server isolinux lftp libapache2-mod-php7.4 libc6 libcurl4 li>
#bootfilename='undionly.kpxe'
packages='apache2 bc build-essential cpp curl g++ gawk gcc genisoimage gettext git gzip htmldoc isc-dhcp-server isolinux lftp libapache2-mod-php libc6 libcurl4 liblzma-dev m4 mariadb-client mariadb-server net-tools nfs-kernel-server openssh-server php php-bcmath php-cli php-curl php-fpm php-gd php-intl php-json php-ldap php-mbstring php-mysql tar tftpd-hpa tftp-hpa unzip vsftpd wget zlib1g'
noTftpBuild=''
tftpAdvOpts=''
sslpath='/opt/fog/snapins/ssl/'
backupPath='/home/'
armsupport='0'
php_ver='7.4'
php_verAdds='-7.4'
#php_verAdds='-7.4'
sslprivkey='/opt/fog/snapins/ssl//.srvprivate.key'
sendreports='Y'
## End of FOG Settings

View File

@ -1,26 +1,49 @@
---
- name: creation d'un repertoire fog
file:
path: /root/tools/fog
state: directory
- name: recuperation de l'archive d'installation fog sur git
git:
repo: https://gitea.lyc-lecastel.fr/gadmin/fog.git
dest: /root/tools/fog/
clone: yes
update: yes
- name: Modification fichier bash (desac UDPCast)
ansible.builtin.lineinfile:
path: /root/tools/fog/lib/common/functions.sh
regexp: '^configureUDPCast\(\).*'
line: "configureUDPCast() {\nreturn"
backup: yes
- name: Installation des paquets de base
apt:
state: present
name:
- apache2
- curl
- git
- gzip
- isc-dhcp-server
- mariadb-client
- mariadb-server
- net-tools
- openssh-server
- php
- php-cli
- php-curl
- php-fpm
- php-gd
- php-intl
- php-json
- php-ldap
- php-mbstring
- php-mysql
- tar
- unzip
- vsftpd
- wget
- name: fichier config fogsettings
command: "cp /root/tools/ansible/roles/fog/files/fogsettings /opt/fog/"
copy:
src: fogsettings
dest: /tmp/
- name: fichier fogsettings en .fogsettings
command: "mv /opt/fog/fogsettings /opt/fog/.fogsettings"
- name: Récupération archive d'installation Fog
get_url:
url: "{{ depl_url }}/{{ depl_fog }}"
dest: "/tmp/"
- name: Décompression de l'archive
ansible.builtin.unarchive:
src: "/tmp/{{ depl_fog }}"
dest: "/tmp/"
- name: Exécution du script d'installation Fog
ansible.builtin.shell: sudo bash /tmp/fogproject-1.5.10/bin/installfog.sh --recreate-keys -f /tmp/fogsettings -y
args:
chdir: "/tmp/fogproject-1.5.10/"

View File

@ -1,44 +1,93 @@
## Comment marche le rôle
## Comment fonctionne le rôle
Le rôle installe un serveur GLPI fonctionnant graĉe à php et à nginx.
Ce rôle permet aussi d'installer FusionInventory sur glpi.
Le rôle permet aussi de sauvegarde la BDD de glpi.
Ce rôle permet aussi de télécharger l'agent GLPI sur glpi.
Le rôle permet de créer la base GLPI.
## Comment utiliser GLPI
Après le pull-config, aller sur une machine du réseau n-user et aller sur http://s-itil/install/install.php
Puis lancer l'installation, les paramètres sql à fournir sont :
serveur : localhost
utilisateur : glpi
mot de passe : glpi
Selectionner la base glpi
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**
* mot de passe : **glpi**
* Selectionner la base **glpi**
Ne pas envoyer de statistique d'usage
## Postfix :
Aller dans Configuration > Notification, activer le suivi et les notification
Postfix est utilisé pour renvoyer des messages pour assuré le suivi de l'avancement du ticket.
Aller dans **Configuration > Notification**, activer le suivi et les notification
Aller dans Configuration des notifications par courriels
Mettre l'adresse mail de supervision dans : Courriel de l'administrateur, Courriel expéditeur et comme adresse de réponse
Le mode d'envoie des courriels est SMTP
l'hôte SMTP est localhost
## Inventorier une machine windows sur le serveur GLPI avec l'agent :
Actuellement la version de l'agent glpi disponible directement sur le serveur est la version 1.7 de celui.
* Télécharger l'agent depuis le serveur GLPI : *http://s-itil/glpicli*
* Installer l'agent : sélectionner l'option "Typical" et entrer l'URL du serveur dans "Remote Targets" : *http://s-itil/*
* Se rendre sur localhost:62354 pour forcer la remonter
*Note: si la machine ne remonte aprés avoir forcer l'interface depuis l'interface web il est possible de rédémarrer le service glpi agent.*
* Actualiser GLPI et la machine sera inventoriée
## Enregistrements A et PTR pour S-WIN :
Les enregistrements "A" et "PTR" sont utilisés pour résoudre les noms des machines nécessaire à la synchronisation de l'annuaire LDAP sur le serveur comme serveur DNS GLPI en utilisant le serveur S-WIN sans passé sur le serveur S-INFRA.
Ajouter les enregistrement "A" et "PTR" sur le DNS de l'Active Directory:
Sur le serveur S-WIN:
**Gestionnaire de serveur** --> **Gestionnaire DNS** --> **Zones Recherches Directes** --> **gsb.lan** --> **Ajouter un hôte (A)**:
* s-infra 172.16.0.1
* s-itil 172.16.0.9
* r-int 172.16.0.254
* s-win 172.16.0.6
Cocher la case **Créer un pointeur d'enregistrement PTR associé**
## LDAP :
Aller dans Configuration > Authentification > Annuaires LDAP.
Ajouter un serveur en cliquant sur le +
Remplisser les cases:
Nom : s-win
Serveur par défaut : oui
Actif : oui
Serveur : s-win.gsb.lan
Filtre de connexion : (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
BaseDN : DC=gsb,DC=lan
DN du compte : GSB\Administrateur
Mot de passe : Azerty1+
Champ de l'identifiant : samaccountname
* Nom : **s-win**
* Serveur par défaut : **oui**
* Actif : **oui**
* Serveur : **s-win.gsb.lan**
* Filtre de connexion : (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
* BaseDN : **DC=gsb,DC=lan**
* DN du compte : **GSB\Administrateur**
* Mot de passe : **Azerty1+**
* Champ de l'identifiant : **samaccountname**
Pour importer les utilisateurs allez dans Administration > Utilisateur > Liaison annuaire LDAP > Importation de nouveau utilisateurs
Pour importer les utilisateurs allez dans **Administration > Utilisateur > Liaison annuaire LDAP > Importation de nouveau utilisateurs**
Appuyer sur rechercher
Puis sélectionner les utilisateurs afficher, allez dans action et sélectionnez importer.
## Rejoindre le domaine gsb.lan depuis un client windows :
Afin de rejoindre le domaine **gsb.lan**, il est nécessaire d'ajouter en guise de serveur DNS sur la machine cliente le serveur DNS de l'Active Directory **s-win.gsb.lan**.
Il est possible d'ainsi rejoindre le domaine **gsb.lan**.
Nous utiliserons pour se connecter à l'Active Directory l'utilisateur **Administrateur**:
* **Login**: **Administrateur@gsb.lan**
* **Mot de passe**: **Azerty1+**
## Les modification à faire pour un prochaine version de GLPI :
Pour les prochaines versions de GLPI et pouvoir utiliser le playbook, voici les modification à faire :
* Changer la version de GLPI
* Changer la version de PHP
* Changer la version de GLPI Agent
*Modification effectué par : jm - ak*

View File

@ -1,6 +1,15 @@
#variable depl
depl_url: "http://s-adm.gsb.adm/gsbstore"
#depl_glpi: "glpi-9.5.6.tgz"
depl_glpi: "glpi-10.0.6.tgz"
depl_glpi: "glpi-10.0.11.tgz"
#depl_fusioninventory: "fusioninventory-9.5+3.0.tar.bz2"
depl_glpi_agentx64: "GLPI-Agent-1.4-x64.msi"
depl_glpi_agentx86: "GLPI-Agent-1.4-x86.msi"
depl_glpi_agentx64: "GLPI-Agent-1.7-x64.msi"
#variables glpi
glpi_version: "10.0.11"
glpi_dir: "/var/www/html/glpi"
glpi_dbhost: "127.0.0.1"
glpi_dbname: "glpi"
glpi_dbuser: "glpi"
glpi_dbpasswd: "glpi"
glpi_cli: "/var/www/html/glpicli"

View File

@ -1,4 +0,0 @@
#!/bin/sh
chm="/var/www/html/glpi/files/_dumps"
# Dump base GLPI
mysqldump -uroot -proot glpi |gzip > $chm/$(date +%Y-%m-%d).sql.gz

View File

@ -1,9 +1,15 @@
---
- name: restart php-fpm
service: name=php7.0-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,7 +1,7 @@
---
- name: Installation des paquets
apt:
state: latest
state: present
name:
- nginx
- php-fpm
@ -24,10 +24,10 @@
- postfix
- mailutils
- name: Changement listen dans le fichier conf de php7.3
- name: Changement listen dans le fichier conf de php8.2
replace:
dest: /etc/php/7.4/fpm/pool.d/www.conf
regexp: 'listen = /run/php/php7.4-fpm.sock'
dest: /etc/php/8.2/fpm/pool.d/www.conf
regexp: 'listen = /run/php/php8.2-fpm.sock'
replace: 'listen = 127.0.0.1:9000'
backup: yes
@ -41,9 +41,12 @@
src: block.j2
dest: /etc/nginx/sites-enabled/glpi
notify:
- restart nginx
- name: Remplacement dans le fichier de conf php du timeout
replace:
dest: /etc/php/7.4/fpm/php.ini
dest: /etc/php/8.2/fpm/php.ini
regexp: 'max_execution_time = 30'
replace: 'max_execution_time = 600'
backup: yes
@ -112,9 +115,9 @@
# dest: /var/www/html/glpi/plugins
# remote_src: yes
- name: Creation de ficlient
- name: Creation de glpicli
file:
path: /var/www/html/ficlients
path: "{{ glpi_cli }}"
state: directory
owner: www-data
group: www-data
@ -130,20 +133,18 @@
- name: Installation de GLPI Agent windows x64
get_url:
url: "{{ depl_url }}/{{ depl_glpi_agentx64 }}"
dest: "/var/www/html/ficlients"
dest: "{{ glpi_cli }}"
# - name: Installation de GLPI Agent windows x86
# get_url:
# url: "{{ depl_url }}/{{ depl_glpi_agentx86 }}"
# dest: "/var/www/html/ficlients"
notify:
- restart nginx
- name: Copie du script dbdump
copy:
src: dbdump
dest: /root/
- name: lancer la commande de création de la base de donnees glpi
ansible.builtin.shell: "php bin/console database:install --reconfigure --db-name {{ glpi_dbname }} --db-user {{ glpi_dbuser }} --db-password {{ glpi_dbpasswd }} -f -n"
args:
chdir: "{{ glpi_dir }}"
- name: chmod de dbdump
shell: chmod +x /root/dbdump
- debug:
msg: "base de donnees de glpi creer"
- debug:
msg: "Redemarrez le serveur GLPI"

View File

@ -16,7 +16,7 @@ server {
fastcgi_param SERVER_NAME $host;
}
location /ficlients {
location /glpicli {
root /var/www/html;
autoindex on;
}

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éalisées 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

@ -1,16 +1,16 @@
---
- name: Installation de systemd-journal-remote
- name: 1. Installation de systemd-journal-remote
apt:
name: systemd-journal-remote
state: present
- name: Enable et start systemd-journal-remote.socket
- name: 2. 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
- name: 3. 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
@ -18,20 +18,27 @@
backup: yes
- name: Modification de systemd-journal-remote.service
- name: 4. 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
- name: 5. active le mode SplitMode en mode Host
replace:
path: /etc/systemd/journal-remote.conf
regexp: '^#\sSplitMode=host'
replace: 'SplitMode=host'
- name: 6. Creation /var/log/journal/remote directory
file:
path: /var/log/journal/remote
state: directory
owner: systemd-journal-remote
- name: Redemarrage de systemd
- name: 7. Redemarrage de systemd
systemd:
daemon_reload: yes
notify:
- restart jourald
# notify:
#- restart journald

View File

@ -8,7 +8,7 @@
- name: 2. indique l'URL journald distant
replace:
path: /etc/systemd/journal-upload.conf
regexp: '^#URL='
regexp: '^#\sURL='
replace: 'URL=http://syslog.gsb.adm:19532'
- name: 3. Just force systemd to reread configs (2.4 and above)
@ -23,7 +23,7 @@
- name: 5. redemarre systemd-journal-upload.service
service:
name: systemd-journal-upload.service
state: restart
state: restarted
#notify:
#- enable systemd-journal-upload
#- restart systemd-journal-upload

View File

@ -0,0 +1,26 @@
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# cote N-adm
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.99.20
netmask 255.255.255.0
gateway 192.168.99.99
# cote N-infra
allow-hotplug enp0s8
iface enp0s8 inet static
address 172.16.0.20
netmask 255.255.255.0
#cote N-user
allow-hotplug enp0s9
iface enp0s9 inet static
address 172.16.64.20
netmask 255.255.255.0

View File

@ -0,0 +1,26 @@
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# cote N-adm
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.99.21
netmask 255.255.255.0
gateway 192.168.99.99
# cote N-infra
allow-hotplug enp0s8
iface enp0s8 inet static
address 172.16.0.21
netmask 255.255.255.0
#cote N-user
allow-hotplug enp0s9
iface enp0s9 inet static
address 172.16.64.21
netmask 255.255.255.0

View File

@ -0,0 +1,14 @@
# Rôle Zabbix client
***
Rôle du Zabbix client pour la supervision des différentes machines en active
## Tables des matières
1. [Que fait le rôle Zabbix ?]
## Que fait le rôle Zabbix ?
Il permet de configurer les agents zabbix en active sur le serveur à définir dans defaults.
### Installation et configuration de Zabbix-agent
Le rôle Zabbix-cli va installer zabbix-agent pour les serveurs, zabbix-agent pour superviser, zabbix-agent sera notre outil de supervision côté serveurs.

View File

@ -0,0 +1,5 @@
- name: restart zabbix agent
service:
name: zabbix-agent
state: restarted
enabled: yes

View File

@ -0,0 +1,36 @@
- name: Intallation 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
apt:
deb: "/tmp/zabbix-release_6.4-1+debian12_all.deb"
state: present
- name: Update apt
apt:
update_cache: yes
- name: Intallation Zabbix agent
apt:
name: zabbix-agent
state: present
- name: Enable Zabbix agent service
service:
name: zabbix-agent
state: restarted
enabled: yes
- name: Replace Zabbix agent config
replace:
path: /etc/zabbix/zabbix_agentd.conf
regexp: '{{ item.regexp }}'
replace: '{{ item.replace }}'
backup: true
loop:
- { regexp: '^(Server\s*=\s*).*$', replace: 'Server = 127.0.0.1' }
- { regexp: '^(ServerActive\s*=\s*).*$', replace: 'ServerActive = 192.168.99.8' }
- { regexp: '^(Hostname\s*=\s*).*$', replace: 'Hostname = {{ ansible_hostname }}' }
- { regexp: '^(Include\s*=\s*).*$', replace: 'Include = /etc/zabbix/zabbix_agentd.d/*.conf' }

View File

@ -1,18 +1,15 @@
# Rôle nagios
# Rôle zabbix-srv
***
Rôle Nagios pour la supervision des différentes machines
Rôle zabbix-srv pour la supervision des différentes machines
## Tables des matières
1. [Que fait le rôle Zabbix ?]
1. Que fait le rôle zabbix-srv ?
## Que fait le rôle Nagios ?
## Que fait le rôle zabbix-srv ?
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.
### Installation et configuration de Zabbix
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".
Le rôle Zabbix va installer apache2 pour le serveur web, zabbix-server pour la supervision, zabbix qui sera notre outil de supervision.
Lors de la première connexion, on indique les identifiants de la BDD avec "zabbix" et "password".
Pour l'id de Zabbix, c'est "Admin" et "zabbix", à l'adresse "https://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

@ -53,7 +53,14 @@
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: 9. Importer le schema initial
shell: zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -ppassword zabbix
community.mysql.mysql_db:
state: import
name: zabbix
encoding: utf8mb4
login_user: zabbix
login_password: password
target: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: 10. Modifier la variable pour le schema
community.mysql.mysql_variables:
@ -68,11 +75,20 @@
regexp: '^# DBPassword='
replace: 'DBPassword=password'
- name: 12. Lancer le service zabbix
- name: 12. Lancer le service zabbix-server
service:
name:
- zabbix-server
- zabbix-agent
- apache2
name: zabbix-server
state: restarted
enabled: yes
- name: 13. Lancer le service zabbix-agent
service:
name: zabbix-agent
state: restarted
enabled: yes
- name: 14. Lancer le service apache2
service:
name: apache2
state: restarted
enabled: yes

View File

@ -8,7 +8,7 @@
- dnsmasq
- squid
# - local-store
- snmp-agent
# #- zabbix-cli
## - syslog-cli
- post
# - goss

View File

@ -8,7 +8,7 @@
- appli
- ssh-cli
# - syslog-cli
- snmp-agent
#- zabbix-cli
- ssl-apache
- post

View File

@ -6,7 +6,7 @@
- base
- goss
# - proxy3
- snmp-agent
#- zabbix-cli
# - ssh-cli
# - syslog-cli
- smb-backup

View File

@ -5,9 +5,10 @@
roles:
- base
- goss
- dhcp-fog
- ssh-cli
- snmp-agent
#- dhcp-fog
# - ssh-cli
# - snmp-agent
# - syslog-cli
- fog
# - fog
#- - journald-snd
- post

View File

@ -4,10 +4,10 @@
# include: config.yml
roles:
- base
#- zabbix-cli
- goss
- dns-master
- webautoconf
- snmp-agent
- journald-snd
- ssh-cli
- post

View File

@ -2,19 +2,20 @@
- hosts: localhost
connection: local
vars:
glpi_version: "10.0.6"
glpi_dir: "/var/www/html/glpi"
glpi_dbhost: "127.0.0.1"
glpi_dbname: "glpi"
glpi_dbuser: "glpi"
glpi_dbpasswd: "glpi"
#vars:
#glpi_version: "10.0.11"
#glpi_dir: "/var/www/html/glpi"
#glpi_dbhost: "127.0.0.1"
#glpi_dbname: "glpi"
#glpi_dbuser: "glpi"
#glpi_dbpasswd: "glpi"
roles:
- base
- goss
- snmp-agent
- zabbix-cli
- glpi
- ssh-cli
# - syslog-cli
- journald-snd
- post

View File

@ -6,7 +6,7 @@
- base
- goss
- squid
- snmp-agent
#- zabbix-cli
- ssh-cli
# - syslog-cli
- post

View File

@ -1,19 +1,21 @@
#!/bin/bash
mkvmrelease="v1.3.0"
mkvmrelease="v1.3.2"
ovarelease="2023c"
ovafogrelease="2023b"
ovafogrelease="2024a"
#ovafile="$HOME/Téléchargements/debian-bullseye-gsb-${ovarelease}.ova"
ovafile="$HOME/Téléchargements/debian-bookworm-gsb-${ovarelease}.ova"
ovafilefog="$HOME/Téléchargements/debian-buster-gsb-${ovafogrelease}.ova"
ovafilefog="$HOME/Téléchargements/debian-bullseye-gsb-${ovafogrelease}.ova"
startmode=0
deletemode=0
usage () {
echo "$0 - version ${mkvmrelease} - Ova version ${ovarelease}"
echo "$0 : creation VM et parametrage interfaces"
echo "usage : $0 [-r] <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 "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 -s : start VM apres creation"
exit 1
}
@ -59,12 +61,19 @@ fi
if [[ $1 == "--help" ]] || [[ $1 == "-h" ]] || [[ $1 == "-V" ]] ; then
usage
fi
if [[ $1 == "-r" ]] ; then
deletemode=1
shift
fi
vm="$1"
while [[ -n "$1" ]] ; do
if [[ "$1" == "-s" ]] ; then
startmode=1
shift
elif [[ "$1" == "-r" ]] ; then
deletemode=1
shift
else
parm=$1
shift
fi
done
vm="${parm}"
create_vm "${vm}"
if [[ "${vm}" == "s-adm" ]] ; then
bash addint.s-adm
@ -91,6 +100,10 @@ elif [[ "${vm}" == "s-nxc" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-fog" ]] ; then
create_if "${vm}" "n-adm" "n-infra" "n-user"
elif [[ "${vm}" == "s-kea-1" ]] ; then
create_if "${vm}" "n-adm" "n-infra" "n-user"
elif [[ "${vm}" == "s-kea-2" ]] ; then
create_if "${vm}" "n-adm" "n-infra" "n-user"
elif [[ "${vm}" == "s-dns-ext" ]] ; then
create_if "${vm}" "n-adm" "n-dmz"
elif [[ "${vm}" == "s-web-ext" ]] ; then
@ -123,3 +136,6 @@ else
echo "$0 : vm ${vm} non prevue "
exit 2
fi
if [[ $startmode == 1 ]] ; then
vboxmanage startvm "${vm}" --type headless
fi

View File

@ -3,11 +3,11 @@
#mkvm pour toutes les vms
$mkvmrelease="v1.3.0"
$mkvmrelease="v1.3.1"
$ovarelease="2023c"
$ovafogrelease="2023b"
$ovafogrelease="2024a"
$ovafile="$HOME\Downloads\debian-bookworm-gsb-${ovarelease}.ova"
$ovafilefog="$HOME\Downloads\debian-buster-gsb-${ovafogrelease}.ova"
$ovafilefog="$HOME\Downloads\debian-bullseye-gsb-${ovafogrelease}.ova"
$vboxmanage="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
$deletemode=0

View File

@ -1,18 +1,29 @@
# Tuto Installation Windows Serveur
## Création de la nouvelle VM:
- Créer une nouvelle machine virtuelle avec l'image ISO "Windows Server 2019 fr-Fr x64 (Janvier 2020).iso" et cocher la case "Skip Unattended Installation". (lien source: http://store2.sio.lan/sionas/Public/iso/windows/?sort=namedirfirst&order=asc)
- Mémoire vive: 4096Mo
- Processor: 1
- Virtual Hard Disk: 30Go
- Une fois l'installation du serveur Windows, renommer le serveur en s-win et installer git.
- Installer Serveur DNS et Services AD DS.
- Créer une nouvelle fôret pour le domaine gsb.lan.
- Configurer la zone inverse du DNS.
## Démarrage de la VM Windows Server 2019:
- Une fois l'installation du serveur Windows 2019, démarrer la VM Windows Server.
- Faite l'installation de windows server. Vous pouvez suivre de l'étape 3 a l'étape 12 (Lien : https://www.infonovice.fr/guide-dinstallation-de-windows-server-2019-avec-une-interface-graphique/)
- Renommer votre nom de machine du serveur windows depuis les parametre de "Informations Systèmes" en **s-win**. Puis redémarrer la machine.
- Modifier la premiere carte de l'IP du serveur windows depuis le panneau de configuration en "192.168.99.6" avec la passerelle en "192.168.99.99 et la seconde en "172.16.0.6" et ajouter la passerelle par defaut en "172.16.0.254".
- Eteindre votre VM et ajouter une carte en pont dans les parametres reseaux de la VM. Allumer votre VM et installer git depuis le site officiel, il faudra sans doute activer certaines options dans les parametres d'internet explorer comme "JavaScript" ou encore l'option de Téléchargement (lien source: https://git-scm.com/download/win et https://support.microsoft.com/fr-fr/topic/procédure-d-activation-de-javascript-dans-windows-88d27b37-6484-7fc0-17df-872f65168279).
- Installer Serveur DNS et Services AD DS. Pour vous aider, suivre le TP de "Installation du service" a "Installation serveur DNS" (lien source: https://sio.lyc-lecastel.fr/doku.php?id=promo_2024:serveur_windows_2019-installation_ad)
- Créer une nouvelle fôret pour le domaine **gsb.lan**.
- Configurer la zone inverse du DNS et l'alimenter avec les enregistrements souhaités (A et PTR pour **s-win**, **s-itil**, **r-int** et **s-infra*. Vous pouvez vous aidez de ce tutoriel (https://www.it-connect.fr/dns-sous-windows-server-2022-comment-configurer-une-zone-de-recherche-inversee/).
## Création des dossiers partagés et des utilisateur
- Lancer mkusr-compta.cmd et mkusr-ventes.cmd sur s-win pour créer les utilisateurs avec leurs droits.
- Le fichier gsb-dossiers.cmd permet de créer des dossiers partagés.
- Le fichier mkusr.cmd permet de créer un autre utiliateur avec les mêmes droits que les autres.
- Lancer `mkusr-compta.cmd` et `mkusr-ventes.cmd` sur s-win pour créer les utilisateurs avec leurs droits.
- Lancer `gsb-dossiers.cmd`. Il permet de créer des dossiers partagés.
- Le fichier `mkusr.cmd` permet de créer un autre utiliateur avec les mêmes droits que les autres.
## Utilisation des comptes utilisateurs avec AD
- Pour utiliser l'AD du serveur **s-win**, installer un poste de travail Windows 10 dans le réseau `n-user`.
- Une fois la machine installée et démarrée, mettre a jours la carte réseau en DHCP la faire adhérer au domaine **gsb.lan** (Poste de Travail/Nom).
- Redémarrer puis se connecter avec les identifiants de domaine choisis.
## Utilisation des comptes utilisateurs
- Pour utiliser l'AD du serveur s-win, créer une machine Windows 10 dans le réseau n-user.
- Une fois son adresse IP obtenue (172.16.64.xx) ajouter la machine dans le domaine gsb.lan en utilisant un utiliateur (autre que l'Administrateur).
- Redémarrer puis se connecter avec les identifiants choisis.