Compare commits
29 Commits
v0.0.1b-jp
...
main
Author | SHA1 | Date | |
---|---|---|---|
b81cbb8021 | |||
065f454f6f | |||
|
d29ce732af | ||
77c6e532b3 | |||
ea95044a7d | |||
|
3cc5c7a773 | ||
|
149e630c47 | ||
2f4941c25e | |||
d6e080d014 | |||
006a4c5f4f | |||
288ec07a5e | |||
cd2f872f1f | |||
8a44865367 | |||
|
47472f2d25 | ||
|
ffc05b69bc | ||
|
357b806b3b | ||
54beaecc8e | |||
|
33d5738c82 | ||
|
a5b306b461 | ||
|
4605916258 | ||
|
24c56d6254 | ||
|
6da461d49e | ||
|
c27719e062 | ||
|
1a8bf81629 | ||
|
72e34d5d3c | ||
|
158aab3699 | ||
|
9caee94dfa | ||
|
d008bbfeb8 | ||
|
83984f415b |
195
README.md
195
README.md
@ -1,31 +1,204 @@
|
||||
# Projet SDIS29 - 2025 - Groupe 3
|
||||
**Lastest Update** Version v0.0.5c-rr : le 14/11/24 à 10h40 par Rotsy Rahaingo
|
||||
|
||||
Voici un plan d'installation du projet ap3 :
|
||||
**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
|
||||
|
||||
**Oldest Update** Version v0.0.3d-jp : le 08/11/2024 à 09h00 par Jarod PAUCHET
|
||||
|
||||
**Oldest Update** Version v0.0.3c-jp : le 07/11/2024 à 18h00 par Rotsy Rahaingo
|
||||
|
||||
**Oldest Update** Version v0.0.2a-jp : le 07/11/2024 à 15h40 par Jarod PAUCHET
|
||||
|
||||
**Oldest Update** Version v0.0.1h-jp : le 07/11/2024 à 14h40 par Jarod PAUCHET
|
||||
|
||||
**Oldest Update** Version v0.0.1e-jp : le 07/11/2024 à 11h45 par Jarod PAUCHET
|
||||
|
||||
**Oldest Update** Version v0.0.1c-jp : le 07/11/2024 à 11h30 par Jarod PAUCHET
|
||||
|
||||
**Oldest Update** Version v0.0.1a-jp : le 07/11/2024 à 10h45 par Jarod PAUCHET
|
||||
|
||||
## Etape 1 - Installation des machines virtuelles KVM :
|
||||
|
||||
Clonage intégrale de la machine debian-12.7-templete
|
||||
--> Nommage de trois machine,
|
||||
* **ap33-prod** (id = 6120), IP : 172.16.0.120/24 ; gateway : 172.16.0.254
|
||||
* **ap33-test** (id = 6121), IP : 172.16.0.121/24 ; gateway : 172.16.0.254
|
||||
* **ap33-mon** (id = 6122), IP : 172.16.0.122/24 ; gateway : 172.16.0.254
|
||||
### Paramètres communs
|
||||
* Memoire : 1 Go
|
||||
* Disque : 10 Go
|
||||
|
||||
Implémentation des clés SSH publique avec **cloud-int**
|
||||
Clonage intégral de la machine **Debian-12.7-template**
|
||||
--> Nommage de trois machine,
|
||||
* **ap33-prod** (id = 2620), IP : 172.16.0.120/24 ; gateway : 172.16.0.254
|
||||
* **ap33-test** (id = 2621), IP : 172.16.0.121/24 ; gateway : 172.16.0.254
|
||||
* **ap33-mon** (id = 2622), IP : 172.16.0.122/24 ; gateway : 172.16.0.254
|
||||
|
||||
Implémentation des clés SSH publique avec **cloud-int** :
|
||||
|
||||
Effectuer les commandes suivantes afin de copier votre clé :
|
||||
* ssh-keygen
|
||||
* cat .ssh/id_rsa.pub
|
||||
|
||||
Copier la clé dans **cloud-init**, onglet Clef SSH Publique, en cas de clé supplémentaire, les mettres à la ligne
|
||||
|
||||
Régénérer l'image avant de lancer la machine puis accèder aux machines par SSH avec la commande suivante : ssh debian@ap33-xxxx
|
||||
|
||||
## Etape 2 : Configuration de base des machines
|
||||
|
||||
Sur les trois machines faire les commandes suivantes :
|
||||
|
||||
````
|
||||
sudo su -
|
||||
cd /etc/apt
|
||||
wget depl/sio/api/apt.conf
|
||||
timedatectl set-timezone Europe/Paris
|
||||
apt update && apt upgrade
|
||||
timedatectl set-timezone Europe/Paris # Mise à jour de la date
|
||||
apt update && apt upgrade # Mise à jour de la machine
|
||||
apt install qemu-guest-agent
|
||||
````
|
||||
## Etape 3 : Configuration des services des machines
|
||||
````
|
||||
|
||||
### **Serveur ap33-prod**
|
||||
|
||||
ap33-prod servira comme base de données **MariaDB**. Ce serveur sera également utilisé pour le développement et le déploiement d'applications via **Tomcat10**.
|
||||
|
||||
````
|
||||
sudo su -
|
||||
apt install tomcat10 mariadb-server # Installation des paquets
|
||||
export http_proxy="http://10.121.38.1:8080/" # Exportation des ports
|
||||
export https_proxy="http://10.121.38.1:8080/" # Exportation des ports
|
||||
curl -L https://github.com/goss-org/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss # Installation de la dernière version de Goss vers /usr/local/bin/goss
|
||||
chmod +rx /usr/local/bin/goss # Donner les droits de lecture et d'execution sur le dossier Goss
|
||||
goss autoadd mariadb-server
|
||||
goss autoadd tomcat10
|
||||
goss add service mysql
|
||||
goss add interface eth0
|
||||
goss add http http://ap33-prod:8080
|
||||
````
|
||||
|
||||
Dernière Mise à jours : le 07/11/2024 à 10h35 par Jarod PAUCHET
|
||||
### **Serveur ap33-test**
|
||||
|
||||
**ap33-test** servira comme base de données **MariaDB** et hébergera l'application web de gestion de bases de données **PhpMyAdmin**. Ce serveur sera également utilisé pour le développement et le déploiement d'applications via **Tomcat10**.
|
||||
|
||||
````
|
||||
sudo su -
|
||||
apt install tomcat10 mariadb-server phpmyadmin # Installation des paquets
|
||||
export http_proxy="http://10.121.38.1:8080/" # Exportation des ports
|
||||
export https_proxy="http://10.121.38.1:8080/" # Exportation des ports
|
||||
curl -L https://github.com/goss-org/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss # Installation de la dernière version de Goss vers /usr/local/bin/goss
|
||||
chmod +rx /usr/local/bin/goss # Donner les droits de lecture et d'execution sur le dossier Goss
|
||||
goss autoadd mariadb-server
|
||||
goss autoadd tomcat10
|
||||
goss autoadd phpmyadmin
|
||||
goss add service mysql
|
||||
goss add interface eth0
|
||||
goss add http http://ap33-test:8080
|
||||
````
|
||||
|
||||
Afin d'importer la base de données, il suffit d'effectuer les commandes suivantes :
|
||||
|
||||
**Important** : Une copie du .sql vers le serveur ap33-test est nécessaire avant l'utilisation des commandes ci-dessous !
|
||||
|
||||
````
|
||||
mysql -u root -p
|
||||
create user admin@localhost identified by 'password123*';
|
||||
GRANT ALL PRIVILEGES ON sdis29.* TO 'admin'@'localhost';
|
||||
flush privileges;
|
||||
source /home/debian/sdis29.sql
|
||||
exit;
|
||||
````
|
||||
|
||||
## Etape 4 : Supervision des serveurs ap33-prod et ap33-test
|
||||
|
||||
### **Serveur ap33-mon**
|
||||
Voici le script d'installation de zabbix (à exécuter une seule fois)
|
||||
|
||||
````
|
||||
timedatectl set-timezone Europe/Paris
|
||||
apt-get update
|
||||
apt-get install -y wget curl vim
|
||||
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabb> # recuperer le fichier d'installation de zabbix
|
||||
dpkg -i zabbix-release_7.0-2+debian12_all.deb # depaquetage du ficheir
|
||||
apt-get update
|
||||
apt-get install -y apache2 mariadb-server
|
||||
apt-get install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf>
|
||||
echo 'create database zabbix character set utf8mb4 collate utf8mb4_bin;' | mys> # creation de la base de donnees
|
||||
echo "create user zabbix@localhost identified by 'password';" | mysql -u root # creation d'un utilisateur
|
||||
echo 'grant all privileges on zabbix.* to zabbix@localhost;' | mysql -u root # donner a cet utilisateur tous les droits
|
||||
echo 'set global log_bin_trust_function_creators = 1;' | mysql -u root
|
||||
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-chara>
|
||||
echo 'set global log_bin_trust_function_creators = 0;' | mysql -u root
|
||||
sed -i 's/# DBPassword=/DBPassword=password/' /etc/zabbix/zabbix_server.conf
|
||||
systemctl restart zabbix-server zabbix-agent apache2
|
||||
systemctl enable zabbix-server zabbix-agent apache2
|
||||
localectl set-locale LANG=en_US.UTF-8
|
||||
systemctl restart zabbix-server zabbix-agent apache2
|
||||
````
|
||||
|
||||
Pour renseigner les agents depuis la machine zabbix, on doit pouvoir accéder a i'interface web avec l'url ```` http://172.16.0.122/zabbix ````
|
||||
On sera ensuite invité à faire l'installation et quand l'installation sera finie, la page d'authentification de zabbix sera affichée à l'écran. Par défaut, l'utilisateur est "Admin" et le mot de passe est "zabbix"
|
||||
Il faudra ensuite aller dans "Monitoring dans l'onglet de gauche ensuite "Host" et dans la partie supérieure à droite, cliquer sur le bouton "Create host". Comme template, on choisira "Linux by zabbix agent et puis create
|
||||
On fera les mêmes étapes pour les machines ap33-prod et ap33-test
|
||||
|
||||
### **Serveur ap33-prod**
|
||||
Voici le script qui servira à installer zabbix-agent sur la machine a superviser :
|
||||
````
|
||||
export http_proxy=http://10.121.38.1:8080
|
||||
export https_proxy=http://10.121.38.1:8080
|
||||
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabb>
|
||||
dpkg -i zabbix-release_7.0-2+debian12_all.deb
|
||||
apt-get update
|
||||
apt install -y zabbix-agent2
|
||||
echo "Server=172.16.0.122" >> /etc/zabbix/zabbix_agent2.conf # renseigne le serveur de supervision pour que l'agent puisse communiquer
|
||||
echo "ServerActive=172.16.0.122" >> /etc/zabbix/zabbix_agent2.conf
|
||||
echo "Hostname=ap33-prod" >> /etc/zabbix/zabbix_agent2.conf
|
||||
systemctl restart zabbix-agent2
|
||||
````
|
||||
|
||||
## **Etape 5 : Mise en place d'une infrastructure de gestion centralisée des logs**
|
||||
|
||||
AP33-mon est un serveur qui à comme but la gestion centralisée des journaux systèmes, via **journald**. Ce serveur recueille les logs provenant de ap33-test et ap33-prod et gwsio5 (switch).
|
||||
|
||||
**Important** : Un export des proxy est nécessaire afin de faire fonctionner les curls
|
||||
|
||||
````
|
||||
export http_proxy=http://10.121.38.1:8080
|
||||
export http_proxy=https://10.121.38.1:8080
|
||||
````
|
||||
|
||||
Le script ci-dessous permet l'installation de **journal-remote** sur le serveur recepteur (ap33-mon), et permet l'activation permanente de ce service
|
||||
|
||||
````
|
||||
#!/bin/bash
|
||||
sudo timedatectl set-timezone Europe/Paris
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y systemd-journal-remote
|
||||
sudo systemctl enable --now systemd-journal-remote.socket
|
||||
sudo cp /lib/systemd/system/systemd-journal-remote.service /etc/systemd/system
|
||||
sudo sed -i 's/--listen-https=-3/--listen-http=-3/' /etc/systemd/system/systemd>
|
||||
[[ -d /var/log/journal/remote ]] || sudo mkdir /var/log/journal/remote
|
||||
sudo chown systemd-journal-remote /var/log/journal/remote
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart systemd-journal-remote.service
|
||||
ss -lnt
|
||||
````
|
||||
|
||||
Le script ci-dessous permet l'installation et la configuration de **journal-remote** sur le serveur émetteur (ap33-prod et ap33-test) et d'envoyer ses logs vers la machine ap33-mon en précisant son adresse lors de l'utilisation du script
|
||||
|
||||
````
|
||||
#!/bin/bash
|
||||
# usage : ./journald-snd.sh 172.16.0.122
|
||||
sudo timedatectl set-timezone Europe/Paris
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y systemd-journal-remote
|
||||
rpl="s/^# URL=/URL=http:\/\/${1}:19532/" # $1 represente l'adresse du recepteur
|
||||
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
28
ansible/README.md
Normal 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````
|
28
ansible/apbase.yml
Normal file
28
ansible/apbase.yml
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
- hosts: all
|
||||
become: yes
|
||||
tasks:
|
||||
- name: changement de la timezone
|
||||
timezone:
|
||||
name: Europe/Paris
|
||||
|
||||
|
||||
- name: configure le fichier apt.conf pour le proxy
|
||||
copy:
|
||||
content: |
|
||||
Acquire::http::Proxy "http://10.121.38.1:8080";
|
||||
Acquire::https::Proxy "http://10.121.38.1:8080";
|
||||
dest: /etc/apt/apt.conf
|
||||
|
||||
- name: installation des paquets de tomcat10, ant et mariadb-server
|
||||
apt:
|
||||
name:
|
||||
- tomcat10
|
||||
- ant
|
||||
- mariadb-server
|
||||
state: present
|
||||
|
||||
- name: installation de qemu-guest-agent
|
||||
apt:
|
||||
name: qemu-guest-agent
|
||||
state: present
|
34
ansible/apdb.yml
Normal file
34
ansible/apdb.yml
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
- hosts: all
|
||||
become: yes
|
||||
tasks:
|
||||
- name: installation de python3
|
||||
apt:
|
||||
name: python3-pymysql
|
||||
|
||||
- name: creation de la base de donnees "sdis29"
|
||||
community.mysql.mysql_db:
|
||||
name: sdis29
|
||||
state: present
|
||||
login_unix_socket: /run/mysqld/mysqld.sock
|
||||
|
||||
- name: Creation d'un utilisateur avec tous les privileges
|
||||
community.mysql.mysql_user:
|
||||
name: admin
|
||||
password: password123*
|
||||
priv: '*.*:ALL'
|
||||
state: present
|
||||
login_unix_socket: /run/mysqld/mysqld.sock
|
||||
|
||||
- name: copie du dump mysql sur la machine pt
|
||||
copy:
|
||||
src: sdis29.sql
|
||||
dest: /tmp
|
||||
|
||||
- name: Import du fichier sdis29.sql sur la base de données sdis29
|
||||
community.mysql.mysql_db:
|
||||
name: sdis29
|
||||
state: import
|
||||
target: /tmp/sdis29.sql
|
||||
force: true
|
||||
login_unix_socket: /run/mysqld/mysqld.sock
|
18
ansible/apdbdump.yml
Normal file
18
ansible/apdbdump.yml
Normal 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
65
ansible/wg.yml
Normal 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
11
ansible/wireguard/hosts
Normal file
@ -0,0 +1,11 @@
|
||||
[wg]
|
||||
ap33-prod
|
||||
ap33-test
|
||||
ap33-mon
|
||||
|
||||
[wg_master]
|
||||
ap33-mon
|
||||
|
||||
[wg_cli]
|
||||
ap33-test
|
||||
ap33-prod
|
82
ansible/wireguard/mkwgconf.sh
Normal file
82
ansible/wireguard/mkwgconf.sh
Normal 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
77
ansible/wireguard/wg.yml
Normal 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
|
17
ansible/wireguard/wg0-1.conf
Normal file
17
ansible/wireguard/wg0-1.conf
Normal 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
|
11
ansible/wireguard/wg0-2.conf
Normal file
11
ansible/wireguard/wg0-2.conf
Normal 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
|
11
ansible/wireguard/wg0-3.conf
Normal file
11
ansible/wireguard/wg0-3.conf
Normal 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
|
Loading…
x
Reference in New Issue
Block a user