nl2go.clickhouse
Rol de Ansible: ClickHouse
Un rol de Ansible que gestiona la instalación y configuración de ClickHouse.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
clickhouse_conf_dir: /etc/clickhouse-server
Directorio de configuración del servidor.
clickhouse_loglevel: information
Nivel de registro del servidor.
clickhouse_profiles:
default:
max_memory_usage: 10000000000
use_uncompressed_cache: 0
load_balancing: "random"
Un perfil de configuración es una colección de configuraciones agrupadas bajo el mismo nombre.
clickhouse_profiles:
default:
password: "qwerty"
profile: "default"
quota: "default"
La sección users
del archivo de configuración user.xml
contiene la configuración de los usuarios.
clickhouse_profiles:
default:
intervals:
- duration: 3600
queries: 0
errors: 0
result_rows: 0
read_rows: 0
execution_time: 0
La configuración de cuota es para limitar el uso de recursos durante un período de tiempo o rastrear el uso de recursos.
clickhouse_databases:
- these_metrics
- other_metrics
- imported_data
clickhouse_databases es una lista de las bases de datos que deseas crear en ClickHouse.
clickhouse_zookeeper_hosts:
- 1.2.3.4
- 1.2.3.5
clickhouse_zookeeper_hosts es la lista de nodos de Zookeeper a los que ClickHouse se conectará. Necesitarás esto para la replicación.
clickhouse_zookeeper_port: 2181
clickhouse_zookeeper_port es el puerto de los nodos de Zookeeper a los que ClickHouse se conectará. Necesitarás esto para la replicación.
Para fines de depuración, es mejor comenzar con un solo host y luego agregar más hosts.
clickhouse_zookeeper_credentials en el formato username:password
se utiliza para autenticar contra Zookeeper.
clickhouse_path: Ruta al directorio donde ClickHouse almacenará datos.
clickhouse_log_directory: Ruta para los registros de errores y normales.
clickhouse_clusters: es la lista de clústeres que también contiene los fragmentos que son parte de cada clúster.
clickhouse_clusters:
distributed_cluster_1:
shard1:
- { host: "host_1", port: 9000 }
- { host: "host_2", port: 9000 }
shard2:
- { host: "host_3", port: 9000 }
- { host: "host_4", port: 9000 }
distributed_cluster_2:
shard1:
- { host: "host_5", port: 9000 }
- { host: "host_6", port: 9000 }
shard2:
- { host: "host_7", port: 9000 }
- { host: "host_8", port: 9000 }
Para el archivo macros.xml, necesitas completar las variables a continuación:
clickhouse_cluster: es el nombre del clúster que se usa para replicación.
clickhouse_distributed_cluster: es el nombre del clúster distribuido definido en clickhouse_clusters.
clickhouse_shard: es el número de fragmento (01, 02) que es parte de la replicación dentro de un fragmento.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: all
roles:
- nl2go.clickhouse
Desarrollo
Usa docker-molecule siguiendo las instrucciones para ejecutar Molecule
o instala Molecule localmente (no recomendado, podrían aparecer conflictos de versiones).
Proporciona el token de Hetzner Cloud:
export HCLOUD_TOKEN=123abc456efg
Usa lo siguiente para ejecutar pruebas:
molecule test --all
Mantenedores
Licencia
Consulta el archivo LICENSE.md para más detalles.
Información del Autor
Este rol fue creado en 2020 por Sendinblue GmbH.
An Ansible Role that manages installation and configuration of Yandex Clickhouse
ansible-galaxy install nl2go.clickhouse