| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- # clickhouse 的安装方式比较简单,只需要分ansible_distribution,
- # 不需要区分详细的 ansible_distribution_major_version, 以及 ansible_architecture
- # 因此简单复用。如果后续clickhouse有重大版本升级,或者对于os有不同的安装变更,此处再随之改变
- - block:
- - name: Import OS Specific tasks
- include_tasks: "{{ item }}"
- with_first_found:
- - files:
- - "{{ ansible_distribution | lower |replace(' ', '_')}}.yml"
- - defaults.yml
- paths:
- - os
- - name: Ensure clickhouse-server installed
- package:
- name: clickhouse-server
- state: present
- - name: Ensure clickhouse-client installed
- package:
- name: clickhouse-client
- state: present
- - name: Ensure group "clickhouse" exists
- ansible.builtin.group:
- name: clickhouse
- state: present
- - name: create clickhouse user and password in os if not present
- user:
- name: clickhouse
- group: clickhouse
- shell: /bin/false
- create_home: false
- state: present
- - name: Mkdir for data path
- ansible.builtin.file:
- path: /opt/clickhouse
- state: directory
- owner: clickhouse
- group: clickhouse
- - name: Change data path
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: 'path>/var/lib/clickhouse/'
- replace: 'path>/opt/clickhouse/'
- backup: yes
- - name: Change default port
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '^ <tcp_port>[^<>]*</tcp_port>'
- replace: ' <tcp_port>{{ ch_port }}</tcp_port>'
- backup: yes
- - name: Change clickhouse password
- replace:
- path: /etc/clickhouse-server/users.xml
- regexp: '^\s+<password>[^<>]*</password>'
- replace: ' <password>{{ ch_password }}</password>'
- backup: yes
- - name: Allow remote hosts connect to clickhouse (config.xml)
- lineinfile:
- path: /etc/clickhouse-server/config.xml
- insertafter: '<!-- <listen_host>::</listen_host> -->'
- line: ' <listen_host>::</listen_host>'
- state: present
- backup: yes
- - name: Enlarge max mem usage (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '^\s+<max_server_memory_usage_to_ram_ratio>0\.\d+</max_server_memory_usage_to_ram_ratio>'
- replace: ' <max_server_memory_usage_to_ram_ratio>2</max_server_memory_usage_to_ram_ratio>'
- backup: yes
- - name: Allow remote hosts connect to clickhouse (users.xml)
- replace:
- path: /etc/clickhouse-server/users.xml
- regexp: '<ip>::/0</ip>\n\s+</networks>'
- replace: '<ip>::/0</ip>\n <ip>0.0.0.0</ip>\n </networks>'
- backup: yes
- - name: Allow User can create other users and grant rights to them (users.xml)
- replace:
- path: /etc/clickhouse-server/users.xml
- regexp: '<!-- <access_management>1</access_management> -->'
- replace: '<access_management>1</access_management>'
- backup: yes
- - name: Allow drop large tables (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<!-- <max_table_size_to_drop>0</max_table_size_to_drop> -->'
- replace: '<max_table_size_to_drop>0</max_table_size_to_drop>'
- - name: Allow drop large partitions (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<!-- <max_partition_size_to_drop>0</max_partition_size_to_drop> -->'
- replace: '<max_partition_size_to_drop>0</max_partition_size_to_drop>'
- - name: Set TTL of query_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<query_log>'
- replace: '<query_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: Set TTL of trace_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<trace_log>'
- replace: '<trace_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: Set TTL of query_thread_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<query_thread_log>'
- replace: '<query_thread_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: Set TTL of query_views_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<query_views_log>'
- replace: '<query_views_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: Set TTL of part_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<part_log>'
- replace: '<part_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: Set TTL of metric_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<metric_log>'
- replace: '<metric_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: Set TTL of asynchronous_metric_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<asynchronous_metric_log>'
- replace: '<asynchronous_metric_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- # - name: Set TTL of opentelemetry_span_log (config.xml)
- # replace:
- # path: /etc/clickhouse-server/config.xml
- # regexp: '<opentelemetry_span_log>'
- # replace: '<opentelemetry_span_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: Set TTL of crash_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<crash_log>'
- replace: '<crash_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: Set TTL of session_log (config.xml)
- replace:
- path: /etc/clickhouse-server/config.xml
- regexp: '<session_log>'
- replace: '<session_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
- - name: restart clickhouse-server
- service:
- name: clickhouse-server
- state: restarted
- enabled: yes
- become: yes
- when:
- - offline_data_path is defined
- - offline_data_path | length > 0
|