- ClickHouse v23.5 (note: yes, it could be relaxed, but I just don't think that it worth it)
- Ansible 2.11+
It is better to use the latest ClickHouse stable release.
Details can be read here.
For a basic standalone setup it is enough to do the following:
Add requirements:
# requirements.yml
---
roles:
- name: clickhouse
scm: git
src: [email protected]:semrush/ansible-role-clickhouse.git
version: 1.0.0It is also recommended to add role to .gitignore (or install it outside of
the repository), this will allow to keep things clean, i.e. you will not
randomly edit the roles file and later ansible-galaxy may overwrite them
(though there is one exception to this rule -
ansible-pull):
# .gitignore
/roles/clickhouse
And install the role:
ansible-galaxy install -r requirements.yml -p roles clickhouseAdd a simple playbook:
# clickhouse.yml
---
- name: Install ClickHouse
hosts: all
gather_facts: yes
roles:
- clickhouseAnd run ansible:
ansible-playbook --become --diff clickhouse.yml
# ansible-playbook --become --diff -i CLICKHOUSE_HOST, clickhouse.ymlHere is an example patch, or the folder itself
See this page.
-
Developed with extensibility in mind (at least I hope)
-
Using YAML for configurations, and even though the syntax somewhere is tricky, it shows itself good.
For instance
jinja2natively renderdictinYAML, so we don't need to add additional loops over keys/values in the templates. -
Provide sane defaults:
-
Enabled
*_logtables by default - usual problem for existing roles is that they have a copy ofconfig.xmlfrom a specific point in time, and don't have new system tables. -
TTL for
*_logtables -
Enabled prometheus exported by default
-
Has extra metrics via
http_handlers
-
See this page.
See this page.
See this page.
See this page.
You can create an issue here.
Please, add yourself to the adopters list (just send us merge request)!