timorunge.pmm_client

pmm_client

Ce rôle installe et configure le client Percona PMM.

Exigences

Ce rôle nécessite Ansible 2.5.0 ou une version supérieure.

Vous pouvez simplement utiliser pip pour installer (et définir) une version stable :

pip install ansible==2.8.4

Tous les besoins de la plateforme sont listés dans le fichier de métadonnées.

Installation

ansible-galaxy install timorunge.pmm_client

Variables de rôle

Les variables qui peuvent être transmises à ce rôle et une brève description à leur sujet sont les suivantes. (Pour toutes les variables, consultez defaults/main.yml)

# Définir la version
# Type : Int
pmm_client_version: 1.17.1
# Adresse IP et port du pmm-server :
# Type : Str
pmm_client_server_host: 172.20.0.10
# Type : Int
pmm_client_server_port: 443
# Désactiver l'authentification basique :
# Type : Bool
pmm_client_server_basic_auth: false
# Activer SSL :
# Type : Bool
pmm_client_server_use_ssl: true
# Forcer la définition du nom du client lors de l'installation initiale
# Type : Bool
pmm_client_force_setup: false
# Définir les services à ajouter ou à supprimer :
# Type : Liste
pmm_client_add_services:
  - linux:metrics
  - mysql:metrics
  - mongodb:metrics
  - postgresql:metrics
pmm_client_remove_services:
  - mysql:queries
# Définir les services à démarrer ou à arrêter :
# Type : Liste
pmm_client_start_services:
  - linux:metrics
  - mysql:metrics
  - mongodb:metrics
  - postgresql:metrics
pmm_client_stop_services:
  - mysql:queries
# Définir les identifiants pour la connexion à la base de données MySQL :
# Type : Dict
pmm_client_db:
  mysql:
    host: localhost
    port: 3306
    username: root
    password: toor

Exemples

1) Installer le client PMM sans authentification basique et SSL désactivé

- hosts: all
  become: yes
  vars:
    pmm_client_server_host: 172.20.0.10
    pmm_client_server_port: 443
    pmm_client_server_basic_auth: false
    pmm_client_server_use_ssl: false
    pmm_client_add_services:
      - linux:metrics
    pmm_client_start_services:
      - linux:metrics
  roles:
    - timorunge.pmm_client

2) Installer le client PMM avec authentification basique et SSL activé

- hosts: all
  become: yes
  vars:
    pmm_client_server_host: 172.20.0.10
    pmm_client_server_port: 443
    pmm_client_server_basic_auth: true
    pmm_client_server_basic_auth_username: admin
    pmm_client_server_basic_auth_password: mySecurePassword
    pmm_client_server_use_ssl: true
    pmm_client_add_services:
      - linux:metrics
    pmm_client_start_services:
      - linux:metrics
  roles:
    - timorunge.pmm_client

3) Installer le client PMM à partir d'une URL définie

- hosts: all
  become: yes
  vars:
    pmm_client_version: 1.17.1
    pmm_client_version_revision: 1
    pmm_client_use_official_repo: false
    pmm_client_debian_pkg: "https://www.percona.com/downloads/pmm/{{ pmm_client_version }}/binary/debian/{{ ansible_distribution_release }}/x86_64/pmm-client_{{ pmm_client_version }}-{{ pmm_client_version_revision }}.{{ ansible_distribution_release }}_amd64.deb"
  roles:
    - timorunge.pmm_client

4) Forcer la configuration du client PMM

Dans certaines situations, vous devez forcer la configuration du client PMM. Par exemple, si le serveur était inaccessible ou si vous avez fait une nouvelle installation avec un nom d'hôte qui a déjà été utilisé.

Vous recevrez un message comme le suivant :

TASK [timorunge.pmm-client : include_tasks] ********************************************************************************************************
included: ... ansible-pmm-client/tasks/server-config.yml for proxysql-aN8thi

TASK [timorunge.pmm-client : Vérifier si le client PMM est configuré] ************************************************************************************
fatal: [proxysql-aN8thi]: FAILED! => {"changed": false, "cmd": ["pmm-admin", "list"], "delta": "0:00:00.148803", "end": "2018-09-25 09:39:46.297917", "msg": "code de retour non zéro", "rc": 1, "start": "2018-09-25 09:39:46.149114", "stderr": "", "stderr_lines": [], "stdout": "Le client PMM n'est pas configuré, fichier de configuration manquant. Veuillez vous assurer que vous avez exécuté 'pmm-admin config'.", "stdout_lines": ["Le client PMM n'est pas configuré, fichier de configuration manquant. Veuillez vous assurer que vous avez exécuté 'pmm-admin config'."]}
...ignoring

TASK [timorunge.pmm-client : Configurer le client PMM - mode de base] ************************************************************************************
fatal: [proxysql-aN8thi]: FAILED! => {"changed": true, "cmd": ["pmm-admin", "config", "--server", "172.20.0.10:80", "--client-name", "proxysql-aN8thi", "--config-file", "/usr/local/percona/pmm-client/pmm.yml"], "delta": "0:00:00.239708", "end": "2018-09-25 09:39:50.590280", "msg": "code de retour non zéro", "rc": 1, "start": "2018-09-25 09:39:50.350572", "stderr": "", "stderr_lines": [], "stdout": "Un autre client avec le même nom 'proxysql-aN8thi' a été détecté, son adresse est 172.20.0.11.\nIl a des services actifs donc ce nom n'est pas disponible.\n\nVeuillez en spécifier un autre en utilisant le paramètre --client-name.\n\nDans le cas où c'est le bon nœud client qui a été précédemment désinstallé avec un serveur PMM inaccessible,\nvous pouvez ajouter le paramètre --force pour continuer. N'utilisez pas ce paramètre autrement.\nLes services distants orphelins seront supprimés automatiquement.", "stdout_lines": ["Un autre client avec le même nom 'proxysql-aN8thi' a été détecté, son adresse est 172.20.0.11.", "Il a des services actifs donc ce nom n'est pas disponible.", "", "Veuillez en spécifier un autre en utilisant le paramètre --client-name.", "", "Dans le cas où c'est le bon nœud client qui a été précédemment désinstallé avec un serveur PMM inaccessible,", "vous pouvez ajouter le paramètre --force pour continuer. N'utilisez pas ce paramètre autrement.", "Les services distants orphelins seront supprimés automatiquement."]}
  to retry, use: --limit @... main.retry

PLAY RECAP *****************************************************************************************************************************************
proxysql-aN8thi            : ok=9    changed=0    unreachable=0    failed=1

En gros, vous avez deux options :

1) Via configuration yaml

- hosts: all
  become: yes
  vars:
    pmm_client_force_setup: true
  roles:
    - timorunge.pmm_client

2) Via ligne de commande

C'est la méthode recommandée.

$ ansible-playbook main.yml -i inventory -b --limit "proxysql-aN8thi" --diff -e "{ pmm_client_force_setup: true }"

...

TASK [timorunge.pmm-client : Vérifier si le client PMM est configuré] ************************************************************************************
fatal: [proxysql-aN8thi{"changed": false, "cmd": ["pmm-admin", "list"], "delta": "0:00:00.361021", "end": "2018-09-25 09:51:30.675725", "msg": "code de retour non zéro", "rc": 1, "start": "2018-09-25 09:51:30.314704", "stderr": "", "stderr_lines": [], "stdout": "Le client PMM n'est pas configuré, fichier de configuration manquant. Veuillez vous assurer que vous avez exécuté 'pmm-admin config'.", "stdout_lines": ["Le client PMM n'est pas configuré, fichier de configuration manquant. Veuillez vous assurer que vous avez exécuté 'pmm-admin config'."]}
...ignoring

TASK [timorunge.pmm-client : Configurer le client PMM - mode de base] ************************************************************************************
changed: [proxysql-aN8thi]

...

TASK [timorunge.pmm-client : Ajout des services Linux et ProxySQL à la surveillance] *********************************************************************
changed: [proxysql-aN8thi] => (item=linux:metrics)
changed: [proxysql-aN8thi] => (item=proxysql:metrics)

...

proxysql-aN8thi            : ok=13   changed=2    unreachable=0    failed=0

5) Désinstaller le client PMM

- hosts: all
  become: yes
  vars:
    pmm_client_enabled: false
  roles:
    - timorunge.pmm_client

Tests

Statut de construction

Les tests sont effectués avec Docker et docker_test_runner qui met en place les conteneurs suivants avec différents paramètres d'environnement :

  • CentOS 7
  • Debian 9.4 (Stretch)
  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 18.04 (Bionic Beaver)

Ansible 2.8.4 est installé sur tous les conteneurs et un playbook de test est appliqué.

Pour plus de détails et des vérifications supplémentaires, consultez la configuration docker_test_runner et le point d'entrée Docker.

# Tester localement :
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml

Comme le temps de construction sur Travis est limité pour les dépôts publics, les tests automatisés sont limités à :

  • CentOS 7
  • Debian 9.4 (Stretch)
  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 18.04 (Bionic Beaver)

Dépendances

Aucune

Licence

Licence BSD 3-Clause "New" ou "Revised"

Informations sur l'auteur

  • Basé sur le rôle Ansible de Chris Sam
  • Fortement modifié par : Timo Runge
À propos du projet

Percona PMM Client for Debian and RedHat based distributions

Installer
ansible-galaxy install timorunge.pmm_client
Licence
bsd-3-clause
Téléchargements
7.2k
Propriétaire