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 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//{{ 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).