Compare commits
18 Commits
v.0.0.1d-j
...
main
Author | SHA1 | Date | |
---|---|---|---|
4d5c46b1fe | |||
a70ca1eb09 | |||
|
2d660628cc | ||
0a11176b26 | |||
|
6c487604d1 | ||
|
0f39e57f84 | ||
|
8d36c6ce87 | ||
|
761184054f | ||
|
5a11bfbd7d | ||
|
17133b5ba9 | ||
|
951ac2f4d7 | ||
|
605f581cfc | ||
|
c9a8886390 | ||
|
df0710ed22 | ||
|
c8e1b99de1 | ||
|
20d84138d2 | ||
|
f411491675 | ||
|
cbb8537b40 |
141
README.md
141
README.md
@ -1,11 +1,142 @@
|
||||
# sdis29-1
|
||||
## Dépôt Git des programmes sources - SDIS 29.
|
||||
|
||||
Dépôt Git des programmes sources - SDIS 29.
|
||||
Version: v.0.0.2e-ge
|
||||
|
||||
## Création initiale des serveurs
|
||||
Plage d'adresses: 172.16.0.100/24-172.16.0.105/24
|
||||
|
||||
- Création des serveurs **ap31-prod** et **ap31-test** via un clone intégral d'une template sur pxlab1.
|
||||
### Création initiale des serveurs :
|
||||
|
||||
- Disques redimensionnés de 2Go a 10Go.
|
||||
* Création des serveurs **ap31-prod** et **ap31-test** via un clone intégral d'une template sur pxlab1.
|
||||
* Disques redimensionnés de 2Go a 10Go.
|
||||
* Définition des IPs et ajout des clés SSH dans les machines.
|
||||
* Création du serveur **ap31-mon** via un clone intégral d'une template.
|
||||
* Définition de l'IP et ajout des clés SSH.
|
||||
* Disque redimensionné de 2G à 10Go.
|
||||
* Doublement de la RAM sur **ap31-mon**. (1024Mo --> 2048Mo)
|
||||
* Machines définies sur la *timezone* Europe/Paris (UTC +1)
|
||||
* Serveurs **ap31-ans** et **ap31-pt** créés pour les *playbooks* Ansible.
|
||||
|
||||
- Définition des IPs et ajout des clé SSH dans les machines.
|
||||
### Installation des paquets :
|
||||
|
||||
* Ajout du fichier `/etc/apt/apt.conf` récupéré depuis depl, pour pouvoir passer à travers le proxy.
|
||||
* Commande `apt update` effectuée sur chaque machine.
|
||||
* **ap31-prod** : mariadb-server, tomcat10, zabbix-agent2, qemu-guest-agent, wget, goss
|
||||
* **ap31-test** : mariadb-server, tomcat10, phpmyadmin, zabbix-agent2, qemu-guest-agent, wget, goss, git
|
||||
* **ap31-mon** : apache2, mariadb-server, zabbix-server-mysql, zabbix-frontend-php, zabbix-apache-conf, zabbix-sql-scripts, zabbix-agent, journald-remote
|
||||
* Ajout de goss sur **ap31-test** et **ap31-prod**, et création de fichiers de test fonctionnels pour les deux machines.
|
||||
|
||||
### Résultats des tests Goss :
|
||||
|
||||
````
|
||||
debian@ap31-test:~$ goss v
|
||||
.....................................
|
||||
|
||||
Total Duration: 0.115s
|
||||
Count: 37, Failed: 0, Skipped: 0
|
||||
````
|
||||
````
|
||||
debian@ap31-prod:~$ goss v
|
||||
......................................
|
||||
|
||||
Total Duration: 0.244s
|
||||
Count: 38, Failed: 0, Skipped: 0
|
||||
````
|
||||
|
||||
### Configuration de Zabbix :
|
||||
|
||||
* Pour **ap31-mon**, installation de Zabbix avec un script, et configuration initiale de Zabbix via l'interface web.
|
||||
* Pour **ap31-prod** et **ap31-test**, modification des fichiers `/etc/zabbix/zabbix_agent2.conf` pour ajouter l'IP du serveur Zabbix et le *hostname* avec un script.
|
||||
* Une fois fait, ajout de **ap31-prod** et **ap31-test** dans Zabbix sur le *template* `Linux by Zabbix agent`.
|
||||
* Une fois les serveurs ajoutés avec une interface de détection de type `agent` sur l'IP de la machine correspondante, détection sur Zabbix et la supervision est complétée.
|
||||
* Ajout de la passerelle **gwsio3** avec une *template* `ICMP Ping` sur une interface SNMP avec l'IP de la passerelle, et supervision des temps de réponse et du status possible.
|
||||
|
||||
### Centralisation de la gestion des logs :
|
||||
|
||||
* Installation du paquet `systemd-journal-remote` sur chaque serveur.
|
||||
* **ap31-mon** : utilisation d'un script `journald-rcv.sh` configuré du côté récepteur.
|
||||
* **ap31-test, ap31-prod** : utilisation d'un script `journald-snd.sh` configuré du côté émetteur.
|
||||
|
||||
### Importation de la base de données :
|
||||
|
||||
* Création d'un utilisateur `reseau` pour modifier la BDD sans utiliser le compte root si nécessaire.
|
||||
* Import du fichier `sdis29.sql` sur MariaDB sur la machine **ap31-test**.
|
||||
* Une fois fait, base de données disponible sur la machine et visible sur phpmyadmin une fois les privilèges requis donnés au compte.
|
||||
|
||||
### Preuve de la présence de la base de données :
|
||||
|
||||
* Sur **ap31-test** :
|
||||
````
|
||||
MariaDB [(none)]> SHOW DATABASES;
|
||||
+--------------------+
|
||||
| Database |
|
||||
+--------------------+
|
||||
| information_schema |
|
||||
| sdis29 |
|
||||
+--------------------+
|
||||
````
|
||||
|
||||
### Création de playbooks Ansible pour **ap31-prod** et **ap31-test** :
|
||||
|
||||
* Création du *playbook* `apbase.yml` qui prépare les machines **ap31-prod** et **ap31-test** en installant les paquets nécessaires, en configurant le proxy pour *APT*, et en définissant la *timezone*.
|
||||
* Création du *playbook* `apdb.yml` qui installe les dépendances utilisées dans le *playbook*, puis se charge de créer et d'importer la BDD, crééant un utilisateur, et qui peut être exécuté plusieurs fois sans soucis.
|
||||
* Exécution des deux *playbooks* et résultats corrects, sans erreurs. Les *playbooks* `apbase.yml` et `apdb.yml` sont terminés.
|
||||
* Création du *playbook* `apdbdump.yml` qui récupère le dump de la BDD une fois celui-ci créé.
|
||||
* Exécution du *playbook* et résultats corrects, sans erreurs. Le *playbook* est terminé.
|
||||
* **NOTE**: Ces playbooks ont étés testés sur la machine **ap31-pt** auparavant, et la machine **ap31-ans** était le controlleur Ansible.
|
||||
|
||||
### Établissement d'un tunnel VPN entre les machines **ap31-mon**, **ap31-prod** et **ap31-test** :
|
||||
|
||||
* Création d'un *playbook* `wg.yml` qui se charge d'installer Wireguard et ses outils sur les trois machines, puis qui exécute un script modifié pour générer les clés et les fichiers de configuration, avant de les mettre au bon endroit.
|
||||
* Une fois cela fait, et le tunnel fonctionnel, la centralisation des logs peut se faire via le tunnel Wireguard en modifiant le fichier de configuration dans `/etc/systemd/journal-upload.conf`. Les IPs des fichiers de configuration sont donc modifiées pour fonctionner.
|
||||
|
||||
* Fichier de configuration finalisé:
|
||||
````
|
||||
[Upload]
|
||||
URL=http://10.0.0.1:19532
|
||||
````
|
||||
|
||||
* Pour plus de détails, se rendre dans le dossier `ansible`, puis le répertoire `wireguard`.
|
||||
|
||||
### Preuve de fonctionnement du VPN :
|
||||
|
||||
* **ap31-mon** :
|
||||
````
|
||||
debian@ap31-mon:~$ sudo wg
|
||||
interface: wg0
|
||||
public key: LEkM9UVt21zq7PS8sX+SBihuXr5k9bjAbwSN0dChmAk=
|
||||
private key: (hidden)
|
||||
listening port: 51820
|
||||
|
||||
peer: mnWYL52q8bzvvary6s81ROHV1hohu3nlQN0YQkTZTzg=
|
||||
endpoint: 172.16.0.100:51820
|
||||
allowed ips: 10.0.0.2/32
|
||||
latest handshake: 1 minute, 22 seconds ago
|
||||
transfer: 1.14 MiB received, 83.45 KiB sent
|
||||
|
||||
peer: Amfx3tgY9WyjhVH8gQJWZpbQVNYwpIt3OFZokMqq43M=
|
||||
endpoint: 172.16.0.101:51820
|
||||
allowed ips: 10.0.0.3/32
|
||||
latest handshake: 12 minutes, 33 seconds ago
|
||||
transfer: 1003.38 KiB received, 92.08 KiB sent
|
||||
````
|
||||
* **ap31-prod** :
|
||||
````
|
||||
debian@ap31-prod:~$ sudo wg
|
||||
interface: wg0
|
||||
public key: mnWYL52q8bzvvary6s81ROHV1hohu3nlQN0YQkTZTzg=
|
||||
private key: (hidden)
|
||||
listening port: 51820
|
||||
|
||||
peer: LEkM9UVt21zq7PS8sX+SBihuXr5k9bjAbwSN0dChmAk=
|
||||
endpoint: 172.16.0.102:51820
|
||||
allowed ips: 10.0.0.1/32
|
||||
latest handshake: 1 minute, 8 seconds ago
|
||||
transfer: 39.30 KiB received, 250.64 KiB sent
|
||||
````
|
||||
|
||||
### Preuve de fonctionnement du VPN pour les logs :
|
||||
|
||||
* Si on lance une commande `logger` avec un message lorsque le service Wireguard est fonctionnel, celui-ci apparaît sur **ap31-mon** : `Nov 15 08:20:06 ap31-prod debian[597]: test vpn`
|
||||
* Cependant, lorsqu'on coupe le service sur **ap31-prod** et qu'on essaie de réutiliser `logger`, rien n'arrive sur **ap31-mon**. Plus rien n'apparaît.
|
||||
* Une fois que le service Wireguard est relancé sur **ap31-prod**, les messages précédents qui n'étaient pas apparus reviennent tous d'un coup. Les logs passent donc bien par le tunnel VPN.
|
||||
|
16
ansible/README.md
Normal file
16
ansible/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# Ansible
|
||||
Dans ce répertoire se situent les *playbooks* Ansible.
|
||||
|
||||
## Dossier Wireguard :
|
||||
Dans le dossier se trouvent le *playbook* ainsi que les fichiers de configuration.
|
||||
|
||||
## Playbook de déploiement des **ap31-prod** et **ap31-test** :
|
||||
|
||||
### apbase.yml :
|
||||
Ce *playbook* se charge de mettre à jour les paquets, configurer APT pour passer par le proxy, définit une *timezone* correcte, et se charge d'installer les paquets sur les deux machines.
|
||||
|
||||
### apdb.yml :
|
||||
Ce *playbook* se charge d'installer un module crucial sur la machine **ap31-test**, puis créé une base de données vide, un utilisateur avec l'accès total sur la BDD, puis importe le fichier .sql de base pour rendre la BDD utilisable.
|
||||
|
||||
### apdbdump.yml :
|
||||
Ce *playbook* se charge de créer un dump de la BDD avant de l'envoyer sur la machine qui exécute le *playbook* Ansible.
|
34
ansible/apbase.yml
Normal file
34
ansible/apbase.yml
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
#- name: Install prod/test
|
||||
- hosts: all
|
||||
become: true
|
||||
|
||||
tasks:
|
||||
- name: Parametrage Timezone Europe/Paris
|
||||
community.general.timezone:
|
||||
name: Europe/Paris
|
||||
|
||||
- name: Copie apt.conf
|
||||
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: Update and upgrade apt packages
|
||||
apt:
|
||||
upgrade: yes
|
||||
update_cache: yes
|
||||
cache_valid_time: 86400 #One day
|
||||
|
||||
|
||||
- name: Installation paquets
|
||||
apt:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
with_items:
|
||||
- tomcat10
|
||||
- mariadb-server
|
||||
- ant
|
||||
- qemu-guest-agent
|
||||
|
47
ansible/apdb.yml
Normal file
47
ansible/apdb.yml
Normal file
@ -0,0 +1,47 @@
|
||||
# apdb.yml
|
||||
---
|
||||
- hosts: all
|
||||
become: true
|
||||
tasks:
|
||||
- name: 1. Installe une des dépendances d'une extension Ansible.
|
||||
apt:
|
||||
name: python3-pymysql
|
||||
state: present
|
||||
|
||||
- name: 2. Créé la base de données vide.
|
||||
community.mysql.mysql_db:
|
||||
check_implicit_admin: true
|
||||
name: sdis29
|
||||
state: present
|
||||
login_unix_socket: /run/mysqld/mysqld.sock
|
||||
|
||||
- name: 3. Créé l'utilisateur pour la BDD.
|
||||
community.mysql.mysql_user:
|
||||
name: reseau
|
||||
password: Ilona21?
|
||||
priv: 'sdis29.*:ALL,GRANT'
|
||||
state: present
|
||||
login_unix_socket: /run/mysqld/mysqld.sock
|
||||
|
||||
- name: 4. Vérifie si un répertoire db existe.
|
||||
stat:
|
||||
path: /home/debian/db
|
||||
register: rept_stat
|
||||
|
||||
- name: 5. Créé le répertoire db pour le fichier sql.
|
||||
command: mkdir /home/debian/db
|
||||
when: rept_stat.stat.exists == false
|
||||
|
||||
- name: 6. Copie le fichier d'import de la base de données
|
||||
template:
|
||||
src: db/sdis29.sql
|
||||
dest: /home/debian/db/sdis29.sql
|
||||
|
||||
- name: 7. Import de la base de données.
|
||||
run_once: true
|
||||
community.mysql.mysql_db:
|
||||
state: import
|
||||
name: all
|
||||
encoding: utf8
|
||||
target: db/sdis29.sql
|
||||
login_unix_socket: /run/mysqld/mysqld.sock
|
17
ansible/apdbdump.yml
Normal file
17
ansible/apdbdump.yml
Normal file
@ -0,0 +1,17 @@
|
||||
# apbddump.yml
|
||||
---
|
||||
- hosts: all
|
||||
become: true
|
||||
tasks:
|
||||
- name: 1. Exécute le dump de la BDD.
|
||||
community.mysql.mysql_db:
|
||||
check_implicit_admin: true
|
||||
state: dump
|
||||
name: sdis29
|
||||
target: /home/debian/db/sdis29-backup.sql.gz
|
||||
login_unix_socket: /run/mysqld/mysqld.sock
|
||||
|
||||
- name: 2. Envoie le dump sur la machine Ansible.
|
||||
ansible.builtin.fetch:
|
||||
src: /home/debian/db/sdis29-backup.sql.gz
|
||||
dest: /home/debian/
|
2
ansible/hosts
Normal file
2
ansible/hosts
Normal file
@ -0,0 +1,2 @@
|
||||
[pt]
|
||||
ap31-pt
|
7
ansible/wireguard/README.md
Normal file
7
ansible/wireguard/README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# Ansible pour Wireguard
|
||||
|
||||
## Description du playbook :
|
||||
|
||||
Ce *playbook* se charge d'installer les outils Wireguard et le paquet Wireguard sur chacune des machines, avant de copier le script pour générer les fichiers de configuration sur la machine **ap31-mon**, puis exécute le script, avant de récupérer chacun des trois fichiers de configuration pour les copier sur **ap31-ans**.
|
||||
|
||||
Ensuite, le *playbook* se charge de copier les fichiers de configuration à chaque machine de manière individuelle sans possibilité d'erreur, avant d'activer le service Wireguard au démarrage, et de le relancer.
|
6
ansible/wireguard/hosts
Normal file
6
ansible/wireguard/hosts
Normal file
@ -0,0 +1,6 @@
|
||||
[wg]
|
||||
ap31-prod
|
||||
ap31-test
|
||||
ap31-mon
|
||||
[wg_srv]
|
||||
ap31-mon
|
80
ansible/wireguard/mkwgconf-p2p.sh
Normal file
80
ansible/wireguard/mkwgconf-p2p.sh
Normal file
@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
set -u
|
||||
set -e
|
||||
|
||||
AddressAwg=10.0.0.1/32 # Adresse VPN Wireguard MON
|
||||
EndpointA=172.16.0.102 # Adresse extremite MON
|
||||
PortA=51820 # Port ecoute extremite MON
|
||||
AddressBwg=10.0.0.2/32 # Adresse VPN Wireguard PROD
|
||||
EndpointB=172.16.0.100 # Adresse extremite PROD
|
||||
PortB=51820 # Port ecoute extremite PROD
|
||||
AddressCwg=10.0.0.3/32 # Adresse VPN Wireguard TEST
|
||||
EndpointC=172.16.0.101 # Adresse extremite TEST
|
||||
PortC=51820 # Port ecoute extremite TEST
|
||||
|
||||
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-mon.conf
|
||||
# local settings for ap31-mon
|
||||
[Interface]
|
||||
PrivateKey = $PKA
|
||||
Address = $AddressAwg
|
||||
ListenPort = $PortA
|
||||
|
||||
# remote settings for ap31-prod
|
||||
[Peer]
|
||||
PublicKey = $pKB
|
||||
Endpoint = ${EndpointB}:$PortB
|
||||
AllowedIPs = $AddressBwg
|
||||
|
||||
# remote settings for ap31-test
|
||||
[Peer]
|
||||
PublicKey= $pKC
|
||||
Endpoint = ${EndpointC}:$PortC
|
||||
AllowedIPs = $AddressCwg
|
||||
FINI
|
||||
|
||||
|
||||
cat <<FINI > wg0-prod.conf
|
||||
# local settings for ap31-prod
|
||||
[Interface]
|
||||
PrivateKey = $PKB
|
||||
Address = $AddressBwg
|
||||
ListenPort = $PortB
|
||||
|
||||
# remote settings for ap31-mon
|
||||
[Peer]
|
||||
PublicKey = $pKA
|
||||
Endpoint = ${EndpointA}:$PortA
|
||||
AllowedIPs = $AddressAwg
|
||||
FINI
|
||||
|
||||
|
||||
cat <<FINI > wg0-test.conf
|
||||
# local settings for ap31-test
|
||||
[Interface]
|
||||
PrivateKey = $PKC
|
||||
Address = $AddressCwg
|
||||
ListenPort = $PortC
|
||||
|
||||
# remote settings for ap31-mon
|
||||
[Peer]
|
||||
PublicKey = $pKA
|
||||
Endpoint = ${EndpointA}:$PortA
|
||||
AllowedIPs = $AddressAwg
|
||||
FINI
|
74
ansible/wireguard/wg.yml
Normal file
74
ansible/wireguard/wg.yml
Normal file
@ -0,0 +1,74 @@
|
||||
# wg.yml
|
||||
---
|
||||
- hosts: wg
|
||||
become: true
|
||||
tasks:
|
||||
- name: 1. Installe le paquet Wireguard.
|
||||
apt:
|
||||
name: wireguard
|
||||
state: present
|
||||
|
||||
- name: 2. Installe les outils Wireguard.
|
||||
apt:
|
||||
name: wireguard-tools
|
||||
state: present
|
||||
|
||||
- hosts: wg_srv
|
||||
become: true
|
||||
tasks:
|
||||
- name: 3. Envoie le script Wireguard.
|
||||
copy:
|
||||
src: mkwgconf-p2p.sh
|
||||
dest: mkwgconf-p2p.sh
|
||||
|
||||
- name: 4. Exécute le script Wireguard.
|
||||
command: bash mkwgconf-p2p.sh
|
||||
|
||||
- name: 5. Copie le fichier de configuration Wireguard C sur cette machine.
|
||||
ansible.builtin.fetch:
|
||||
src: wg0-mon.conf
|
||||
dest: wg0-mon.conf
|
||||
flat: yes
|
||||
|
||||
- name: 6. Récupère le fichier de conf A.
|
||||
ansible.builtin.fetch:
|
||||
src: wg0-prod.conf
|
||||
dest: wg0-prod.conf
|
||||
flat: yes
|
||||
|
||||
- name: 7. Récupère le fichier de conf B.
|
||||
ansible.builtin.fetch:
|
||||
src: wg0-test.conf
|
||||
dest: wg0-test.conf
|
||||
flat: yes
|
||||
|
||||
- hosts: wg
|
||||
become: true
|
||||
tasks:
|
||||
- name: 8. Envoie le fichier de conf A vers la machine prod.
|
||||
copy:
|
||||
src: wg0-prod.conf
|
||||
dest: /etc/wireguard/wg0.conf
|
||||
when: ansible_hostname == "ap31-prod"
|
||||
|
||||
- name: 9. Envoie le fichier de conf B vers la machine test.
|
||||
copy:
|
||||
src: wg0-test.conf
|
||||
dest: /etc/wireguard/wg0.conf
|
||||
when: ansible_hostname == "ap31-test"
|
||||
|
||||
- name: 10. Envoie le fichier de conf C vers la machine mon.
|
||||
copy:
|
||||
src: wg0-mon.conf
|
||||
dest: /etc/wireguard/wg0.conf
|
||||
when: ansible_hostname == "ap31-mon"
|
||||
|
||||
- name: 11. Active le service Wireguard.
|
||||
ansible.builtin.service:
|
||||
service: wg-quick@wg0.service
|
||||
enabled: true
|
||||
|
||||
- name: 12. Lance le service Wireguard.
|
||||
ansible.builtin.service:
|
||||
service: wg-quick@wg0.service
|
||||
state: restarted
|
17
ansible/wireguard/wg0-mon.conf
Normal file
17
ansible/wireguard/wg0-mon.conf
Normal file
@ -0,0 +1,17 @@
|
||||
# local settings for ap31-mon
|
||||
[Interface]
|
||||
PrivateKey = qNrA3qizZyJ7iPfXQepwA6/g5kkabijifGUW61OO4G4=
|
||||
Address = 10.0.0.1/32
|
||||
ListenPort = 51820
|
||||
|
||||
# remote settings for ap31-prod
|
||||
[Peer]
|
||||
PublicKey = mnWYL52q8bzvvary6s81ROHV1hohu3nlQN0YQkTZTzg=
|
||||
Endpoint = 172.16.0.100:51820
|
||||
AllowedIPs = 10.0.0.2/32
|
||||
|
||||
# remote settings for ap31-test
|
||||
[Peer]
|
||||
PublicKey= Amfx3tgY9WyjhVH8gQJWZpbQVNYwpIt3OFZokMqq43M=
|
||||
Endpoint = 172.16.0.101:51820
|
||||
AllowedIPs = 10.0.0.3/32
|
11
ansible/wireguard/wg0-prod.conf
Normal file
11
ansible/wireguard/wg0-prod.conf
Normal file
@ -0,0 +1,11 @@
|
||||
# local settings for ap31-prod
|
||||
[Interface]
|
||||
PrivateKey = ENtiBbOg56P0DQJhoYe61mNLF06Vtv601rbAAvyKz2M=
|
||||
Address = 10.0.0.2/32
|
||||
ListenPort = 51820
|
||||
|
||||
# remote settings for ap31-mon
|
||||
[Peer]
|
||||
PublicKey = LEkM9UVt21zq7PS8sX+SBihuXr5k9bjAbwSN0dChmAk=
|
||||
Endpoint = 172.16.0.102:51820
|
||||
AllowedIPs = 10.0.0.1/32
|
11
ansible/wireguard/wg0-test.conf
Normal file
11
ansible/wireguard/wg0-test.conf
Normal file
@ -0,0 +1,11 @@
|
||||
# local settings for ap31-test
|
||||
[Interface]
|
||||
PrivateKey = 6Hq3I9MdSB/O8xiXxf1ekysWR2GQgYBss9VNDngbZE4=
|
||||
Address = 10.0.0.3/32
|
||||
ListenPort = 51820
|
||||
|
||||
# remote settings for ap31-mon
|
||||
[Peer]
|
||||
PublicKey = LEkM9UVt21zq7PS8sX+SBihuXr5k9bjAbwSN0dChmAk=
|
||||
Endpoint = 172.16.0.102:51820
|
||||
AllowedIPs = 10.0.0.1/32
|
69
goss/goss_ap31-prod.yaml
Normal file
69
goss/goss_ap31-prod.yaml
Normal file
@ -0,0 +1,69 @@
|
||||
# goss.yaml, ap31-prod
|
||||
package:
|
||||
mariadb-server:
|
||||
installed: true
|
||||
versions:
|
||||
- 1:10.11.6-0+deb12u1
|
||||
qemu-guest-agent:
|
||||
installed: true
|
||||
versions:
|
||||
- 1:7.2+dfsg-7+deb12u7
|
||||
tomcat10:
|
||||
installed: true
|
||||
versions:
|
||||
- 10.1.6-1+deb12u2
|
||||
zabbix-agent2:
|
||||
installed: true
|
||||
versions:
|
||||
- 1:7.0.5-1+debian12
|
||||
service:
|
||||
mariadb:
|
||||
enabled: true
|
||||
running: true
|
||||
mysql:
|
||||
enabled: true
|
||||
running: true
|
||||
qemu-guest-agent:
|
||||
enabled: true
|
||||
running: true
|
||||
ssh:
|
||||
enabled: true
|
||||
running: true
|
||||
tomcat10:
|
||||
enabled: true
|
||||
running: true
|
||||
zabbix-agent2:
|
||||
enabled: true
|
||||
running: true
|
||||
user:
|
||||
mysql:
|
||||
exists: true
|
||||
uid: 104
|
||||
gid: 109
|
||||
groups:
|
||||
- mysql
|
||||
home: /nonexistent
|
||||
shell: /bin/false
|
||||
zabbix:
|
||||
exists: true
|
||||
uid: 105
|
||||
gid: 110
|
||||
groups:
|
||||
- zabbix
|
||||
home: /nonexistent
|
||||
shell: /usr/sbin/nologin
|
||||
group:
|
||||
mysql:
|
||||
exists: true
|
||||
gid: 109
|
||||
zabbix:
|
||||
exists: true
|
||||
gid: 110
|
||||
http:
|
||||
http://172.16.0.100:8080:
|
||||
status: 200
|
||||
allow-insecure: false
|
||||
no-follow-redirects: false
|
||||
timeout: 5000
|
||||
body:
|
||||
- Apache Tomcat
|
95
goss/goss_ap31-test.yaml
Executable file
95
goss/goss_ap31-test.yaml
Executable file
@ -0,0 +1,95 @@
|
||||
# goss.yaml, ap31-test
|
||||
package:
|
||||
mariadb-server:
|
||||
installed: true
|
||||
versions:
|
||||
- 1:10.11.6-0+deb12u1
|
||||
phpmyadmin:
|
||||
installed: true
|
||||
versions:
|
||||
- 4:5.2.1+dfsg-1
|
||||
qemu-guest-agent:
|
||||
installed: true
|
||||
versions:
|
||||
- 1:7.2+dfsg-7+deb12u7
|
||||
tomcat10:
|
||||
installed: true
|
||||
versions:
|
||||
- 10.1.6-1+deb12u2
|
||||
zabbix-agent2:
|
||||
installed: true
|
||||
versions:
|
||||
- 1:7.0.5-1+debian12
|
||||
service:
|
||||
mariadb:
|
||||
enabled: true
|
||||
running: true
|
||||
mysql:
|
||||
enabled: true
|
||||
running: true
|
||||
qemu-guest-agent:
|
||||
enabled: true
|
||||
running: true
|
||||
ssh:
|
||||
enabled: true
|
||||
running: true
|
||||
tomcat10:
|
||||
enabled: true
|
||||
running: true
|
||||
zabbix-agent2:
|
||||
enabled: true
|
||||
running: true
|
||||
user:
|
||||
zabbix:
|
||||
exists: true
|
||||
uid: 105
|
||||
gid: 111
|
||||
groups:
|
||||
- zabbix
|
||||
home: /nonexistent
|
||||
shell: /usr/sbin/nologin
|
||||
group:
|
||||
zabbix:
|
||||
exists: true
|
||||
gid: 111
|
||||
dns:
|
||||
A:ns.sio.lan:
|
||||
resolvable: true
|
||||
addrs:
|
||||
- 10.121.38.7
|
||||
timeout: 500
|
||||
server: 10.121.38.8
|
||||
interface:
|
||||
eth0:
|
||||
exists: true
|
||||
addrs:
|
||||
- 172.16.0.101/24
|
||||
- fe80::be24:11ff:fe8d:7f30/64
|
||||
mtu: 1500
|
||||
http:
|
||||
http://172.16.0.101:8080:
|
||||
status: 200
|
||||
allow-insecure: false
|
||||
no-follow-redirects: false
|
||||
timeout: 5000
|
||||
body:
|
||||
- Apache Tomcat
|
||||
|
||||
- 10.121.38.7
|
||||
timeout: 500
|
||||
server: 10.121.38.8
|
||||
interface:
|
||||
eth0:
|
||||
exists: true
|
||||
addrs:
|
||||
- 172.16.0.101/24
|
||||
- fe80::be24:11ff:fe8d:7f30/64
|
||||
mtu: 1500
|
||||
http:
|
||||
http://172.16.0.101:8080:
|
||||
status: 200
|
||||
allow-insecure: false
|
||||
no-follow-redirects: false
|
||||
timeout: 5000
|
||||
body:
|
||||
- Apache Tomcat # Le motif que Goss recherche.
|
11
journald/journald-rcv.sh
Normal file
11
journald/journald-rcv.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#!/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-journal-remote.service
|
||||
[[ -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
|
8
journald/journald-snd.sh
Normal file
8
journald/journald-snd.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
sudo timedatectl set-timezone Europe/Paris
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y systemd-journal-remote
|
||||
rpl="s/^# URL=/URL=http:\/\/ap31-mon:19532/"
|
||||
sudo sed -i "$rpl" /etc/systemd/journal-upload.conf
|
||||
sudo systemctl enable --now systemd-journal-upload.service
|
||||
sudo systemctl restart systemd-journal-upload.service
|
8
zabbix/zabbix-install-client-prod.sh
Normal file
8
zabbix/zabbix-install-client-prod.sh
Normal file
@ -0,0 +1,8 @@
|
||||
apt install -y wget curl
|
||||
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-2+debian12_all.deb
|
||||
dpkg -i zabbix-release_7.0-2+debian12_all.deb
|
||||
apt install -y zabbix-agent2
|
||||
echo "Server=172.16.0.102" >> /etc/zabbix/zabbix_agent2.conf
|
||||
echo "ServerActive=172.16.0.102" >> /etc/zabbix/zabbix_agent2.conf
|
||||
echo "Hostname=ap31-prod" >> /etc/zabbix/zabbix_agent2.conf
|
||||
systemctl restart zabbix-agent2
|
8
zabbix/zabbix-install-client-test.sh
Normal file
8
zabbix/zabbix-install-client-test.sh
Normal file
@ -0,0 +1,8 @@
|
||||
apt install -y wget curl
|
||||
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-2+debian12_all.deb
|
||||
dpkg -i zabbix-release_7.0-2+debian12_all.deb
|
||||
apt install -y zabbix-agent2
|
||||
echo "Server=172.16.0.102" >> /etc/zabbix/zabbix_agent2.conf
|
||||
echo "ServerActive=172.16.0.102" >> /etc/zabbix/zabbix_agent2.conf
|
||||
echo "Hostname=ap31-test" >> /etc/zabbix/zabbix_agent2.conf
|
||||
systemctl restart zabbix-agent2
|
17
zabbix/zabbix-install-server.sh
Normal file
17
zabbix/zabbix-install-server.sh
Normal file
@ -0,0 +1,17 @@
|
||||
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/zabbix-release_7.0-2+debian12_all.deb
|
||||
dpkg -i zabbix-release_7.0-2+debian12_all.deb
|
||||
apt-get install -y apache2 mariadb-server
|
||||
apt-get install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
|
||||
echo 'create database zabbix character set utf8mb4 collate utf8mb4_bin;' | mysql -u root
|
||||
echo "create user zabbix@localhost identified by 'password';" | mysql -u root
|
||||
echo 'grant all privileges on zabbix.* to zabbix@localhost;' | mysql -u root
|
||||
echo 'set global log_bin_trust_function_creators = 1;' | mysql -u root
|
||||
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u zabbix -ppassword zabbix
|
||||
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
|
Loading…
x
Reference in New Issue
Block a user