add thanos role
This commit is contained in:
		
							
								
								
									
										113
									
								
								roles/thanos/defaults/main.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								roles/thanos/defaults/main.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
			
		||||
---
 | 
			
		||||
thanos_go_arch_map:
 | 
			
		||||
  i386: '386'
 | 
			
		||||
  x86_64: 'amd64'
 | 
			
		||||
 | 
			
		||||
thanos_go_arch: "{{ thanos_go_arch_map[ansible_architecture] | default('amd64') }}"
 | 
			
		||||
 | 
			
		||||
thanos_services:
 | 
			
		||||
  - thanos-sidecar
 | 
			
		||||
  - thanos-query
 | 
			
		||||
  - thanos-store
 | 
			
		||||
  - thanos-compact
 | 
			
		||||
  - thanos-query-frontend
 | 
			
		||||
 | 
			
		||||
thanos_ports:
 | 
			
		||||
  sidecar:        { grpc: 10901, http: 10902 }
 | 
			
		||||
  query:          { grpc: 10903, http: 10904 }
 | 
			
		||||
  store:          { grpc: 10905, http: 10906 }
 | 
			
		||||
  receive:        { grpc: 10907, http: 10909, http_remote_write: 10908 }
 | 
			
		||||
  rule:           { grpc: 10910, http: 10911 }
 | 
			
		||||
  compact:        { http: 10912 }
 | 
			
		||||
  query_frontend: { http: 10913 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
thanos_sidecar_service_name: thanos-sidecar.service
 | 
			
		||||
thanos_sidecar_service_enabled: true
 | 
			
		||||
thanos_sidecar_service_state: started
 | 
			
		||||
 | 
			
		||||
thanos_query_service_name: thanos-query.service
 | 
			
		||||
thanos_query_service_enabled: true
 | 
			
		||||
thanos_query_service_state: started
 | 
			
		||||
 | 
			
		||||
thanos_store_service_name: thanos-store.service
 | 
			
		||||
thanos_store_service_enabled: true
 | 
			
		||||
thanos_store_service_state: started
 | 
			
		||||
 | 
			
		||||
thanos_compact_service_name: thanos-compact.service
 | 
			
		||||
thanos_compact_service_enabled: true
 | 
			
		||||
thanos_compact_service_state: started
 | 
			
		||||
 | 
			
		||||
thanos_query_frontend_service_name: thanos-query-frontend.service
 | 
			
		||||
thanos_query_frontend_service_enabled: true
 | 
			
		||||
thanos_query_frontend_service_state: started
 | 
			
		||||
 | 
			
		||||
thanos_version_regex: ^thanos, version ([\d.]+)
 | 
			
		||||
 | 
			
		||||
thanos_checksum_algo: sha256
 | 
			
		||||
thanos_github_rel_path: thanos-io/thanos
 | 
			
		||||
thanos_github_project_url: "https://github.com/{{ thanos_github_rel_path }}"
 | 
			
		||||
thanos_release_file: "thanos-{{ thanos_version }}.{{ ansible_system | lower }}-{{ thanos_go_arch }}.tar.gz"
 | 
			
		||||
thanos_release_url: "{{ thanos_github_project_url }}/releases/download/v{{ thanos_version }}/{{ thanos_release_file }}"
 | 
			
		||||
thanos_checksum_url: "{{ thanos_github_project_url }}/releases/download/v{{ thanos_version }}/{{ thanos_checksum_algo }}sums.txt"
 | 
			
		||||
thanos_download_path: "/tmp/{{ thanos_release_file }}"
 | 
			
		||||
thanos_unarchive_dest_path: /tmp
 | 
			
		||||
thanos_extracted_path: "{{ thanos_download_path | replace('.tar.gz', '') }}"
 | 
			
		||||
thanos_binaries:
 | 
			
		||||
 - thanos
 | 
			
		||||
 | 
			
		||||
thanos_user: thanos
 | 
			
		||||
thanos_user_state: present
 | 
			
		||||
thanos_user_shell: /usr/sbin/nologin
 | 
			
		||||
 | 
			
		||||
thanos_group: thanos
 | 
			
		||||
thanos_group_state: "{{ thanos_user_state | default('present') }}"
 | 
			
		||||
 | 
			
		||||
thanos_etc_path: /etc/thanos
 | 
			
		||||
thanos_etc_owner: root
 | 
			
		||||
thanos_etc_group: root
 | 
			
		||||
thanos_etc_mode: "0755"
 | 
			
		||||
 | 
			
		||||
thanos_var_path: /var/lib/thanos
 | 
			
		||||
thanos_var_owner: "{{ thanos_user }}"
 | 
			
		||||
thanos_var_group: "{{ thanos_group }}"
 | 
			
		||||
thanos_var_mode: "0755"
 | 
			
		||||
 | 
			
		||||
thanos_bin_path: /usr/local/bin
 | 
			
		||||
 | 
			
		||||
thanos_sidecar_tsdb_path: /var/lib/prometheus
 | 
			
		||||
thanos_sidecar_objstore_config_file: "{{ thanos_etc_path }}/bucket.yaml"
 | 
			
		||||
thanos_sidecar_objstore_config_file_owner: "{{ thanos_user }}"
 | 
			
		||||
thanos_sidecar_objstore_config_file_group: "{{ thanos_group }}"
 | 
			
		||||
thanos_sidecar_objstore_config_file_mode: "0600"
 | 
			
		||||
thanos_sidecar_prometheus_url: http://localhost:9090
 | 
			
		||||
thanos_sidecar_http_address: "0.0.0.0:{{ thanos_ports.sidecar.http }}"
 | 
			
		||||
thanos_sidecar_grpc_address: "0.0.0.0:{{ thanos_ports.sidecar.grpc }}"
 | 
			
		||||
 | 
			
		||||
thanos_query_http_address: "0.0.0.0:{{ thanos_ports.query.http }}"
 | 
			
		||||
thanos_query_grpc_address: "0.0.0.0:{{ thanos_ports.query.grpc }}"
 | 
			
		||||
thanos_query_store:
 | 
			
		||||
  - "127.0.0.1:{{ thanos_ports.sidecar.grpc }}"
 | 
			
		||||
  - "127.0.0.1:{{ thanos_ports.store.grpc }}"
 | 
			
		||||
 | 
			
		||||
thanos_store_data_dir: "{{ thanos_var_path }}/store"
 | 
			
		||||
thanos_store_objstore_config_file: "{{ thanos_sidecar_objstore_config_file }}"
 | 
			
		||||
thanos_store_http_address: "0.0.0.0:{{ thanos_ports.store.http }}"
 | 
			
		||||
thanos_store_grpc_address: "0.0.0.0:{{ thanos_ports.store.grpc }}"
 | 
			
		||||
 | 
			
		||||
thanos_compact_data_dir: "{{ thanos_var_path }}/compact"
 | 
			
		||||
thanos_compact_objstore_config_file: "{{ thanos_sidecar_objstore_config_file }}"
 | 
			
		||||
thanos_compact_http_address: "0.0.0.0:{{ thanos_ports.compact.http }}"
 | 
			
		||||
thanos_compact_wait: true
 | 
			
		||||
 | 
			
		||||
thanos_query_frontend_http_address: "0.0.0.0:{{ thanos_ports.query_frontend.http }}"
 | 
			
		||||
thanos_query_frontend_downstream_url: "http://127.0.0.1:{{ thanos_ports.query.http }}"
 | 
			
		||||
thanos_query_frontend_cache_config:
 | 
			
		||||
  type: IN-MEMORY
 | 
			
		||||
  config:
 | 
			
		||||
    max_size: 256M
 | 
			
		||||
    max_size_items: 0
 | 
			
		||||
    validity: 0s
 | 
			
		||||
 | 
			
		||||
thanos_bucket_config: {}
 | 
			
		||||
thanos_config: {}
 | 
			
		||||
							
								
								
									
										35
									
								
								roles/thanos/handlers/main.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								roles/thanos/handlers/main.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
---
 | 
			
		||||
- name: restart thanos sidecar
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ thanos_sidecar_service_name }}"
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
    state: restarted
 | 
			
		||||
  listen: restart thanos
 | 
			
		||||
 | 
			
		||||
- name: restart thanos query
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ thanos_query_service_name }}"
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
    state: restarted
 | 
			
		||||
  listen: restart thanos
 | 
			
		||||
 | 
			
		||||
- name: restart thanos store
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ thanos_store_service_name }}"
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
    state: restarted
 | 
			
		||||
  listen: restart thanos
 | 
			
		||||
 | 
			
		||||
- name: restart thanos compact
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ thanos_compact_service_name }}"
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
    state: restarted
 | 
			
		||||
  listen: restart thanos
 | 
			
		||||
 | 
			
		||||
- name: restart thanos query frontend
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ thanos_query_frontend_service_name }}"
 | 
			
		||||
    daemon_reload: true
 | 
			
		||||
    state: restarted
 | 
			
		||||
  listen: restart thanos
 | 
			
		||||
							
								
								
									
										15
									
								
								roles/thanos/tasks/configure-component.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								roles/thanos/tasks/configure-component.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
---
 | 
			
		||||
- name: "{{ item }}: configure systemd"
 | 
			
		||||
  template:
 | 
			
		||||
    src:  "{{ item }}.service.j2"
 | 
			
		||||
    dest: "/etc/systemd/system/{{ item }}.service"
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: 0444
 | 
			
		||||
  notify: "restart {{ item | replace('-', ' ')}}"
 | 
			
		||||
 | 
			
		||||
- name: "{{ item }}: manage service"
 | 
			
		||||
  service:
 | 
			
		||||
    name: "{{ item }}.service"
 | 
			
		||||
    enabled: "{{ lookup('vars', item | replace('-', '_') + '_service_enabled') }}"
 | 
			
		||||
    state: "{{ lookup('vars', item | replace('-', '_') + '_service_state') }}"
 | 
			
		||||
							
								
								
									
										63
									
								
								roles/thanos/tasks/configure.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								roles/thanos/tasks/configure.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
---
 | 
			
		||||
- name: sysctl fs.protected_hardlinks
 | 
			
		||||
  sysctl:
 | 
			
		||||
    name: fs.protected_hardlinks
 | 
			
		||||
    value: "0"
 | 
			
		||||
    sysctl_set: yes
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
- name: create group
 | 
			
		||||
  group:
 | 
			
		||||
    name: "{{ thanos_group }}"
 | 
			
		||||
    system: true
 | 
			
		||||
    state: "{{ thanos_group_state | default('present') }}"
 | 
			
		||||
 | 
			
		||||
- name: create user
 | 
			
		||||
  user:
 | 
			
		||||
    name: "{{ thanos_user }}"
 | 
			
		||||
    system: true
 | 
			
		||||
    shell: "{{ thanos_user_shell }}"
 | 
			
		||||
    group: "{{ thanos_group }}"
 | 
			
		||||
    groups: "{{ prometheus_group }}"
 | 
			
		||||
    createhome: false
 | 
			
		||||
    home: "{{ thanos_var_path }}"
 | 
			
		||||
    state: "{{ thanos_user_state | default('present') }}"
 | 
			
		||||
    append: true
 | 
			
		||||
 | 
			
		||||
- name: create etc path
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ thanos_etc_path }}"
 | 
			
		||||
    state: directory
 | 
			
		||||
    owner: "{{ thanos_etc_owner }}"
 | 
			
		||||
    group: "{{ thanos_etc_group }}"
 | 
			
		||||
    mode: "{{ thanos_etc_mode }}"
 | 
			
		||||
 | 
			
		||||
- name: create var path
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ thanos_var_path }}"
 | 
			
		||||
    state: directory
 | 
			
		||||
    owner: "{{ thanos_var_owner }}"
 | 
			
		||||
    group: "{{ thanos_var_group }}"
 | 
			
		||||
    mode: "{{ thanos_var_mode }}"
 | 
			
		||||
 | 
			
		||||
- name: configure bucket
 | 
			
		||||
  copy:
 | 
			
		||||
    dest: "{{ thanos_sidecar_objstore_config_file }}"
 | 
			
		||||
    content: "{{ (thanos_bucket_config | default({})) | to_nice_yaml }}"
 | 
			
		||||
    owner: "{{ thanos_sidecar_objstore_config_file_owner }}"
 | 
			
		||||
    group: "{{ thanos_sidecar_objstore_config_file_group }}"
 | 
			
		||||
    mode: "{{ thanos_sidecar_objstore_config_file_mode }}"
 | 
			
		||||
  notify: restart thanos sidecar
 | 
			
		||||
 | 
			
		||||
- name: configure thanos query frontend cache
 | 
			
		||||
  copy:
 | 
			
		||||
    dest: "{{ thanos_etc_path }}/cache.yaml"
 | 
			
		||||
    content: "{{ (thanos_query_frontend_cache_config | default({})) | to_nice_yaml }}"
 | 
			
		||||
    owner: "{{ thanos_user }}"
 | 
			
		||||
    group: "{{ thanos_group }}"
 | 
			
		||||
    mode: "0444"
 | 
			
		||||
  notify: restart thanos query frontend
 | 
			
		||||
 | 
			
		||||
- name: configure thanos components
 | 
			
		||||
  include: configure-component.yaml
 | 
			
		||||
  loop: "{{ thanos_services }}"
 | 
			
		||||
							
								
								
									
										0
									
								
								roles/thanos/tasks/default.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								roles/thanos/tasks/default.yaml
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										30
									
								
								roles/thanos/tasks/install.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								roles/thanos/tasks/install.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
---
 | 
			
		||||
- block:
 | 
			
		||||
  - name: download tar
 | 
			
		||||
    get_url:
 | 
			
		||||
      url: "{{ thanos_release_url }}"
 | 
			
		||||
      dest: "{{ thanos_download_path }}"
 | 
			
		||||
      checksum: "{{ thanos_checksum }}"
 | 
			
		||||
    register: dl
 | 
			
		||||
    until: dl is success
 | 
			
		||||
    retries: 5
 | 
			
		||||
    delay: 10
 | 
			
		||||
 | 
			
		||||
  - name: extract tar
 | 
			
		||||
    unarchive:
 | 
			
		||||
      src: "{{ thanos_download_path }}"
 | 
			
		||||
      dest: "{{ thanos_unarchive_dest_path }}"
 | 
			
		||||
      creates: "{{ thanos_extracted_path }}"
 | 
			
		||||
      remote_src: true
 | 
			
		||||
 | 
			
		||||
  - name: install binaries
 | 
			
		||||
    copy:
 | 
			
		||||
      src: "{{ thanos_extracted_path }}/{{ item }}"
 | 
			
		||||
      dest: "{{ thanos_bin_path }}/{{ item }}"
 | 
			
		||||
      owner: root
 | 
			
		||||
      group: root
 | 
			
		||||
      mode: 0755
 | 
			
		||||
      remote_src: true
 | 
			
		||||
    loop: "{{ thanos_binaries }}"
 | 
			
		||||
    notify: restart thanos
 | 
			
		||||
  when: thanos_version != thanos_local_version
 | 
			
		||||
							
								
								
									
										30
									
								
								roles/thanos/tasks/main.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								roles/thanos/tasks/main.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
---
 | 
			
		||||
- name: gather os specific variables
 | 
			
		||||
  include_vars: "{{ lookup('first_found', possible_files) }}"
 | 
			
		||||
  vars:
 | 
			
		||||
    possible_files:
 | 
			
		||||
      files:
 | 
			
		||||
        - "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
 | 
			
		||||
        - "{{ ansible_distribution }}.yaml"
 | 
			
		||||
        - "{{ ansible_os_family }}.yaml"
 | 
			
		||||
        - "default.yaml"
 | 
			
		||||
      paths:
 | 
			
		||||
        - vars
 | 
			
		||||
 | 
			
		||||
- name: include os specific tasks
 | 
			
		||||
  include_tasks: "{{ lookup('first_found', possible_files) }}"
 | 
			
		||||
  vars:
 | 
			
		||||
    possible_files:
 | 
			
		||||
      files:
 | 
			
		||||
        - "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
 | 
			
		||||
        - "{{ ansible_distribution }}.yaml"
 | 
			
		||||
        - "{{ ansible_os_family }}.yaml"
 | 
			
		||||
        - "default.yaml"
 | 
			
		||||
      paths:
 | 
			
		||||
        - tasks
 | 
			
		||||
 | 
			
		||||
- include: pre.yaml
 | 
			
		||||
 | 
			
		||||
- include: install.yaml
 | 
			
		||||
 | 
			
		||||
- include: configure.yaml
 | 
			
		||||
							
								
								
									
										54
									
								
								roles/thanos/tasks/pre.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								roles/thanos/tasks/pre.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
---
 | 
			
		||||
- name: determine if installed
 | 
			
		||||
  stat:
 | 
			
		||||
    path: "{{ thanos_bin_path }}/thanos"
 | 
			
		||||
  register: st
 | 
			
		||||
 | 
			
		||||
- name: set thanos_installed
 | 
			
		||||
  set_fact:
 | 
			
		||||
    thanos_installed: "{{ st.stat.exists | bool }}"
 | 
			
		||||
 | 
			
		||||
- block:
 | 
			
		||||
  - name: determine latest version
 | 
			
		||||
    uri:
 | 
			
		||||
      url: "https://api.github.com/repos/{{ thanos_github_rel_path }}/releases/latest"
 | 
			
		||||
      return_content: true
 | 
			
		||||
      body_format: json
 | 
			
		||||
    register: _latest_version
 | 
			
		||||
    until: _latest_version.status == 200
 | 
			
		||||
    retries: 3
 | 
			
		||||
 | 
			
		||||
  - name: set thanos_version
 | 
			
		||||
    set_fact:
 | 
			
		||||
      thanos_version: "{{ _latest_version.json['tag_name'] | regex_replace('^v', '') }}"
 | 
			
		||||
 | 
			
		||||
- block:
 | 
			
		||||
  - name: determine installed version
 | 
			
		||||
    command: "{{ thanos_bin_path }}/thanos --version"
 | 
			
		||||
    register: _installed_version_string
 | 
			
		||||
    changed_when: false
 | 
			
		||||
 | 
			
		||||
  - name: set thanos_local_version
 | 
			
		||||
    set_fact:
 | 
			
		||||
      thanos_local_version: "{{ _installed_version_string.stdout | regex_search(thanos_version_regex, '\\1') | first }}"
 | 
			
		||||
  rescue:
 | 
			
		||||
  - name: set thanos_local_version
 | 
			
		||||
    set_fact:
 | 
			
		||||
      thanos_local_version: "{{ _installed_version_string.stderr | regex_search(thanos_version_regex, '\\1') | first }}"
 | 
			
		||||
  when: thanos_installed
 | 
			
		||||
 | 
			
		||||
- name: set thanos_local_version to 0
 | 
			
		||||
  set_fact:
 | 
			
		||||
    thanos_local_version: "0"
 | 
			
		||||
  when: not thanos_installed
 | 
			
		||||
 | 
			
		||||
- block:
 | 
			
		||||
  - name: get checksums
 | 
			
		||||
    set_fact:
 | 
			
		||||
      _checksums: "{{ lookup('url', thanos_checksum_url, wantlist=True) }}"
 | 
			
		||||
 | 
			
		||||
  - name: set thanos_checksum
 | 
			
		||||
    set_fact:
 | 
			
		||||
      thanos_checksum: "{{ thanos_checksum_algo }}:{{ item.split(' ') | first }}"
 | 
			
		||||
    loop: "{{ _checksums }}"
 | 
			
		||||
    when: "thanos_release_file in item"
 | 
			
		||||
							
								
								
									
										29
									
								
								roles/thanos/templates/thanos-compact.service.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								roles/thanos/templates/thanos-compact.service.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
{{ ansible_managed | comment }}
 | 
			
		||||
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Thanos Store Compactor
 | 
			
		||||
Wants=network-online.target
 | 
			
		||||
After=network-online.target
 | 
			
		||||
After=prometheus.service
 | 
			
		||||
 
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
User={{ thanos_user }}
 | 
			
		||||
Group={{ thanos_group }}
 | 
			
		||||
SyslogIdentifier=thanos-compact
 | 
			
		||||
ExecStart={{ thanos_bin_path }}/thanos compact \
 | 
			
		||||
{% if thanos_compact_data_dir %}
 | 
			
		||||
  --data-dir={{ thanos_compact_data_dir }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_compact_objstore_config_file %}
 | 
			
		||||
  --objstore.config-file={{ thanos_compact_objstore_config_file }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_compact_http_address %}
 | 
			
		||||
  --http-address={{ thanos_compact_http_address }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_compact_wait %}
 | 
			
		||||
  --wait \
 | 
			
		||||
{% endif %}
 | 
			
		||||
 
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
							
								
								
									
										25
									
								
								roles/thanos/templates/thanos-query-frontend.service.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								roles/thanos/templates/thanos-query-frontend.service.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
{{ ansible_managed | comment }}
 | 
			
		||||
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Thanos Query Frontend
 | 
			
		||||
Wants=network-online.target
 | 
			
		||||
After=network-online.target
 | 
			
		||||
After=prometheus.service
 | 
			
		||||
 
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
User={{ thanos_user }}
 | 
			
		||||
Group={{ thanos_group }}
 | 
			
		||||
SyslogIdentifier=thanos-query-frontend
 | 
			
		||||
ExecStart={{ thanos_bin_path }}/thanos query-frontend \
 | 
			
		||||
  --query-range.response-cache-config-file={{ thanos_etc_path }}/cache.yaml \
 | 
			
		||||
  --labels.response-cache-config-file={{ thanos_etc_path }}/cache.yaml \
 | 
			
		||||
{% if thanos_query_frontend_http_address %}
 | 
			
		||||
  --http-address={{ thanos_query_frontend_http_address }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_query_frontend_downstream_url %}
 | 
			
		||||
  --query-frontend.downstream-url={{ thanos_query_frontend_downstream_url }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
 
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
							
								
								
									
										28
									
								
								roles/thanos/templates/thanos-query.service.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								roles/thanos/templates/thanos-query.service.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
{{ ansible_managed | comment }}
 | 
			
		||||
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Thanos Query
 | 
			
		||||
Wants=network-online.target
 | 
			
		||||
After=network-online.target
 | 
			
		||||
After=prometheus.service
 | 
			
		||||
 
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
User={{ thanos_user }}
 | 
			
		||||
Group={{ thanos_group }}
 | 
			
		||||
SyslogIdentifier=thanos-query
 | 
			
		||||
ExecStart={{ thanos_bin_path }}/thanos query \
 | 
			
		||||
{% if thanos_query_http_address %}
 | 
			
		||||
  --http-address={{ thanos_query_http_address }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_query_grpc_address %}
 | 
			
		||||
  --grpc-address={{ thanos_query_grpc_address }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_query_store %}
 | 
			
		||||
{% for s in thanos_query_store %}
 | 
			
		||||
  --store={{ s }} \
 | 
			
		||||
{% endfor %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
							
								
								
									
										32
									
								
								roles/thanos/templates/thanos-sidecar.service.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								roles/thanos/templates/thanos-sidecar.service.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
{{ ansible_managed | comment }}
 | 
			
		||||
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Thanos Sidecar
 | 
			
		||||
Wants=network-online.target
 | 
			
		||||
After=network-online.target
 | 
			
		||||
After=prometheus.service
 | 
			
		||||
 
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
User={{ thanos_user }}
 | 
			
		||||
Group={{ thanos_group }}
 | 
			
		||||
SyslogIdentifier=thanos-sidecar
 | 
			
		||||
ExecStart={{ thanos_bin_path }}/thanos sidecar \
 | 
			
		||||
{% if thanos_sidecar_tsdb_path %}
 | 
			
		||||
  --tsdb.path={{ thanos_sidecar_tsdb_path }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_sidecar_objstore_config_file %}
 | 
			
		||||
  --objstore.config-file={{ thanos_sidecar_objstore_config_file }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_sidecar_prometheus_url %}
 | 
			
		||||
  --prometheus.url={{ thanos_sidecar_prometheus_url }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_sidecar_http_address %}
 | 
			
		||||
  --http-address={{ thanos_sidecar_http_address }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_sidecar_grpc_address %}
 | 
			
		||||
  --grpc-address={{ thanos_sidecar_grpc_address }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
 
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
							
								
								
									
										29
									
								
								roles/thanos/templates/thanos-store.service.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								roles/thanos/templates/thanos-store.service.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
{{ ansible_managed | comment }}
 | 
			
		||||
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Thanos Store Gateway
 | 
			
		||||
Wants=network-online.target
 | 
			
		||||
After=network-online.target
 | 
			
		||||
After=prometheus.service
 | 
			
		||||
 
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
User={{ thanos_user }}
 | 
			
		||||
Group={{ thanos_group }}
 | 
			
		||||
SyslogIdentifier=thanos-store
 | 
			
		||||
ExecStart={{ thanos_bin_path }}/thanos store \
 | 
			
		||||
{% if thanos_store_data_dir %}
 | 
			
		||||
  --data-dir={{ thanos_store_data_dir }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_store_objstore_config_file %}
 | 
			
		||||
  --objstore.config-file={{ thanos_store_objstore_config_file }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_store_http_address %}
 | 
			
		||||
  --http-address={{ thanos_store_http_address }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if thanos_store_grpc_address %}
 | 
			
		||||
  --grpc-address={{ thanos_store_grpc_address }} \
 | 
			
		||||
{% endif %}
 | 
			
		||||
 
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
							
								
								
									
										0
									
								
								roles/thanos/vars/default.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								roles/thanos/vars/default.yaml
									
									
									
									
									
										Normal file
									
								
							
		Reference in New Issue
	
	Block a user