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
grants
usunie wszystkieGRANTS
dla wskazanego użytkownikaPrzykł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