role_zabbix/README.md

178 lines
4.8 KiB
Markdown

Zabbix
=========
Deploiement d'une infrascutrure ZAbbix complete
Deux serveur zabbix
- HA
- Keealived pour nginx
- Certiticats TLS
Distribution prise en charges:
- Debian13
- Almalinux
Pour Ajouter une distribution RHEL like
Ajouter un block dans tasks/main.yml
Similaire à ceci ( voir https://www.zabbix.com/download pour le path associé a votre distribution):
```
- name: Prepare <Votre distribution>
when: ansible_distribution == "AlmaLinux" <= Nom de votre distriution
block:
- name: add gpg
ansible.builtin.dnf:
name: gnupg2
state: present
- name: Copie GPG key
ansible.builtin.copy:
src: RPM-GPG-KEY-ZABBIX-B5333005
dest: /tmp/RPM-GPG-KEY-ZABBIX-B5333005
- name: Import a key
ansible.builtin.rpm_key:
state: present
key: /tmp/RPM-GPG-KEY-ZABBIX-B5333005
- name: Add Package
ansible.builtin.dnf:
name: "https://repo.zabbix.com/zabbix/{{ zabbix_version }}/release/<Votre distribution>/{{ ansible_distribution_major_version }}/noarch/zabbix-release-latest-{{ zabbix_version }}.el{{ ansible_distribution_major_version }}.noarch.rpm"
state: present
```
Requirements
------------
Nécéssite les fichiers de certificats suivants:
- zabbix_ca.cert
- zabbix_server.cert
- zabbix_server.key
- zabbix_agent.cert
- zabbix_agent.key
- zabbix_proxy.cert
- zabbix_proxy.key
Ces fichiers sont a déposer dans /files
Note: vous pouvez changer le nom des fichiers en ce cas modifier les variables suivante dans default/main.yml
```
zabbix_ca: zabbix_ca
zabbix_server: zabbix_server
zabbix_proxy: zabbix_proxy
zabbix_agent: zabbix_agent
```
# Variables
--------------
## Role Variables
Variable definies dans default/main.yml
# defaults file for zabbix
| Variable | Role | Remarques|
|----------|------|----------|
|zabbix_version|Version de zabbix|Ne fonctionnent actuellement pour les Debian|
|roles_cibles| utlisés pour générer les Variable Server et ActiveServer | Exemple:['srv', 'proxy']|
|db_name|Nom de la base de postgres des serveurs||
|db_user|Nom de l'utilisateur de la base postgres serveurs||
|db_passwd|Mot de passe l'utilisateur de la base postgres serveurs||
|proxy_db_name|Nom de la base des proxys||
|proxy_db_user|Nom de l'utilisateur de la base des proxys||
|proxy_db_passwd|Mot de passe de l'utilisateur de la base des proxys||
|zabbix_ca|Nom du fichier de CA||
|zabbix_server|Nom du fichier de certificat utilisés par les serveurs||
|zabbix_proxy|Nom du fichier de certificat utilisés par les proxy||
|zabbix_agent|Nom du fichier de certificat utilisés par les agents||
## Group Variables
| Variable | Role | Remarques|
|----------|------|----------|
|db_host| adatabase.bv.stef.lan|
|db_port| 5432|Non utilisé pour le moment|
|postgresql_version|| Exemple 17, uniquement implementé dans débian|
|zabbix_crypt| Type de chiffrement utilisé| tls ou psk pour le moment seul tls est totalement implementé|
|zabbix_cert_ca_name| zabbix_ca||
|zabbix_cert_server_name| zabbix_server||
|zabbix_cert_agent_name| zabbix_agent||
|TLSServerCertSubject| DN des serveurs zabbix| exemple: "CN=zabbix_server,C=FR"|
|TLSServerCertIssuer| DN du CA zabbix| exemple: "CN=zabbix_ca,C=FR"|
|ZabbixHA| Activation du HA ou non | true ou false|
|vip_address| Vip keealived des nginx| exemple 192.168.200.75|
|vip_fqdn| FQDN de la Vip keealived des nginx|exemple: zabbix.mondomain.com|
|ActiveVault| Active ou non le vault| true ou false|
|Vault| Modele du vault| HashiCorp actuellement uniquement implémenté|
|VaultToken|Token d'acces au vault||
|VaultURL| Url du vault | exemple: https://vault.mondomain.com|
|VaultPrefix| Path des secret zabbix| exemple: /v1/secret/data/zabbix/|
|VaultDBPath| nom du secret des credential d'acces DB| exemple: /database|
## Hosts Variables
L'host master keepalived doit contenir:
```
keepalived:
state: MASTER
priority: 244
```
L'host backup keepalived doit contenir:
```
keepalived:
state: BACKUP
priority: 243
```
Dependencies
------------
None
Exemple Inventory
zabbix_instance01:
hosts:
server01.mondomain.com:
role: srv
server02.mondomain.com:
role: srv
database.mondomain.com:
role: db
front.mondomain.com:
role: front
proxy01.mondomain.com:
role: proxy
proxy02.mondomain.com:
role: proxy
Example Playbook
-------------------
Fichier playbooks/zabbix.yml:
```
- name: Install zabbix on hosts
hosts:
- zabbix_instance01
- zabbix_instance02
become: true
roles:
- zabbix
```
Exemple de déploiement
```
ansible-playbook playbooks/zabbix.yml --limit zabbix_instance01
```
License
-------
BSD
Author Information
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).