Compare commits
4 Commits
df0710ed22
...
v0.0.2a-ge
Author | SHA1 | Date | |
---|---|---|---|
|
17133b5ba9 | ||
|
951ac2f4d7 | ||
|
605f581cfc | ||
|
c9a8886390 |
33
README.md
33
README.md
@@ -1,7 +1,7 @@
|
||||
# sdis29-1
|
||||
## Dépôt Git des programmes sources - SDIS 29.
|
||||
|
||||
Version: v.0.0.1g-jb
|
||||
Version: v.0.0.1h-ge
|
||||
|
||||
### Création initiale des serveurs :
|
||||
|
||||
@@ -19,19 +19,34 @@ Version: v.0.0.1g-jb
|
||||
* 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
|
||||
* **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.
|
||||
|
||||
### Configuration de Zabbix :
|
||||
|
||||
* Pour **ap31-mon**, installation de Zabbix, et configuration 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*.
|
||||
* 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.
|
||||
|
||||
* Une fois fait, ajout de **ap31-prod** et **ap31-test** dans Zabbix, et attente d'une détection sur le serveur Zabbix.
|
||||
### Centralisation de la gestion des logs :
|
||||
|
||||
### Centralisée la gestion de 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.
|
||||
|
||||
* Installation du paquet dans chaque serveur "systemd-journal-remote"
|
||||
* ap31-mon : utilisation d'un script journald-rcv.sh configurer du coté récepteur.
|
||||
* ap31-test, ap31-prod : utilisation d'un script journald-snd.sh configurer du coté é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.
|
||||
|
||||
### 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 la BDD, 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é.
|
||||
|
11
ansible/README.md
Normal file
11
ansible/README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Ansible
|
||||
Dans ce répertoire se situent les *playbooks* Ansible.
|
||||
|
||||
## 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
|
@@ -2,7 +2,7 @@
|
||||
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/" # $1 represente l'adresse du recepteur
|
||||
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-install-client-prod.sh
Normal file
8
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-install-client-test.sh
Normal file
8
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-install-server.sh
Normal file
17
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
|
Reference in New Issue
Block a user