rockandska.influxdb
ansible-role-influxdb
Rola Ansible do instalacji/konfiguracji InfluxDB z plików binarnych InfluxDB.
Dostępna na Ansible Galaxy
Ansible Galaxy:
Wymagania dla zdalnych hostów
Wszystkie dystrybucje
- logrotate
- python requests >= 1.0.0 (jeśli używasz zarządzania użytkownikami, bazami danych, politykami przechowywania, oferowane przez tę rolę)
- python influxdb >= 0.9.0 (jeśli używasz zarządzania użytkownikami, bazami danych, politykami przechowywania, oferowane przez tę rolę)
Debian / Ubuntu
- apt-transport-https
- gpg-agent
- ca-certificates
CentOS / RedHat
- gnupg2
Zmienne roli
Domyślne zmienne znajdują się w pliku defaults/main.yml
---
###########
# Instalacja #
###########
influxdb_version: 1.7.4
influxdb_rpm_url: "https://dl.influxdata.com/influxdb/releases/influxdb-{{ influxdb_version }}.x86_64.rpm"
influxdb_rpm_sha256: "93caa49159e76b3338abc191c85d46d134ac67697a0c7f874c937baa38dd6a5e"
influxdb_rpm_dest_path: "/usr/src"
influxdb_deb_url: "https://dl.influxdata.com/influxdb/releases/influxdb_{{ influxdb_version }}_amd64.deb"
influxdb_deb_sha256: "5488bd8889de7d45aa09cdccc845156e2d59442871ad6899d64d797e42f2888b"
influxdb_deb_dest_path: "/usr/src"
#################
# Niestandardowa konfiguracja #
#################
influxdb_vars_files: []
influxdb_config_tpl: etc/influxdb/influxdb.conf.j2
influxdb_config: {}
influxdb_systemd_override_tpl: etc/systemd/system/influxdb.service.d/override.conf.j2
influxdb_systemd_override: {}
influxdb_custom_logrotate_tpl: etc/logrotate.d/influxdb.j2
influxdb_custom_logrotate:
############
# Użytkownik API #
############
influxdb_management_hostname:
influxdb_management_port:
influxdb_management_validate_certs:
influxdb_management_proxies:
influxdb_management_login_username:
influxdb_management_login_password:
influxdb_management_retries:
influxdb_management_ssl:
influxdb_management_timeout:
influxdb_management_udp_port:
influxdb_management_use_udp:
#########
# Użytkownicy #
#########
influxdb_users_to_create: []
influxdb_users_to_delete: []
#############
# Bazy danych #
#############
influxdb_databases_to_create: []
influxdb_databases_to_delete: []
############
# Polityki #
############
influxdb_retention_policies_to_create: []
#########
# Debugowanie #
#########
influxdb_hide_log: true
Szczegóły
- influxdb_version- powinna być to wersja InfluxDB dostępna na https://dl.influxdata.com/influxdb/releases
- starsze wersje nie są pokazane na stronie pobierania, ale są dostępne z bezpośrednich linków
 
- influxdb_rpm_url- adres URL pakietu rpm
 
- influxdb_rpm_sha256- sha256 pakietu rpm do weryfikacji integralności
- dostępne na stronie pobierania InfluxDB dla najnowszej wersji
 
- influxdb_rpm_dest_path- ścieżka, gdzie zostanie pobrany pakiet rpm
 
- influxdb_deb_url- adres URL pakietu deb
 
- influxdb_deb_sha256- sha256 pakietu deb do weryfikacji integralności
- dostępne na stronie pobierania InfluxDB dla najnowszej wersji
 
- influxdb_deb_dest_path- ścieżka, gdzie zostanie pobrany pakiet deb
 
- influxdb_vars_files- lista plików zmiennych używanych do nadpisania domyślnych zmiennych w razie potrzeby
- jeśli używasz ścieżki względnej, umieść te pliki obok swojego playbooka w folderze vars
- przykład:influxdb_vars_files: - settings.yml
 
- influxdb_config_tpl- ścieżka do szablonu konfiguracji influxdb
- jeśli chcesz użyć własnego szablonu- dodaj swój szablon obok swojego playbooka w folderze templates
- użyj innej ścieżki niż domyślna
 
- dodaj swój szablon obok swojego playbooka w folderze 
 
- influxdb_config- słownik reprezentujący niestandardową konfigurację influxdb do zastosowania 
- umieść specjalne klucze w podwójnych cudzysłowach (przykład: "[meta]") 
- Jeśli używasz niestandardowej konfiguracji, konieczne jest zastosowanie niektórych minimalnych sekcji, co wynika z influxdb/#12140 i jest pokazane w przykładzie poniżej 
- przykłady: - influxdb_config: # Sekcja globlna jako 'klucz: wartość' reporting-disabled: true # Minimalne wymagane sekcje jako 'sekcja: { klucz: wartość, klucz: wartość }' "[meta]": dir: /var/lib/influxdb/meta "[data]": dir: /var/lib/influxdb/data wal-dir: /var/lib/influxdb/wal # Inne sekcje w formacie 'sekcja: { klucz: wartość, klucz: wartość }' "[http]": auth-enabled: true "[[graphite]]": enable: true batch-size: 5000
 
- influxdb_systemd_override_tpl- ścieżka do szablonu systemd override dla influxdb
- jeśli chcesz użyć własnego szablonu- dodaj swój szablon obok swojego playbooka w folderze templates
- użyj innej ścieżki niż domyślna
 
- dodaj swój szablon obok swojego playbooka w folderze 
 
- influxdb_systemd_override- słownik reprezentujący niestandardową konfigurację systemd
- pierwszy poziom używany jest dla sekcji ini
- drugi poziom używany jest dla kluczy/wartości
- przykład:influxdb_systemd_override: Service: LimitNOFILE: 30000 # Spowoduje to utworzenie pliku nadpisania systemd jako: # [Service] # LimitNOFILE=30000
 
- influxdb_custom_logrotate_tpl- ścieżka do niestandardowego szablonu logrotate dla influxdb
- jeśli chcesz użyć własnego szablonu- dodaj swój szablon obok swojego playbooka w folderze templates
- użyj innej ścieżki niż domyślna
 
- dodaj swój szablon obok swojego playbooka w folderze 
 
- influxdb_custom_logrotate- ciąg wieloliniowy z opcjami logrotate dla logów influxdb 
- nadpisuje domyślną konfigurację 
- /!\ Uwaga, że jeśli zastąpisz domyślną konfigurację logrotate niestandardową, zastosowana konfiguracja zostanie zachowana nawet, jeśli odznaczysz tę zmienną 
- przykład: - influxdb_custom_logrotate: | weekly missingok rotate 40 compress notifempty # Spowoduje to utworzenie pliku konfiguracyjnego logrotate jako: # /var/log/influxdb/*.log { # weekly # missingok # rotate 40 # compress # notifempty # }
 
- influxdb_management_hostname- domyślna wartość z influxdb_{user,policy,retention_policy}
- nazwa hosta do wywołań API
 
- influxdb_management_port- domyślna wartość z influxdb_{user,policy,retention_policy}
- port http do wywołań API
 
- influxdb_management_validate_certs- domyślna wartość z influxdb_{user,policy,retention_policy}
- czy potrzebujemy weryfikować certyfikat SSL dla wywołań API
 
- influxdb_management_proxies- domyślna wartość z influxdb_{user,policy,retention_policy}
- proxy HTTP(S) do użycia dla wywołań API
 
- influxdb_management_login_username- nazwa użytkownika do użycia dla wywołań API
- obowiązkowe jeśli influxdb_config['[http]']['auth-enabled']jest ustawione
- Ten użytkownik zostanie utworzony tylko raz i musi być nowym użytkownikiem
- Jeśli chcesz zmienić użytkownika po jego utworzeniu, użyj już istniejącego użytkownika admin.
 
- influxdb_management_login_password- hasło do użycia dla wywołań API
- obowiązkowe jeśli influxdb_config['[http]']['auth-enabled']jest ustawione
- Jeśli chcesz zmienić hasło po utworzeniu użytkownika admin:- Zmień hasło za pomocą CLI przed zmianą here
- Alternatywnie, możesz zmienić je w influxdb_users_to_create, ale bądź świadomy, że spowoduje to błąd, jeśli pozostaną użytkownicy do sprawdzenia, ale powinno działać, jeśli uruchomisz swój playbook po raz drugi.
 
 
- influxdb_management_retries- domyślna wartość z influxdb_{user,policy,retention_policy}
- liczba prób dla wywołań API
 
- influxdb_management_ssl- domyślna wartość z influxdb_{user,policy,retention_policy}
- użyj SSL dla wywołań API
 
- influxdb_management_timeout- domyślna wartość z influxdb_{user,policy,retention_policy}
- limit czasu dla wywołań API
 
- influxdb_management_udp_port- domyślna wartość z influxdb_{user,policy,retention_policy}
- port UDP do użycia dla wywołań API
 
- influxdb_management_use_udp- domyślna wartość z influxdb_{user,policy,retention_policy}
- czy musimy użyć UDP dla wywołań API
 
- influxdb_users_to_create- lista słowników do tworzenia użytkowników 
- odwołaj się do dokumentacji ansible w sprawie obowiązkowych opcji i kompatybilności wersji 
- przyznawanie uprawnień jest zapewnione przez niestandardową bibliotekę dołączoną do tej roli i zaktualizowaną przez ten PR 
- nieobecność klucza - grantsusunie wszystkie- GRANTSdla wskazanego użytkownika
- Przykład: - influxdb_users_to_create: - user_name: test user_password: test grants: - database: db_test privilege: READ - user_name: test2 user_password: test2 admin: true
 
- influxdb_users_to_delete- lista użytkowników do usunięcia
- Przykład:influxdb_users_to_delete: - test
 
- influxdb_retention_policies_to_create- lista polityk przechowywania do utworzenia 
- odwołaj się do dokumentacji ansible w sprawie obowiązkowych opcji i kompatybilności wersji 
- przykład: - influxdb_retention_policies_to_create: - database_name: db_test policy_name: test duration: 1h replication: 1
 
- influxdb_databases_to_create- lista baz danych do utworzenia
- przykłady:
 - influxdb_databases_to_create: - db_test
- influxdb_databases_to_delete- lista baz danych do usunięcia 
- przykłady: 
 - influxdb_databases_to_delete: - db_test
- influxdb_retention_policies_to_create- lista słowników parametrów polityk przechowywania 
- usuwanie polityk jeszcze nie jest wspierane 
- przykłady: 
 - influxdb_retention_policies_to_create: - database_name: db_test policy_name: test duration: 1h replication: 1
- influxdb_hide_log- domyślnie: true
- nie pokazuj logów dla wywołań API, aby uniknąć wycieku wrażliwych informacji
- ustaw na false, aby debugować
 
Przykładowy Playbook
- hosts: influxdb
  roles:
    - rockandska.influxdb
Testowanie lokalne
Preferowany sposób lokalnego testowania roli to użycie Docker i molecule (v2.x). Musisz zainstalować Docker na swoim systemie. Zobacz "Rozpocznij", aby znaleźć odpowiedni pakiet Docker dla swojego systemu. Używamy tox, aby uprościć proces testowania na wielu wersjach ansible. Aby zainstalować tox, wykonaj:
$ sudo pip install tox
# lub
$ pip install --user tox
Aby uruchomić testy na wszystkich wersjach ansible (OSTRZEŻENIE: może to zająć trochę czasu)
$ tox
Aby uruchomić niestandardowe polecenie moleku na niestandardowym środowisku tylko z domyślnym scenariuszem testowym:
$ tox -e py27-ansible25 -- molecule test -s default
Aby uzyskać więcej informacji na temat molecule przejdź do ich dokumentacji.
Jeśli chcesz uruchomić testy na zdalnym hoście docker, po prostu określ zmienną DOCKER_HOST, zanim uruchomisz testy tox.
Licencja
BSD
ansible-galaxy install rockandska.influxdb
