influxdb
ansible-роль-influxdb
Ansible роль для установки/настройки InfluxDB из бинарных файлов InfluxDB.
Доступно на Ansible Galaxy
Ansible Galaxy:
Требования к удаленным хостам
Все дистрибутивы
- logrotate
- python requests >= 1.0.0 (если используется управление пользователями, базами данных и политиками хранения, предоставляемое этой ролью)
- python influxdb >= 0.9.0 (если используется управление пользователями, базами данных и политиками хранения, предоставляемое этой ролью)
Debian / Ubuntu
- apt-transport-https
- gpg-agent
- ca-certificates
CentOS / RedHat
- gnupg2
Переменные роли
Параметры по умолчанию находятся в defaults/main.yml
---
###########
# Установка #
###########
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"
#################
# Настройка #
#################
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:
############
# 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:
#########
# Пользователи #
#########
influxdb_users_to_create: []
influxdb_users_to_delete: []
#############
# Базы данных #
#############
influxdb_databases_to_create: []
influxdb_databases_to_delete: []
############
# Политики #
############
influxdb_retention_policies_to_create: []
#########
# Отладка #
#########
influxdb_hide_log: true
Подробности
influxdb_version
- должна быть версия influxdb, доступная на https://dl.influxdata.com/influxdb/releases
- старые версии не отображаются на странице загрузок, но доступны по прямым ссылкам
influxdb_rpm_url
- URL пакета rpm
influxdb_rpm_sha256
- sha256 пакета rpm для проверки его целостности
- Доступно на странице загрузки InfluxDB для последнего релиза
influxdb_rpm_dest_path
- путь, куда загрузить пакет rpm
influxdb_deb_url
- URL пакета deb
influxdb_deb_sha256
- sha256 пакета deb для проверки его целостности
- Доступно на странице загрузки InfluxDB для последнего релиза
influxdb_deb_dest_path
- путь, куда загрузить пакет deb
influxdb_vars_files
- список файлов с переменными, используемых для переопределения параметров по умолчанию, если это необходимо
- если использовать относительный путь, разместите эти файлы рядом с вашим плейбуком в каталоге
vars
- пример:
influxdb_vars_files: - settings.yml
influxdb_config_tpl
- путь к шаблону конфигурации influxdb
- если хотите использовать свой шаблон
- добавьте свой шаблон рядом с вашим плейбуком в каталоге
templates
- используйте другой путь, отличающийся от стандартного
- добавьте свой шаблон рядом с вашим плейбуком в каталоге
influxdb_config
словарь, представляющий пользовательскую конфигурацию influxdb для применения
поместите специальные ключи в двойные кавычки (пример: "[meta]")
Если используется пользовательская конфигурация, необходимо применить некоторые минимальные разделы в соответствии с influxdb/#12140 и они приведены в примере ниже
примеры:
influxdb_config: # Глобальный раздел конфигурации в формате 'ключ: значение' reporting-disabled: true # Минимально необходимые разделы в формате 'раздел: { ключ: значение, ключ: значение }' "[meta]": dir: /var/lib/influxdb/meta "[data]": dir: /var/lib/influxdb/data wal-dir: /var/lib/influxdb/wal # Другие разделы в формате 'раздел: { ключ: значение, ключ: значение }' "[http]": auth-enabled: true "[[graphite]]": enable: true batch-size: 5000
influxdb_systemd_override_tpl
- путь к шаблону переопределения systemd для influxdb
- если хотите использовать свой шаблон
- добавьте свой шаблон рядом с вашим плейбуком в каталоге
templates
- используйте другой путь, отличающийся от стандартного
- добавьте свой шаблон рядом с вашим плейбуком в каталоге
influxdb_systemd_override
- словарь, представляющий конфигурацию переопределения systemd
- первый уровень используется для раздела ini
- второй уровень используется для ключа / значения
- пример:
influxdb_systemd_override: Service: LimitNOFILE: 30000 # В результате будет получен файл переопределения systemd в виде: # [Service] # LimitNOFILE=30000
influxdb_custom_logrotate_tpl
- путь к шаблону кастомного logrotate для influxdb
- если хотите использовать свой шаблон
- добавьте свой шаблон рядом с вашим плейбуком в каталоге
templates
- используйте другой путь, отличающийся от стандартного
- добавьте свой шаблон рядом с вашим плейбуком в каталоге
influxdb_custom_logrotate
многострочная строка с опциями logrotate для логов influxdb
заменяет конфигурацию по умолчанию
/!\ Имейте в виду, что если вы замените конфигурацию logrotate по умолчанию на пользовательскую, примененная конфигурация останется, даже если вы уберете эту переменную
пример:
influxdb_custom_logrotate: | weekly missingok rotate 40 compress notifempty # В результате получится файл конфигурации logrotate в виде: # /var/log/influxdb/*.log { # weekly # missingok # rotate 40 # compress # notifempty # }
influxdb_management_hostname
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- имя хоста для API вызовов
influxdb_management_port
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- HTTP порт для API вызовов
influxdb_management_validate_certs
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- нужно ли проверять SSL-сертификат для API вызовов
influxdb_management_proxies
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- HTTP(S) прокси, используемый для API вызовов
influxdb_management_login_username
- имя пользователя для API вызовов
- обязательно, если
influxdb_config['[http]']['auth-enabled']
установлено - Этот пользователь будет создан только один раз и должен быть не существующим ранее пользователем
- Если хотите изменить пользователя после его создания, используйте уже существующего
admin
.
influxdb_management_login_password
- пароль для API вызовов
- обязательно, если
influxdb_config['[http]']['auth-enabled']
установлено - Если хотите изменить пароль после создания пользователя
admin
:- Измените пароль через CLI перед изменением его здесь
- Или можно изменить его в
influxdb_users_to_create
, но будьте осторожны, так как это вызовет ошибку, если есть оставшиеся пользователи, которые необходимо проверить, но должно сработать, если вы повторно запустите свой плейбук.
influxdb_management_retries
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- количество попыток для API вызовов
influxdb_management_ssl
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- использовать SSL для API вызовов
influxdb_management_timeout
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- таймаут для API вызовов
influxdb_management_udp_port
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- UDP порт для API вызовов
influxdb_management_use_udp
- значение по умолчанию из параметров модуля influxdb_{user,policy,retention_policy}
- нужно ли использовать UDP для API вызовов
influxdb_users_to_create
список словарей для создания пользователей
обратитесь к документации ansible для обязательных опций и совместимости версий
привилегии предоставляются специальной библиотекой, входящей в эту роль и обновленной из PR
отсутствие ключа
grants
удаляет всеGRANTS
для указанного пользователяПример:
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
- список пользователей для удаления
- Пример:
influxdb_users_to_delete: - test
influxdb_retention_policies_to_create
список политик хранения для создания
обратитесь к документации ansible для обязательных опций и совместимости версий
пример:
influxdb_retention_policies_to_create: - database_name: db_test policy_name: test duration: 1h replication: 1
influxdb_databases_to_create
- список баз данных для создания
- пример:
influxdb_databases_to_create: - db_test
influxdb_databases_to_delete
список баз данных для удаления
пример:
influxdb_databases_to_delete: - db_test
influxdb_retention_policies_to_create
список параметров политик хранения
удаление политик пока не поддерживается
пример:
influxdb_retention_policies_to_create: - database_name: db_test policy_name: test duration: 1h replication: 1
influxdb_hide_log
- значение по умолчанию: true
- не показывать лог для API вызовов, чтобы избежать утечки конфиденциальной информации
- установите в false для отладки
Пример плейбука
- hosts: influxdb
roles:
- rockandska.influxdb
Локальное тестирование
Предпочтительный способ локального тестирования роли — использование Docker и molecule (v2.x). Вам нужно будет установить Docker на вашу систему. Смотрите "Начать" для получения подходящего пакета Docker для вашей системы. Мы используем tox для упрощения процесса тестирования на нескольких версиях ansible. Чтобы установить tox выполните:
$ sudo pip install tox
# или
$ pip install --user tox
Чтобы запустить тесты на всех версиях ansible (ВНИМАНИЕ: это может занять некоторое время)
$ tox
Чтобы запустить пользовательскую команду молекул в пользовательской среде только с тестовым сценарием по умолчанию:
$ tox -e py27-ansible25 -- molecule test -s default
Для получения дополнительной информации о molecule обратитесь к их документации.
Если хотите запустить тесты на удаленном docker хосте, просто укажите переменную DOCKER_HOST
перед запуском тестов tox.
Лицензия
BSD
ansible-galaxy install rockandska/ansible-role-influxdb