timorunge.pmm_client

pmm_client

Ta rola instaluję i konfiguruje klienta PMM Percony.

Wymagania

Ta rola wymaga Ansible 2.5.0 lub wyższej wersji.

Możesz łatwo zainstalować (i zdefiniować) stabilną wersję za pomocą pip:

pip install ansible==2.8.4

Wszystkie wymagania dotyczące platformy znajdują się w pliku z metadanymi.

Instalacja

ansible-galaxy install timorunge.pmm_client

Zmienne roli

Zmienne, które można przekazać do tej roli i ich krótki opis są następujące. (Wszystkie zmienne możesz znaleźć w defaults/main.yml)

# Zdefiniuj wersję
# Typ: Int
pmm_client_version: 1.17.1
# Adres IP i port pmm-server:
# Typ: Str
pmm_client_server_host: 172.20.0.10
# Typ: Int
pmm_client_server_port: 443
# Wyłącz podstawową autoryzację:
# Typ: Bool
pmm_client_server_basic_auth: false
# Włącz SSL:
# Typ: Bool
pmm_client_server_use_ssl: true
# Wymuś ustawienie nazwy klienta podczas początkowej konfiguracji
# Typ: Bool
pmm_client_force_setup: false
# Zdefiniuj usługi do dodania lub usunięcia:
# Typ: Lista
pmm_client_add_services:
  - linux:metrics
  - mysql:metrics
  - mongodb:metrics
  - postgresql:metrics
pmm_client_remove_services:
  - mysql:queries
# Zdefiniuj usługi do uruchomienia lub zatrzymania:
# Typ: Lista
pmm_client_start_services:
  - linux:metrics
  - mysql:metrics
  - mongodb:metrics
  - postgresql:metrics
pmm_client_stop_services:
  - mysql:queries
# Zdefiniuj dane logowania do połączenia z bazą danych MySQL:
# Typ: Słownik
pmm_client_db:
  mysql:
    host: localhost
    port: 3306
    username: root
    password: toor

Przykłady

1) Zainstaluj klienta PMM bez podstawowej autoryzacji i wyłączonym 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) Zainstaluj klienta PMM z podstawową autoryzacją i włączonym 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) Zainstaluj klienta PMM z określonego 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) Wymuszanie konfiguracji klienta PMM

W niektórych sytuacjach musisz wymusić konfigurację klienta PMM, np. gdy serwer był niedostępny lub wykonałeś nową konfigurację z nazwą hosta, która była już używana.

Otrzymasz wiadomość jak poniżej:

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

TASK [timorunge.pmm-client : Sprawdź, czy klient PMM jest skonfigurowany] *******************************************************************************
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": "Klient PMM nie jest skonfigurowany, brakuje pliku konfiguracyjnego. Upewnij się, że uruchomiłeś 'pmm-admin config'.", "stdout_lines": ["Klient PMM nie jest skonfigurowany, brakuje pliku konfiguracyjnego. Upewnij się, że uruchomiłeś 'pmm-admin config'."]}
...ignoring

TASK [timorunge.pmm-client : Konfiguracja klienta PMM - tryb podstawowy] ************************************************************************************
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": "Wykryto innego klienta o tej samej nazwie 'proxysql-aN8thi', jego adres to 172.20.0.11.\nMa aktywne usługi, więc ta nazwa jest niedostępna.\n\nOkreśl inną używając flagi --client-name.\n\nJeśli to jest poprawny węzeł klienta, który wcześniej został odinstalowany z niedostępnym serwerem PMM,\nmożesz dodać flagę --force, aby kontynuować. Nie używaj tej flagi inaczej.\nOsierocone zdalne usługi zostaną usunięte automatycznie.", "stdout_lines": ["Wykryto innego klienta o tej samej nazwie 'proxysql-aN8thi', jego adres to 172.20.0.11.", "Ma aktywne usługi, więc ta nazwa jest niedostępna.", "", "Określ inną używając flagi --client-name.", "", "Jeśli to jest poprawny węzeł klienta, który wcześniej został odinstalowany z niedostępnym serwerem PMM,", "możesz dodać flagę --force, aby kontynuować. Nie używaj tej flagi inaczej.", "Osierocone zdalne usługi zostaną usunięte automatycznie."]}
  do retry, use: --limit @... main.retry

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

W zasadzie masz dwie opcje:

1) Poprzez konfigurację YAML

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

2) Poprzez linię komend

To jest zalecany sposób.

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

...

TASK [timorunge.pmm-client : Sprawdź, czy klient PMM jest skonfigurowany] ************************************************************************************
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": "Klient PMM nie jest skonfigurowany, brakuje pliku konfiguracyjnego. Upewnij się, że uruchomiłeś 'pmm-admin config'.", "stdout_lines": ["Klient PMM nie jest skonfigurowany, brakuje pliku konfiguracyjnego. Upewnij się, że uruchomiłeś 'pmm-admin config'."]}
...ignoring

TASK [timorunge.pmm-client : Konfiguracja klienta PMM - tryb podstawowy] ************************************************************************************
changed: [proxysql-aN8thi]

...

TASK [timorunge.pmm-client : Dodawanie usług Linux i ProxySQL do monitorowania] *********************************************************************
changed: [proxysql-aN8thi] => (item=linux:metrics)
changed: [proxysql-aN8thi] => (item=proxysql:metrics)

...

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

5) Odinstalowanie klienta PMM

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

Testowanie

Status budowy

Testy są wykonywane z użyciem Docker oraz docker_test_runner, który uruchamia poniższe kontenery z różnymi ustawieniami środowiska:

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

Ansible 2.8.4 jest zainstalowane na wszystkich kontenerach, a testowy playbook jest stosowany.

Aby uzyskać więcej szczegółów i dodatkowe kontrole, zajrzyj do konfiguracji docker_test_runner oraz punktu wejścia Dockera.

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

Ponieważ czas budowy na Travis jest ograniczony dla publicznych repozytoriów, zautomatyzowane testy są ograniczone do:

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

Zależności

Brak

Licencja

Licencja BSD 3-Klauzowa "Nowa" lub "Zrewidowana"

Informacje o autorze

  • Na podstawie roli Ansible od Chrisa Sama
  • Znacząco zmodyfikowane przez: Timo Runge
O projekcie

Percona PMM Client for Debian and RedHat based distributions

Zainstaluj
ansible-galaxy install timorunge.pmm_client
Licencja
bsd-3-clause
Pobrania
7.2k
Właściciel