Compare commits

..

2 Commits

Author SHA1 Message Date
c78e135cb6 modification roles glpi 2024-01-11 11:18:53 +01:00
6902c40779 mise a jour role glpi 2024-01-11 09:44:41 +01:00
26 changed files with 199 additions and 457 deletions

View File

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

View File

@ -1,50 +1,18 @@
file: interface:
/tftpboot/default.ipxe: enp0s3:
exists: true exists: true
mode: "0644" addrs:
owner: root - 192.168.99.16/24
group: root interface:
filetype: file enp0s8:
contains: [] exists: true
package: addrs:
apache2: - 172.16.0.16/24
installed: true interface:
versions: enp0s9:
- 2.4.57-2 exists: true
isc-dhcp-server: addrs:
installed: true - 172.16.64.16/24
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: command:
ping -c 4 192.168.99.99: ping -c 4 192.168.99.99:
exit-status: 0 exit-status: 0
@ -58,11 +26,3 @@ command:
- 0% packet loss - 0% packet loss
stderr: [] stderr: []
timeout: 10000 timeout: 10000
process:
apache2:
running: true
interface:
enp0s9:
exists: true
addrs:
- 172.16.64.16/24

View File

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

View File

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

View File

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

View File

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

View File

@ -1,41 +1,16 @@
# Fog # Fog
Ce rôle permet **l'installation** et la **configuration** de **Fog**. Ce rôle permet l'installation et la modification 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**.
**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. ## Fog, c'est quoi ?
Dans le contexte de GSB, Fog avec PXE,assure le service **DHCP**.
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). Fog permet le déploiement d'images disque tel que Windows ou bien Linux en utilisant PXE (Preboot Execution Environment).
## Comment l'installer et le configurer ?
### Prérequis: ## Comment l'installer ?
Mettre au moins 4GB de mémoire.
### Etape 1: 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**
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_url: "http://s-adm.gsb.adm/gsbstore"
depl_fog: "fogproject-1.5.10.tar.gz" depl_fog: "fogproject-1.5.9.tar.gz"
instructions: "Pour lancer l'installateur Fog, faites : 'bash /root/tools/fog/bin/installfog.sh'. Suivez ensuite les instructions" instructions: "Pour lancer l'installateur Fog, faites : 'bash /root/tools/fog/bin/installfog.sh'. Suivez ensuite les instructions"

View File

@ -2,16 +2,15 @@
## Created by the FOG Installer ## Created by the FOG Installer
## Find more information about this file in the FOG Project wiki: ## Find more information about this file in the FOG Project wiki:
## https://wiki.fogproject.org/wiki/index.php?title=.fogsettings ## https://wiki.fogproject.org/wiki/index.php?title=.fogsettings
## Version: 1.5.10 ## Version: 1.5.9
## Install time: jeu. 11 janv. 2024 ## Install time: jeu. 26 janv. 2023 11:41:05
## Install time: jeu. 11 janv. 2024 11:41:05
ipaddress='172.16.64.16' ipaddress='172.16.64.16'
copybackold='0' copybackold='0'
interface='enp0s9' interface='enp0s9'
submask='255.255.255.0' submask='255.255.255.0'
hostname='s-fog.gsb.lan' hostname='s-fog.gsb.lan'
routeraddress='172.16.64.254' routeraddress='192.168.99.99'
plainrouter='172.16.64.254' plainrouter='192.168.99.99'
dnsaddress='172.16.0.1' dnsaddress='172.16.0.1'
username='fogproject' username='fogproject'
password='/7ElC1OHrP47EN2w59xl' password='/7ElC1OHrP47EN2w59xl'
@ -26,24 +25,22 @@ snmysqluser='fogmaster'
snmysqlpass='HHO5vSGqFiHE_9d2lja3' snmysqlpass='HHO5vSGqFiHE_9d2lja3'
snmysqlhost='localhost' snmysqlhost='localhost'
mysqldbname='fog' mysqldbname='fog'
installlang='1' installlang='0'
storageLocation='/images' storageLocation='/images'
fogupdateloaded=1 fogupdateloaded=1
docroot='/var/www/' docroot='/var/www/html/'
webroot='/fog/' webroot='/fog/'
caCreated='yes' caCreated='yes'
httpproto='https' httpproto='http'
startrange='172.16.64.10' startrange='172.16.64.10'
endrange='172.16.64.254' endrange='172.16.64.254'
#bootfilename='undionly.kpxe' 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' 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>
noTftpBuild='' noTftpBuild=''
tftpAdvOpts=''
sslpath='/opt/fog/snapins/ssl/' sslpath='/opt/fog/snapins/ssl/'
backupPath='/home/' backupPath='/home/'
armsupport='0' armsupport='0'
php_ver='8.2' php_ver='7.4'
#php_verAdds='-7.4' php_verAdds='-7.4'
sslprivkey='/opt/fog/snapins/ssl//.srvprivate.key' sslprivkey='/opt/fog/snapins/ssl//.srvprivate.key'
sendreports='Y'
## End of FOG Settings ## End of FOG Settings

View File

@ -1,49 +1,26 @@
--- ---
- name: Installation des paquets de base - name: creation d'un repertoire fog
apt: file:
state: present path: /root/tools/fog
name: state: directory
- apache2
- curl - name: recuperation de l'archive d'installation fog sur git
- git git:
- gzip repo: https://gitea.lyc-lecastel.fr/gadmin/fog.git
- isc-dhcp-server dest: /root/tools/fog/
- mariadb-client clone: yes
- mariadb-server update: yes
- net-tools
- openssh-server - name: Modification fichier bash (desac UDPCast)
- php ansible.builtin.lineinfile:
- php-cli path: /root/tools/fog/lib/common/functions.sh
- php-curl regexp: '^configureUDPCast\(\).*'
- php-fpm line: "configureUDPCast() {\nreturn"
- php-gd backup: yes
- php-intl
- php-json
- php-ldap
- php-mbstring
- php-mysql
- tar
- unzip
- vsftpd
- wget
- name: fichier config fogsettings - name: fichier config fogsettings
copy: command: "cp /root/tools/ansible/roles/fog/files/fogsettings /opt/fog/"
src: fogsettings
dest: /tmp/
- name: Récupération archive d'installation Fog - name: fichier fogsettings en .fogsettings
get_url: command: "mv /opt/fog/fogsettings /opt/fog/.fogsettings"
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,93 +1,44 @@
## Comment fonctionne le rôle ## Comment marche le rôle
Le rôle installe un serveur GLPI fonctionnant graĉe à php et à nginx. Le rôle installe un serveur GLPI fonctionnant graĉe à php et à nginx.
Ce rôle permet aussi de télécharger l'agent GLPI sur glpi. Ce rôle permet aussi d'installer FusionInventory sur glpi.
Le rôle permet de créer la base GLPI. Le rôle permet aussi de sauvegarde la BDD de glpi.
## Comment utiliser 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.gsb.lan* 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 les suivant : Puis lancer l'installation, les paramètres sql à fournir sont :
* serveur : **localhost** serveur : localhost
* utilisateur : **glpi** utilisateur : glpi
* mot de passe : **glpi** mot de passe : glpi
* Selectionner la base **glpi** Selectionner la base glpi
Ne pas envoyer de statistique d'usage Ne pas envoyer de statistique d'usage
## Postfix : ## Postfix :
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 > Notification**, activer le suivi et les notification
Aller dans Configuration des notifications par courriels 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 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 Le mode d'envoie des courriels est SMTP
l'hôte SMTP est localhost 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 : ## LDAP :
Aller dans Configuration > Authentification > Annuaires LDAP. Aller dans Configuration > Authentification > Annuaires LDAP.
Ajouter un serveur en cliquant sur le + Ajouter un serveur en cliquant sur le +
Remplisser les cases: Remplisser les cases:
* Nom : **s-win** Nom : s-win
* Serveur par défaut : **oui** Serveur par défaut : oui
* Actif : **oui** Actif : oui
* Serveur : **s-win.gsb.lan** Serveur : s-win.gsb.lan
* Filtre de connexion : (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))) Filtre de connexion : (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
* BaseDN : **DC=gsb,DC=lan** BaseDN : DC=gsb,DC=lan
* DN du compte : **GSB\Administrateur** DN du compte : GSB\Administrateur
* Mot de passe : **Azerty1+** Mot de passe : Azerty1+
* Champ de l'identifiant : **samaccountname** 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 Appuyer sur rechercher
Puis sélectionner les utilisateurs afficher, allez dans action et sélectionnez importer. 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,15 +1,9 @@
--- ---
- name: restart php-fpm - name: restart php-fpm
service: service: name=php8.2-fpm state=restarted
name: php8.2-fpm
state=: restarted
- name: restart nginx - name: restart nginx
service: service: name=nginx state=restarted
name: nginx
state: restarted
- name: restart mariadb-server - name: restart mariadb-server
service: service: name=mariadb-server state=restarted
name: mariadb-server
state: restarted

View File

@ -139,7 +139,7 @@
- restart nginx - restart nginx
- name: lancer la commande de création de la base de donnees glpi - 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" ansible.builtin.shell: php bin/console database:install -f -n
args: args:
chdir: "{{ glpi_dir }}" chdir: "{{ glpi_dir }}"

View File

@ -1,30 +1,16 @@
# Role journald-rcv : installation et configuration du serveur systemd-journal-remote (centralisation des logs) # Role syslog : installation et configuration de syslog serveur (centralisation des logs)
*** ***
## Fonctionnalitées du rôle:
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. 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"\)'
## Opérations réaliser par le role: Ensuite le role active l'écoute du module UDP sur le port 514 afin de pouvoir envoyer les logs.
Le scrpipt réalise les opération suivante: on décommente la ligne suivante dans le même fichier que ci-dessus :
* installation du paquet **systemd-journal-remote**. 'input\(type="imudp" port="514"\)'
* 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.
## Test du bon fonctionnement du rôle 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'
Afin de tester le rôle nous éffectuons un test: pour finir le role va redemmarer automatiquement les services journald et rsyslog
**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,13 +1,13 @@
# Rôle Zabbix client # Rôle nagios
*** ***
Rôle du Zabbix client pour la supervision des différentes machines en active Rôle Nagios pour la supervision des différentes machines
## Tables des matières ## Tables des matières
1. [Que fait le rôle Zabbix ?] 1. [Que fait le rôle Zabbix ?]
## Que fait le rôle Zabbix ? ## Que fait le rôle Nagios ?
Il permet de configurer les agents zabbix en active sur le serveur à définir dans defaults. Il permet de configurer les agents zabbix en active.
### Installation et configuration de Zabbix-agent ### Installation et configuration de Zabbix-agent

View File

@ -0,0 +1,6 @@
PidFile: "/run/zabbix/zabbix_agentd.pid"
LogFile: "/var/log/zabbix/zabbix_agentd.log"
LogFileSize: "0"
Server: "127.0.0.1"
ServerActive: "192.168.99.106"
Include: "/etc/zabbix/zabbix_agentd.d/*.conf"

View File

@ -1,5 +1,12 @@
- name: restart zabbix agent - name: config
service: template:
name: zabbix-agent src: zabbix_agentd.conf.temp
state: restarted dest: /etc/zabbix/zabbix_agentd.conf
enabled: yes vars:
PidFile: "{{ PidFile }}"
LogFile: "{{ LogFile }}"
LogFileSize: "{{ LogFileSize }}"
Server: "{{ Server }}"
ServerActive: "{{ ServerActive }}"
Hostname: "{{ ansible_hostname }}"
Include: "{{ Include }}"

View File

@ -1,7 +1,7 @@
- name: Intallation paquet zabbix agent - name: Intallation paquet zabbix agent
get_url: get_url:
url: "https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb" url: "https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb"
dest: "/tmp" dest: "/tmp/zabbix-release_6.4-1+debian12_all.deb"
- name: Intallation paquet zabbix agent suite - name: Intallation paquet zabbix agent suite
apt: apt:
@ -20,7 +20,6 @@
- name: Enable Zabbix agent service - name: Enable Zabbix agent service
systemd: systemd:
name: zabbix-agent name: zabbix-agent
state: restarted
enabled: yes enabled: yes
- name: Rm package - name: Rm package
@ -28,15 +27,3 @@
path: "/tmp/zabbix-release_6.4-1+debian12_all.deb" path: "/tmp/zabbix-release_6.4-1+debian12_all.deb"
state: absent state: absent
- name: config
template:
src: zabbix_agentd.conf.temp
dest: /etc/zabbix/zabbix_agentd.conf
vars:
PidFile: "/run/zabbix/zabbix_agentd.pid"
LogFile: "/var/log/zabbix/zabbix_agentd.log"
LogFileSize: "0"
Server: "127.0.0.1"
ServerActive: "192.168.99.8"
Hostname: "{{ ansible_hostname }}"
Include: "/etc/zabbix/zabbix_agentd.d/*.conf"

View File

@ -1,15 +1,18 @@
# Rôle zabbix-srv # Rôle nagios
*** ***
Rôle zabbix-srv pour la supervision des différentes machines Rôle Nagios pour la supervision des différentes machines
## Tables des matières ## Tables des matières
1. Que fait le rôle zabbix-srv ? 1. [Que fait le rôle Zabbix ?]
## Que fait le rôle zabbix-srv ? ## Que fait le rôle Nagios ?
Le rôle zabbix-srv va installer `apache2` pour le serveur web, `zabbix-server` pour la supervision et `zabbix-agent` pour gérer les clients, **Zabbix** qui sera notre outil de supervision.
Lors de l'éxecution du playbook, les identifiants de la BDD sont crées avec le nom d'utilisateur "zabbix" et le mot de passe "password". ### Installation et configuration de Zabbix
Pour l'identifiant de Zabbix, c'est "Admin" et le mot de passe "zabbix", à l'adresse <http://s-mon/zabbix>. 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".

View File

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

View File

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

View File

@ -9,6 +9,5 @@
- ssh-cli - ssh-cli
- snmp-agent - snmp-agent
# - syslog-cli # - syslog-cli
# - fog - fog
- - journald-snd
- post - post

View File

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

View File

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

View File

@ -1,29 +1,22 @@
# Tuto Installation Windows Serveur # Tutoriel d'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
## Démarrage de la VM Windows Server 2019: ## Installation Windpws 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/) - Une fois l'installation terminée, renommer le serveur en **s-win** et installer git.
- Renommer votre nom de machine du serveur windows depuis les parametre de "Informations Systèmes" en **s-win**. Puis redémarrer la machine. - ajouter les deux cartes réseau adressées conformement aux spécifications
- 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". - Installer les services Windows suivants :
- 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). - Serveur DNS
- 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) - Service AD DS.
- Créer une nouvelle fôret pour le domaine **gsb.lan**. - 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/). - Configurer la zone DNS inverse du DNS et l'alimenter avec les enregistrements . souhaités (NS, A pour **s-win**, **s-itil**, ..., PTR pour les précités)
## Création des dossiers partagés et des utilisateur ## Création des répertoires partagés et des utilisateurs
- Lancer `mkusr-compta.cmd` et `mkusr-ventes.cmd` sur s-win pour créer les utilisateurs avec leurs droits. - Lancer les script `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 script `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. - Le script `mkusr.cmd` permet de créer un autre utilisateur avec les mêmes droits que les autres.
## Utilisation des comptes utilisateurs avec AD ## 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`. - 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). - Une fois la machine installéee et démarrée, la faire adhérer au domaine **gsb.lan** (Poste de Travail/Nom).
- Redémarrer puis se connecter avec les identifiants de domaine choisis. - Redémarrer puis se connecter avec les identifiants de domaine choisis.