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
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
Percona PMM Client for Debian and RedHat based distributions
ansible-galaxy install timorunge.pmm_client