observability.svc.plus/roles/deepflow_clickhouse_s3/tasks/main.yml
2026-03-17 08:16:32 +08:00

97 lines
3.1 KiB
YAML

---
#----------------------------------------------------------------#
# Preflight [deepflow_clickhouse_check]
#----------------------------------------------------------------#
- name: check deepflow clickhouse+s3 prerequisites
tags: deepflow_clickhouse_check
block:
- name: assert docker is enabled
assert:
that:
- docker_enabled is defined
- docker_enabled | bool
fail_msg: "docker_enabled=true is required for deepflow_clickhouse_s3 role"
- name: check docker binary exists
command: docker --version
changed_when: false
#----------------------------------------------------------------#
# Configure [deepflow_clickhouse_conf]
#----------------------------------------------------------------#
- name: configure deepflow clickhouse+s3 stack
tags: deepflow_clickhouse_conf
block:
- name: create deepflow clickhouse+s3 directories
file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: '0755'
loop:
- "{{ deepflow_clickhouse_s3_stack_dir }}"
- "{{ deepflow_data }}"
- "{{ deepflow_clickhouse_data }}"
- "{{ deepflow_clickhouse_config_dir }}"
- "{{ deepflow_s3_data }}"
when: item != deepflow_s3_data or deepflow_s3_enabled | bool
- name: render deepflow clickhouse+s3 environment
template:
src: deepflow-clickhouse-s3.env.j2
dest: "{{ deepflow_clickhouse_s3_env_file }}"
owner: root
group: root
mode: '0640'
- name: render deepflow clickhouse config
template:
src: clickhouse-config.d/retention.xml.j2
dest: "{{ deepflow_clickhouse_config_dir }}/retention.xml"
owner: root
group: root
mode: '0644'
- name: render deepflow clickhouse+s3 docker compose
template:
src: docker-compose.yml.j2
dest: "{{ deepflow_clickhouse_s3_compose_file }}"
owner: root
group: root
mode: '0644'
- name: install deepflow clickhouse+s3 systemd unit
template:
src: deepflow-clickhouse-s3.svc
dest: "{{ systemd_dir }}/deepflow-clickhouse-s3.service"
owner: root
group: root
mode: '0644'
#----------------------------------------------------------------#
# Launch [deepflow_clickhouse_up]
#----------------------------------------------------------------#
- name: launch deepflow clickhouse+s3 stack
tags: deepflow_clickhouse_up
block:
- name: start deepflow clickhouse+s3 service
systemd:
name: deepflow-clickhouse-s3
state: restarted
enabled: yes
daemon_reload: yes
- name: wait for deepflow clickhouse tcp port
wait_for:
host: 127.0.0.1
port: "{{ deepflow_clickhouse_tcp_port }}"
timeout: 60
- name: wait for deepflow minio api port
wait_for:
host: 127.0.0.1
port: "{{ deepflow_minio_api_port }}"
timeout: 60
when: deepflow_s3_enabled | bool