rockandska.influxdb

ansible-role-influxdb

Rol de Ansible para instalar/configurar InfluxDB a partir de binarios de InfluxDB.
Disponible en Ansible Galaxy

Ansible Galaxy:
Puntuación de Galaxy

Construcción de Travis :
Estado de la Construcción

Requisitos en hosts remotos

Todas las distribuciones

  • logrotate
  • python requests >= 1.0.0 ( si se utilizan usuarios, bases de datos, políticas de retención gestionadas por este rol )
  • python influxdb >= 0.9.0 ( si se utilizan usuarios, bases de datos, políticas de retención gestionadas por este rol )

Debian / Ubuntu

  • apt-transport-https
  • gpg-agent
  • ca-certificates

CentOS / RedHat

  • gnupg2

Variables del Rol

Las variables predeterminadas están en defaults/main.yml

---
###########
# Instalar #
###########
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"

#################
# Configuración Personalizada #
#################
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:

############
# Usuario 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:

#########
# Usuarios #
#########
influxdb_users_to_create: []
influxdb_users_to_delete: []

#############
# Bases de datos #
#############
influxdb_databases_to_create: []
influxdb_databases_to_delete: []

############
# Políticas #
############
influxdb_retention_policies_to_create: []

#########
# Depuración #
#########
influxdb_hide_log: true

Detalles

  • influxdb_version

  • influxdb_rpm_url

    • enlace del paquete rpm
  • influxdb_rpm_sha256

    • sha256 del paquete rpm para verificar su integridad
    • Disponible en la página de descarga de InfluxDB para la última versión
  • influxdb_rpm_dest_path

    • ruta donde se descargará el paquete rpm
  • influxdb_deb_url

    • enlace del paquete deb
  • influxdb_deb_sha256

    • sha256 del paquete deb para verificar su integridad
    • Disponible en la página de descarga de InfluxDB para la última versión
  • influxdb_deb_dest_path

    • ruta donde se descargará el paquete deb
  • influxdb_vars_files

    • lista de archivos de variables utilizados para sobrescribir las variables predeterminadas si es necesario
    • si se utiliza una ruta relativa, coloque esos archivos junto a su libro de jugadas en el directorio vars
    • ejemplo:
      influxdb_vars_files:
        - settings.yml
      
  • influxdb_config_tpl

    • ruta a la plantilla de configuración de influxdb
    • si desea usar su propia plantilla
      • agregue su plantilla junto a su libro de jugadas en un directorio templates
      • use una ruta diferente a la predeterminada
  • influxdb_config

    • un diccionario que representa la configuración personalizada de influxdb a aplicar

    • coloque las claves especiales entre comillas dobles (ejemplo: "[meta]")

    • Si utiliza una configuración personalizada, se deben aplicar algunas secciones mínimas debido a influxdb/#12140 y se muestran en el ejemplo a continuación

    • ejemplos:

      influxdb_config:
      # Sección de configuración global como 'clave: valor'
        reporting-disabled: true
      # Secciones mínimas requeridas como 'sección: { clave: valor, clave: valor }'
        "[meta]":
          dir: /var/lib/influxdb/meta
        "[data]":
          dir: /var/lib/influxdb/data
          wal-dir: /var/lib/influxdb/wal
      # Otras secciones en el formato 'sección: { clave: valor, clave: valor }'
        "[http]":
          auth-enabled: true
        "[[graphite]]":
          enable: true
          batch-size: 5000
      
  • influxdb_systemd_override_tpl

    • ruta a la plantilla de anulación de systemd para influxdb
    • si desea usar su propia plantilla
      • agregue su plantilla junto a su libro de jugadas en un directorio templates
      • use una ruta diferente a la predeterminada
  • influxdb_systemd_override

    • un diccionario que representa la configuración de anulación de systemd
    • el primer nivel se utiliza para la sección ini
    • el segundo nivel se utiliza para la clave / valor
    • ejemplo:
      influxdb_systemd_override:
        Service:
          LimitNOFILE: 30000
      # Resultará en el archivo de anulación de systemd como:
      # [Service]
      # LimitNOFILE=30000
      
  • influxdb_custom_logrotate_tpl

    • ruta a la plantilla de logrotate personalizada para influxdb
    • si desea usar su propia plantilla
      • agregue su plantilla junto a su libro de jugadas en un directorio templates
      • use una ruta diferente a la predeterminada
  • influxdb_custom_logrotate

    • una cadena de múltiples líneas con las opciones de logrotate para los registros de influxdb

    • reemplazará la configuración predeterminada

    • /!\ Tenga en cuenta que si reemplaza la configuración de logrotate predeterminada por una personalizada, la configuración aplicada persistirá incluso si desactiva esta variable

    • ejemplo:

      influxdb_custom_logrotate: |
        weekly
        missingok
        rotate 40
        compress
        notifempty
      # Resultará en el archivo de configuración de logrotate como:
      # /var/log/influxdb/*.log {
      #   weekly
      #   missingok
      #   rotate 40
      #   compress
      #   notifempty
      # }
      
  • influxdb_management_hostname

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • nombre del host para llamadas a la API
  • influxdb_management_port

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • puerto http para llamadas a la API
  • influxdb_management_validate_certs

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • necesitamos validar el certificado SSL para llamadas a la API
  • influxdb_management_proxies

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • proxy HTTP(S) a usar para llamadas a la API
  • influxdb_management_login_username

    • nombre de usuario a usar para llamadas a la API
    • obligatorio si influxdb_config['[http]']['auth-enabled'] está habilitado
    • Este usuario se creará solo una vez y debe ser un usuario que no existe
    • Si desea cambiar el usuario después de su creación, use un usuario admin existente.
  • influxdb_management_login_password

    • contraseña a usar para llamadas a la API
    • obligatorio si influxdb_config['[http]']['auth-enabled'] está habilitado
    • Si desea cambiar la contraseña después de la creación del usuario admin:
      • Cambie la contraseña a través de la CLI antes de cambiarla aquí
      • Alternativamente, podría cambiarla en influxdb_users_to_create, pero tenga en cuenta que generará un error si tiene usuarios restantes que necesitan ser verificados, aunque funcionará si vuelve a ejecutar su libro de jugadas una segunda vez.
  • influxdb_management_retries

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • número de reintentos para llamadas a la API
  • influxdb_management_ssl

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • usar SSL para llamadas a la API
  • influxdb_management_timeout

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • tiempo de espera para llamadas a la API
  • influxdb_management_udp_port

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • puerto UDP a usar para llamadas a la API
  • influxdb_management_use_udp

    • predeterminado del valor de influxdb_{user,policy,retention_policy} módulo
    • necesitamos usar UDP para llamadas a la API
  • influxdb_users_to_create

    • lista de diccionarios para la creación de usuarios

    • consulte documentación de ansible para opciones obligatorias y compatibilidad de versiones

    • los privilegios de concesión son proporcionados por una biblioteca personalizada que se incluye con este rol y actualizada desde este PR

    • la ausencia de la clave grants eliminará todos los GRANTS para el usuario especificado

    • Ejemplo:

      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 de usuarios a eliminar
    • Ejemplo:
      influxdb_users_to_delete:
        - test
      
  • influxdb_retention_policies_to_create

    • lista de políticas de retención a crear

    • consulte documentación de ansible para opciones obligatorias y compatibilidad de versiones

    • ejemplo:

      influxdb_retention_policies_to_create:
        - database_name: db_test
          policy_name: test
          duration: 1h
          replication: 1
      
  • influxdb_databases_to_create

    • lista de bases de datos a crear
    • ejemplos:
    influxdb_databases_to_create:
      - db_test
    
  • influxdb_databases_to_delete

    • lista de bases de datos a eliminar

    • ejemplos:

    influxdb_databases_to_delete:
      - db_test
    
  • influxdb_retention_policies_to_create

    • lista de parámetros de políticas de retención como diccionarios

    • la eliminación de políticas no es compatible aún

    • ejemplos:

    influxdb_retention_policies_to_create:
      - database_name: db_test
        policy_name: test
        duration: 1h
        replication: 1  
    
  • influxdb_hide_log

    • predeterminado: true
    • no mostrar el registro de llamadas a la API para evitar filtraciones de información sensible
    • configúrelo en falso para depuración

Ejemplo de Libro de Jugadas

- hosts: influxdb
  roles:
    - rockandska.influxdb

Pruebas Locales

La forma preferida de probar el rol localmente es utilizar Docker y molecule (v2.x). Tendrá que instalar Docker en su sistema. Consulte "Comenzar" para un paquete de Docker adecuado para su sistema. Estamos utilizando tox para simplificar el proceso de pruebas en múltiples versiones de ansible. Para instalar tox, ejecute:

$ sudo pip install tox
# o
$ pip install --user tox

Para ejecutar pruebas en todas las versiones de ansible (ADVERTENCIA: esto puede tardar un tiempo)

$ tox

Para ejecutar un comando de molécula personalizado en un entorno personalizado con solo el escenario de prueba predeterminado:

$ tox -e py27-ansible25 -- molecule test -s default

Para más información sobre molécula, consulte su documentación.

Si desea ejecutar pruebas en un host docker remoto, simplemente especifique la variable DOCKER_HOST antes de ejecutar las pruebas de tox.

Licencia

BSD

Acerca del proyecto

InfluxDB installation / configuration

Instalar
ansible-galaxy install rockandska.influxdb
Licencia
Unknown
Descargas
124
Propietario