# 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: '^ [^<>]*' replace: ' {{ ch_port }}' backup: yes - name: Change clickhouse password replace: path: /etc/clickhouse-server/users.xml regexp: '^\s+[^<>]*' replace: ' {{ ch_password }}' backup: yes - name: Allow remote hosts connect to clickhouse (config.xml) lineinfile: path: /etc/clickhouse-server/config.xml insertafter: '' line: ' ::' state: present backup: yes - name: Enlarge max mem usage (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '^\s+0\.\d+' replace: ' 2' backup: yes - name: Allow remote hosts connect to clickhouse (users.xml) replace: path: /etc/clickhouse-server/users.xml regexp: '::/0\n\s+' replace: '::/0\n 0.0.0.0\n ' backup: yes - name: Allow User can create other users and grant rights to them (users.xml) replace: path: /etc/clickhouse-server/users.xml regexp: '' replace: '1' backup: yes - name: Allow drop large tables (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '0' - name: Allow drop large partitions (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '0' - name: Set TTL of query_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' - name: Set TTL of trace_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' - name: Set TTL of query_thread_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' - name: Set TTL of query_views_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' - name: Set TTL of part_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' - name: Set TTL of metric_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' - name: Set TTL of asynchronous_metric_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' # - name: Set TTL of opentelemetry_span_log (config.xml) # replace: # path: /etc/clickhouse-server/config.xml # regexp: '' # replace: '\n event_date + INTERVAL 14 DAY DELETE' - name: Set TTL of crash_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' - name: Set TTL of session_log (config.xml) replace: path: /etc/clickhouse-server/config.xml regexp: '' replace: '\n event_date + INTERVAL 14 DAY DELETE' - 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