rockandska.influxdb

ansible-role-influxdb

Rola Ansible do instalacji/konfiguracji InfluxDB z plików binarnych InfluxDB.
Dostępna na Ansible Galaxy

Ansible Galaxy:
Galaxy Score

Travis Build :
Build Status

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

  • 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
  • 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
  • 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
  • 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 wszystkie GRANTS dla 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

O projekcie

InfluxDB installation / configuration

Zainstaluj
ansible-galaxy install rockandska.influxdb
Licencja
Unknown
Pobrania
124
Właściciel