Compare commits

...

13 Commits

Author SHA1 Message Date
b81cbb8021 reglt conflit 2024-11-15 08:55:40 +00:00
065f454f6f modification du playbook wg.yml 2024-11-15 08:49:23 +00:00
Jarod Pauchet
d29ce732af hosts modification 2024-11-15 09:06:41 +01:00
77c6e532b3 Actualiser ansible/mkwgconf.sh 2024-11-14 16:51:29 +01:00
ea95044a7d Actualiser ansible/wg.yml 2024-11-14 16:50:51 +01:00
Jarod Pauchet
3cc5c7a773 playbook wireguard 2024-11-14 16:49:17 +01:00
Jarod Pauchet
149e630c47 Ajout des playbooks wireguard 2024-11-14 16:45:36 +01:00
2f4941c25e ajout des playbooks wireguard 2024-11-14 15:39:47 +00:00
d6e080d014 Ajout de l'étape 6 2024-11-14 09:53:24 +00:00
006a4c5f4f new file: .wg.yml.swp
modified:   README.md
2024-11-14 09:32:27 +00:00
288ec07a5e Modification du fichier README.md 2024-11-14 09:28:56 +00:00
cd2f872f1f modification des fichiers 2024-11-14 08:43:44 +00:00
8a44865367 creation du playbook apdbdump.yml 2024-11-14 08:36:45 +00:00
14 changed files with 334 additions and 24 deletions

View File

@ -1,19 +0,0 @@
## **Mode d'emplois** : Les playbooks ci-dessous peuvent être déployer de la façon suivante :
### Playbook : apbase.yml
````
ansible-playbook -i hosts apbase.yml
````
### Playbook : apdb.yml
````
````
### Playbook : apdbdump.yml
````
````

View File

@ -1,2 +0,0 @@
[pt]
ap33-pt

View File

@ -1,6 +1,9 @@
# Projet SDIS29 - 2025 - Groupe 3
**Lastest Update** Version v0.0.5c-rr : le 14/11/24 à 10h40 par Rotsy Rahaingo
**Lastest Update** Version v0.0.4c-jp : le 08/11/2024 à 11h10 par Jarod PAUCHET
**Oldest Update** Version v0.0.5b-rr : le 14/11/24 à 09h35 par Rotsy Rahaingo
**Oldest Update** Version v0.0.4c-jp : le 08/11/2024 à 11h10 par Jarod PAUCHET
**Oldest Update** Version v0.0.4a-rr : le 08/11/2024 à 10h30 par Rotsy Rahaingo
@ -192,3 +195,10 @@ sudo sed -i "$rpl" /etc/systemd/journal-upload.conf
sudo systemctl enable --now systemd-journal-upload.service
sudo systemctl restart systemd-journal-upload.service
````
## **Etape 6: Automatisation avec ansible**
Il est également possible d'installer les serveurs ap33-prod et ap33-test automatiquement grâce à ansible. Comme ces machines sont en production, il sera plus judicieux de le faire sur une machine test. Il faudra donc créer deux autres machines :
* **ap33-ans** qui contiendra les différents playbooks
* **ap33-pt** sera la machine cible et également la machine test
Pour avoir plus de détails sur chaque playbook, on peut voir dans le répertoire [ansible](https://gitea.lyc-lecastel.fr/uap33-2025-r/sdis29-3/src/branch/main/ansible).

28
ansible/README.md Normal file
View File

@ -0,0 +1,28 @@
## **Mode d'emplois** : Les playbooks ci-dessous peuvent être déployer de la façon suivante :
### Playbook : apbase.yml
Ce playbook permet de faire la configuration de base :
* changement de la timezone
* recuperation du fichier apt.conf pour pouvoir acceder a internet
* installation des paquets nécessaires pour la réalisation du projet (tomcat, ant, mariadb-server)
* installation du paquet qemu-guest-agent
Pour l'exécuter : ````ansible-playbook -i hosts apbase.yml````
### Playbook : apdb.yml
Ce playbook permet de :
* installer python3 indispensable pour mysql
* créer la base de données sdis29
* créer un nouvel utilisateur qui aura tous les privilèges
* copier le dump mysql sur la machine pt
* importer le fichier sdis29.sql sur la base de données
**NB**: Le module **login_unix_socket: /run/mysqld/mysqld.sock** est nécessaire à chaque fois qu'on fait appel à la base de données
Pour l'exécuter :````ansible-playbook - i hosts apdb.yml````
### Playbook : apdbdump.yml
Ce playbook permet de faire une sauvegarde de la base de données :
* export de la base de données
* recupération du fichier dump
Pour l'exécuter : ````ansible-playbook -i hosts apdbdump.yml````

View File

@ -6,6 +6,7 @@
timezone:
name: Europe/Paris
- name: configure le fichier apt.conf pour le proxy
copy:
content: |
@ -24,4 +25,4 @@
- name: installation de qemu-guest-agent
apt:
name: qemu-guest-agent
state: present
state: present

View File

@ -31,4 +31,4 @@
state: import
target: /tmp/sdis29.sql
force: true
login_unix_socket: /run/mysqld/mysqld.sock
login_unix_socket: /run/mysqld/mysqld.sock

18
ansible/apdbdump.yml Normal file
View File

@ -0,0 +1,18 @@
---
- hosts: all
become: yes
tasks:
- name: export de la database sdis29
community.mysql.mysql_db:
state: dump
name: sdis29
target: /tmp/sdis29-dump.sql
login_unix_socket: /run/mysqld/mysqld.sock
- name: recuperation du fichier de dump sur la machine locale
fetch:
src: /tmp/sdis29-dump.sql
dest: sdis29-dump.sql
flat: yes

65
ansible/wg.yml Normal file
View File

@ -0,0 +1,65 @@
---
- hosts: wg
become: yes
tasks:
- name: arrete unattended-upgrades
service:
name: unattended-upgrades
state: stopped
- name: installe Wireguard
apt:
name:
- wireguard
- wireguard-tools
state: present
- hosts: wg_master
tasks:
- name: copie le fichier wg0-1.conf et wg0-2.conf vers les machines master et cli
copy:
src: mkwgconf.sh
dest: mkwgconf.sh
- name: generations fichier configuration wireguard wg0-1.conf etc
shell: bash mkwgconf.sh
- name: récupération du fichier wg0-1.conf vers ap33-ans
fetch:
src: wg0-1.conf
dest: wg0-1.conf
flat: yes
- name: récupération du fichier wg0-2.conf vers ap33-ans
fetch:
src: wg0-2.conf
dest: wg0-2.conf
flat: yes
- hosts: wg
become: yes
tasks:
- name: copie fichier wg0-1 vers les clients
copy:
src: wg0-1.conf
dest: /etc/wireguard/wg0.conf
when: ansible_hostname == "ap33-mon"
- name: copie fichier wg0-2 vers les clients
copy:
src: wg0-2.conf
dest: /etc/wireguard/wg0.conf
when: ansible_hostname == "ap33-prod"
- hosts: wg
become: yes
tasks:
- name: Activation de wireguard
service:
name: wg-quick@wg0.service
enabled: yes
- name: Redémarre le wireguard
service:
name: wg-quick@wg0.service
state: restarted

11
ansible/wireguard/hosts Normal file
View File

@ -0,0 +1,11 @@
[wg]
ap33-prod
ap33-test
ap33-mon
[wg_master]
ap33-mon
[wg_cli]
ap33-test
ap33-prod

View File

@ -0,0 +1,82 @@
#!/bin/bash
set -u
set -e
AddressAwg=10.0.0.1/24 # Adresse VPN Wireguard extremite A
EndpointA=172.16.0.122 # Adresse extremite A
PortA=51820 # Port ecoute extremite A
AddressBwg=10.0.0.2/24 # Adresse VPN Wireguard extremite B
<<<<<<< HEAD:ansible/wireguard/mkwgconf.sh
EndpointB=172.16.0.120 # Adresse extremite B
=======
EndpointB=172.16.0.121 # Adresse extremite B
>>>>>>> d29ce732af0fce68c555df54563113473c3a0c5b:ansible/mkwgconf.sh
PortB=51820 # Port ecoute extremite B
AddressCwg=10.0.0.3/24 # Adresse VPN Wireguard extremite C
EndpointC=172.16.0.121 # Adresse extremite C
PortC=51820 # Port ecoute extremite C
umask 077 ;
wg genkey > endpoint-a.key
wg pubkey < endpoint-a.key > endpoint-a.pub
wg genkey > endpoint-b.key
wg pubkey < endpoint-b.key > endpoint-b.pub
wg genkey > endpoint-c.key
wg pubkey < endpoint-c.key > endpoint-c.pub
PKA=$(cat endpoint-a.key)
pKA=$(cat endpoint-a.pub)
PKB=$(cat endpoint-b.key)
pKB=$(cat endpoint-b.pub)
PKC=$(cat endpoint-c.key)
pKC=$(cat endpoint-c.pub)
cat <<FINI > wg0-1.conf
# local settings for Endpoint A
[Interface]
PrivateKey = $PKA
Address = $AddressAwg
ListenPort = $PortA
# remote settings for Endpoint B
[Peer]
PublicKey = $pKB
Endpoint = ${EndpointB}:$PortB
AllowedIPs = $AddressBwg
# remote settings for Endpoint C
[Peer]
PublicKey = $pKC
Endpoint = ${EndpointC}:$PortC
AllowedIPs = $AddressCwg
FINI
cat <<FINI > wg0-2.conf
# local settings for Endpoint B
[Interface]
PrivateKey = $PKB
Address = $AddressBwg
ListenPort = $PortB
# remote settings for Endpoint A
[Peer]
PublicKey = $pKA
Endpoint = ${EndpointA}:$PortA
AllowedIPs = $AddressAwg
FINI
cat <<FINI > wg0-3.conf
#local settings for Endpoint C
[Interface]
PrivateKey = $PKC
Address = $AddressCwg
ListenPort = $PortC
# remote settings for Endpoint A
[Peer]
PublicKey = $pKA
Endpoint = ${EndpointA}:$PortA
AllowedIPs = $AddressAwg
FINI

77
ansible/wireguard/wg.yml Normal file
View File

@ -0,0 +1,77 @@
---
- hosts: wg
become: yes
tasks:
- name: arrete unattended-upgrades
service:
name: unattended-upgrades
state: stopped
- name: installe Wireguard
apt:
name:
- wireguard
- wireguard-tools
state: present
- hosts: wg_master
tasks:
- name: copie le fichier wg0-1.conf, wg0-2.conf et wg0-3.conf vers les machines master et cli
copy:
src: mkwgconf.sh
dest: mkwgconf.sh
- name: generations fichier configuration wireguard wg0-1.conf etc
shell: bash mkwgconf.sh
- name: récupération du fichier wg0-1.conf vers ap33-ans
fetch:
src: wg0-1.conf
dest: wg0-1.conf
flat: yes
- name: récupération du fichier wg0-2.conf vers ap33-ans
fetch:
src: wg0-2.conf
dest: wg0-2.conf
flat: yes
- name: récupération du fichier wg0-3.conf vers ap33-ans
fetch:
src: wg0-3.conf
dest: wg0-3.conf
flat: yes
- hosts: wg
become: yes
tasks:
- name: copie fichier wg0-1 vers les clients
copy:
src: wg0-1.conf
dest: /etc/wireguard/wg0.conf
when: ansible_hostname == "ap33-mon"
- name: copie fichier wg0-2 vers les clients
copy:
src: wg0-2.conf
dest: /etc/wireguard/wg0.conf
when: ansible_hostname == "ap33-prod"
- name: copie fichier wg0-3.conf vers les clients
copy:
src: wg0-3.conf
dest: /etc/wireguard/wg0.conf
when: ansible_hostname == "ap33-test"
- hosts: wg
become: yes
tasks:
- name: Activation de wireguard
service:
name: wg-quick@wg0.service
enabled: yes
- name: Redémarre le wireguard
service:
name: wg-quick@wg0.service
state: restarted

View File

@ -0,0 +1,17 @@
# local settings for Endpoint A
[Interface]
PrivateKey = CNafmAzvjGGAFA5RsDCHtypTh9RGnAxpkxZCt9cBkXo=
Address = 10.0.0.1/24
ListenPort = 51820
# remote settings for Endpoint B
[Peer]
PublicKey = UMlB4+d/SYufqAGbuHDvGvkOhGKEihIgR+rhFzk3Aj0=
Endpoint = 172.16.0.120:51820
AllowedIPs = 10.0.0.2/24
# remote settings for Endpoint C
[Peer]
PublicKey = EWOjtZLwhNLDokDWJCONaBtqpGbr+x5tzNFeUI0hHEE=
Endpoint = 172.16.0.121:51820
AllowedIPs = 10.0.0.3/24

View File

@ -0,0 +1,11 @@
# local settings for Endpoint B
[Interface]
PrivateKey = SLBteS7RJPIZ0TlZ5b9D6xtHF/5VzuQGmqnzW0Kkb0g=
Address = 10.0.0.2/24
ListenPort = 51820
# remote settings for Endpoint A
[Peer]
PublicKey = Fqd4WMaBpI7DAK6p2BaNhaE9VYzMRmfLxaO9uOmWTys=
Endpoint = 172.16.0.122:51820
AllowedIPs = 10.0.0.1/24

View File

@ -0,0 +1,11 @@
#local settings for Endpoint C
[Interface]
PrivateKey = wBu8AaHa061bI+6Eb+FmghV3iGKdp0a2Kq6At8UNzHo=
Address = 10.0.0.3/24
ListenPort = 51820
# remote settings for Endpoint A
[Peer]
PublicKey = Fqd4WMaBpI7DAK6p2BaNhaE9VYzMRmfLxaO9uOmWTys=
Endpoint = 172.16.0.122:51820
AllowedIPs = 10.0.0.1/24