timorunge.pmm_client

pmm_client

Dieses Role installiert und konfiguriert den Percona PMM Client.

Voraussetzungen

Diese Rolle benötigt Ansible 2.5.0 oder höher.

Du kannst pip verwenden, um eine stabile Version zu installieren (und festzulegen):

pip install ansible==2.8.4

Alle Plattformanforderungen sind in der Metadatei aufgeführt.

Installieren

ansible-galaxy install timorunge.pmm_client

Rollvariablen

Die Variablen, die an diese Rolle übergeben werden können, sowie eine kurze Beschreibung sind wie folgt. (Für alle Variablen sieh dir defaults/main.yml an)

# Definiere die Version
# Typ: Int
pmm_client_version: 1.17.1
# IP-Adresse und Port des pmm-Servers:
# Typ: Str
pmm_client_server_host: 172.20.0.10
# Typ: Int
pmm_client_server_port: 443
# Grundauthentifizierung deaktivieren:
# Typ: Bool
pmm_client_server_basic_auth: false
# SSL aktivieren:
# Typ: Bool
pmm_client_server_use_ssl: true
# Erzwungen, um den Clientnamen bei der Ersteinrichtung festzulegen
# Typ: Bool
pmm_client_force_setup: false
# Dienste definieren, die hinzugefügt oder entfernt werden sollen:
# Typ: Liste
pmm_client_add_services:
  - linux:metrics
  - mysql:metrics
  - mongodb:metrics
  - postgresql:metrics
pmm_client_remove_services:
  - mysql:queries
# Dienste definieren, die gestartet oder gestoppt werden sollen:
# Typ: Liste
pmm_client_start_services:
  - linux:metrics
  - mysql:metrics
  - mongodb:metrics
  - postgresql:metrics
pmm_client_stop_services:
  - mysql:queries
# Anmeldeinformationen für die MySQL-DB-Verbindung definieren:
# Typ: Dict
pmm_client_db:
  mysql:
    host: localhost
    port: 3306
    username: root
    password: toor

Beispiele

1) Installiere den PMM Client ohne Grundauthentifizierung und mit deaktiviertem SSL

- 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) Installiere den PMM Client mit Grundauthentifizierung und aktiviertem SSL

- 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) Installiere den PMM Client von einer definierten URL

- 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) Zwangsweise Einrichtung des PMM Clients

In einigen Situationen musst du die Einrichtung des PMM Clients zwangsweise durchführen. Z.B. wenn der Server unerreichbar war oder du eine neue Einrichtung mit einem zuvor verwendeten Hostnamen durchgeführt hast.

Du erhältst eine Nachricht wie die folgende:

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

TASK [timorunge.pmm-client : Überprüfen, ob der PMM Client konfiguriert ist] ****************************************************************************
fatal: [proxysql-aN8thi]: FAILED! => {"changed": false, "cmd": ["pmm-admin", "list"], "delta": "0:00:00.148803", "end": "2018-09-25 09:39:46.297917", "msg": "non-zero return code", "rc": 1, "start": "2018-09-25 09:39:46.149114", "stderr": "", "stderr_lines": [], "stdout": "PMM client ist nicht konfiguriert, Konfigurationsdatei fehlt. Bitte stelle sicher, dass du 'pmm-admin config' ausgeführt hast.", "stdout_lines": ["PMM client ist nicht konfiguriert, Konfigurationsdatei fehlt. Bitte stelle sicher, dass du 'pmm-admin config' ausgeführt hast."]}
...ignoring

TASK [timorunge.pmm-client : PMM Client konfigurieren - Basis-Modus] ************************************************************************************
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": "non-zero return code", "rc": 1, "start": "2018-09-25 09:39:50.350572", "stderr": "", "stderr_lines": [], "stdout": "Ein anderer Client mit dem gleichen Namen 'proxysql-aN8thi' wurde erkannt, seine Adresse ist 172.20.0.11.\nEr hat die aktiven Dienste, daher ist dieser Name nicht verfügbar.\n\nGib den anderen Namen mit dem Flag --client-name an.\n\nFalls dies der korrekte Client-Knoten ist, der zuvor mit einem unerreichbaren PMM-Server deinstalliert wurde,\nkannst du das Flag --force hinzufügen, um fortzufahren. Verwende dieses Flag nicht, es sei denn, es ist notwendig.\nDie verwaisten Remote-Dienste werden automatisch entfernt.", "stdout_lines": ["Ein anderer Client mit dem gleichen Namen 'proxysql-aN8thi' wurde erkannt, seine Adresse ist 172.20.0.11.", "Er hat die aktiven Dienste, daher ist dieser Name nicht verfügbar.", "", "Gib den anderen Namen mit dem Flag --client-name an.", "", "Falls dies der korrekte Client-Knoten ist, der zuvor mit einem unerreichbaren PMM-Server deinstalliert wurde,", "kannst du das Flag --force hinzufügen, um fortzufahren. Verwende dieses Flag nicht, es sei denn, es ist notwendig.", "Die verwaisten Remote-Dienste werden automatisch entfernt."]}
  um erneut zu versuchen, verwende: --limit @... main.retry

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

Im Grunde hast du zwei Optionen:

1) Über die YAML-Konfiguration

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

2) Über die Befehlszeile

Das ist die empfohlene Methode.

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

...

TASK [timorunge.pmm-client : Überprüfen, ob der PMM Client konfiguriert ist] ****************************************************************************
fatal: [proxysql-aN8thi{"changed": false, "cmd": ["pmm-admin", "list"], "delta": "0:00:00.361021", "end": "2018-09-25 09:51:30.675725", "msg": "non-zero return code", "rc": 1, "start": "2018-09-25 09:51:30.314704", "stderr": "", "stderr_lines": [], "stdout": "PMM client ist nicht konfiguriert, Konfigurationsdatei fehlt. Bitte stelle sicher, dass du 'pmm-admin config' ausgeführt hast.", "stdout_lines": ["PMM client ist nicht konfiguriert, Konfigurationsdatei fehlt. Bitte stelle sicher, dass du 'pmm-admin config' ausgeführt hast."]}
...ignoring

TASK [timorunge.pmm-client : PMM Client konfigurieren - Basis-Modus] ************************************************************************************
changed: [proxysql-aN8thi]

...

TASK [timorunge.pmm-client : Hinzufügen von Linux- und ProxySQL-Diensten zur Überwachung] *************************************************************
changed: [proxysql-aN8thi] => (item=linux:metrics)
changed: [proxysql-aN8thi] => (item=proxysql:metrics)

...

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

5) Deinstalliere den PMM Client

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

Testen

Build Status

Tests werden mit Docker und docker_test_runner durchgeführt, die die folgenden Container mit unterschiedlichen Umgebungsbedingungen bereitstellt:

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

Ansible 2.8.4 ist auf allen Containern installiert und ein Test-Playbook wird angewendet.

Für weitere Details und zusätzliche Überprüfungen sieh dir bitte die docker_test_runner-Konfiguration und den Docker-Entrypoint an.

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

Da die Build-Zeit bei Travis für öffentliche Repositorys begrenzt ist, sind die automatisierten Tests auf folgende Systeme beschränkt:

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

Abhängigkeiten

Keine

Lizenz

BSD 3-Klausel "Neu" oder "Überarbeitet" Lizenz

Autor Informationen

  • Basierend auf der Ansible-Rolle von Chris Sam
  • Stark modifiziert von: Timo Runge
Über das Projekt

Percona PMM Client for Debian and RedHat based distributions

Installieren
ansible-galaxy install timorunge.pmm_client
Lizenz
bsd-3-clause
Downloads
7.2k
Besitzer