3 Commits

6 changed files with 120 additions and 1 deletions

View File

@@ -19,7 +19,7 @@ Version: v.0.0.1h-ge
* Ajout du fichier `/etc/apt/apt.conf` récupéré depuis depl, pour pouvoir passer à travers le proxy. * 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. * Commande `apt update` effectuée sur chaque machine.
* **ap31-prod** : mariadb-server, tomcat10, zabbix-agent2, qemu-guest-agent, wget, goss * **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 * **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. * Ajout de goss sur **ap31-test** et **ap31-prod**, et création de fichiers de test fonctionnels pour les deux machines.
@@ -42,3 +42,11 @@ Version: v.0.0.1h-ge
* Création d'un utilisateur `reseau` pour modifier la BDD sans utiliser le compte root si nécessaire. * 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**. * 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. * 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
View 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
View 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
View 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
View 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
View File

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