main.yml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. # clickhouse 的安装方式比较简单,只需要分ansible_distribution,
  2. # 不需要区分详细的 ansible_distribution_major_version, 以及 ansible_architecture
  3. # 因此简单复用。如果后续clickhouse有重大版本升级,或者对于os有不同的安装变更,此处再随之改变
  4. - block:
  5. - name: Import OS Specific tasks
  6. include_tasks: "{{ item }}"
  7. with_first_found:
  8. - files:
  9. - "{{ ansible_distribution | lower |replace(' ', '_')}}.yml"
  10. - defaults.yml
  11. paths:
  12. - os
  13. - name: Ensure clickhouse-server installed
  14. package:
  15. name: clickhouse-server
  16. state: present
  17. - name: Ensure clickhouse-client installed
  18. package:
  19. name: clickhouse-client
  20. state: present
  21. - name: Ensure group "clickhouse" exists
  22. ansible.builtin.group:
  23. name: clickhouse
  24. state: present
  25. - name: create clickhouse user and password in os if not present
  26. user:
  27. name: clickhouse
  28. group: clickhouse
  29. shell: /bin/false
  30. create_home: false
  31. state: present
  32. - name: Mkdir for data path
  33. ansible.builtin.file:
  34. path: /opt/clickhouse
  35. state: directory
  36. owner: clickhouse
  37. group: clickhouse
  38. - name: Change data path
  39. replace:
  40. path: /etc/clickhouse-server/config.xml
  41. regexp: 'path>/var/lib/clickhouse/'
  42. replace: 'path>/opt/clickhouse/'
  43. backup: yes
  44. - name: Change default port
  45. replace:
  46. path: /etc/clickhouse-server/config.xml
  47. regexp: '^ <tcp_port>[^<>]*</tcp_port>'
  48. replace: ' <tcp_port>{{ ch_port }}</tcp_port>'
  49. backup: yes
  50. - name: Change clickhouse password
  51. replace:
  52. path: /etc/clickhouse-server/users.xml
  53. regexp: '^\s+<password>[^<>]*</password>'
  54. replace: ' <password>{{ ch_password }}</password>'
  55. backup: yes
  56. - name: Allow remote hosts connect to clickhouse (config.xml)
  57. lineinfile:
  58. path: /etc/clickhouse-server/config.xml
  59. insertafter: '<!-- <listen_host>::</listen_host> -->'
  60. line: ' <listen_host>::</listen_host>'
  61. state: present
  62. backup: yes
  63. - name: Enlarge max mem usage (config.xml)
  64. replace:
  65. path: /etc/clickhouse-server/config.xml
  66. regexp: '^\s+<max_server_memory_usage_to_ram_ratio>0\.\d+</max_server_memory_usage_to_ram_ratio>'
  67. replace: ' <max_server_memory_usage_to_ram_ratio>2</max_server_memory_usage_to_ram_ratio>'
  68. backup: yes
  69. - name: Allow remote hosts connect to clickhouse (users.xml)
  70. replace:
  71. path: /etc/clickhouse-server/users.xml
  72. regexp: '<ip>::/0</ip>\n\s+</networks>'
  73. replace: '<ip>::/0</ip>\n <ip>0.0.0.0</ip>\n </networks>'
  74. backup: yes
  75. - name: Allow User can create other users and grant rights to them (users.xml)
  76. replace:
  77. path: /etc/clickhouse-server/users.xml
  78. regexp: '<!-- <access_management>1</access_management> -->'
  79. replace: '<access_management>1</access_management>'
  80. backup: yes
  81. - name: Allow drop large tables (config.xml)
  82. replace:
  83. path: /etc/clickhouse-server/config.xml
  84. regexp: '<!-- <max_table_size_to_drop>0</max_table_size_to_drop> -->'
  85. replace: '<max_table_size_to_drop>0</max_table_size_to_drop>'
  86. - name: Allow drop large partitions (config.xml)
  87. replace:
  88. path: /etc/clickhouse-server/config.xml
  89. regexp: '<!-- <max_partition_size_to_drop>0</max_partition_size_to_drop> -->'
  90. replace: '<max_partition_size_to_drop>0</max_partition_size_to_drop>'
  91. - name: Set TTL of query_log (config.xml)
  92. replace:
  93. path: /etc/clickhouse-server/config.xml
  94. regexp: '<query_log>'
  95. replace: '<query_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  96. - name: Set TTL of trace_log (config.xml)
  97. replace:
  98. path: /etc/clickhouse-server/config.xml
  99. regexp: '<trace_log>'
  100. replace: '<trace_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  101. - name: Set TTL of query_thread_log (config.xml)
  102. replace:
  103. path: /etc/clickhouse-server/config.xml
  104. regexp: '<query_thread_log>'
  105. replace: '<query_thread_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  106. - name: Set TTL of query_views_log (config.xml)
  107. replace:
  108. path: /etc/clickhouse-server/config.xml
  109. regexp: '<query_views_log>'
  110. replace: '<query_views_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  111. - name: Set TTL of part_log (config.xml)
  112. replace:
  113. path: /etc/clickhouse-server/config.xml
  114. regexp: '<part_log>'
  115. replace: '<part_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  116. - name: Set TTL of metric_log (config.xml)
  117. replace:
  118. path: /etc/clickhouse-server/config.xml
  119. regexp: '<metric_log>'
  120. replace: '<metric_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  121. - name: Set TTL of asynchronous_metric_log (config.xml)
  122. replace:
  123. path: /etc/clickhouse-server/config.xml
  124. regexp: '<asynchronous_metric_log>'
  125. replace: '<asynchronous_metric_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  126. # - name: Set TTL of opentelemetry_span_log (config.xml)
  127. # replace:
  128. # path: /etc/clickhouse-server/config.xml
  129. # regexp: '<opentelemetry_span_log>'
  130. # replace: '<opentelemetry_span_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  131. - name: Set TTL of crash_log (config.xml)
  132. replace:
  133. path: /etc/clickhouse-server/config.xml
  134. regexp: '<crash_log>'
  135. replace: '<crash_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  136. - name: Set TTL of session_log (config.xml)
  137. replace:
  138. path: /etc/clickhouse-server/config.xml
  139. regexp: '<session_log>'
  140. replace: '<session_log>\n <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>'
  141. - name: restart clickhouse-server
  142. service:
  143. name: clickhouse-server
  144. state: restarted
  145. enabled: yes
  146. become: yes
  147. when:
  148. - offline_data_path is defined
  149. - offline_data_path | length > 0