rockandska.influxdb
ansible-role-influxdb
Rol de Ansible para instalar/configurar InfluxDB a partir de binarios de InfluxDB.
Disponible en Ansible Galaxy
Ansible Galaxy:
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
- debe ser una versión de influxdb disponible en https://dl.influxdata.com/influxdb/releases
- versiones antiguas no se muestran en la página de descarga pero están disponibles desde enlaces directos
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
- agregue su plantilla junto a su libro de jugadas en un directorio
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
- agregue su plantilla junto a su libro de jugadas en un directorio
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
- agregue su plantilla junto a su libro de jugadas en un directorio
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 losGRANTS
para el usuario especificadoEjemplo:
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
ansible-galaxy install rockandska.influxdb