From 53aa071487209bc5d8cbbe969d9cb16822500f25 Mon Sep 17 00:00:00 2001 From: shenlan Date: Fri, 29 Aug 2025 20:59:03 +0800 Subject: [PATCH] feat: add OpenObserve ansible role --- .../vhosts/openobserve/defaults/main.yml | 8 ++++++ .../roles/vhosts/openobserve/tasks/main.yml | 21 ++++++++++++++++ .../templates/openobserve.service.j2 | 25 +++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 playbooks/roles/vhosts/openobserve/defaults/main.yml create mode 100644 playbooks/roles/vhosts/openobserve/tasks/main.yml create mode 100644 playbooks/roles/vhosts/openobserve/templates/openobserve.service.j2 diff --git a/playbooks/roles/vhosts/openobserve/defaults/main.yml b/playbooks/roles/vhosts/openobserve/defaults/main.yml new file mode 100644 index 0000000..c0d9f82 --- /dev/null +++ b/playbooks/roles/vhosts/openobserve/defaults/main.yml @@ -0,0 +1,8 @@ +openobserve_working_dir: /data +openobserve_binary: /usr/bin/openobserve +openobserve_root_user_email: root@example.com +openobserve_root_user_password: changeme +openobserve_memory_cache_max_size: 256 +openobserve_compact_enabled: false +openobserve_query_parallelism: 1 +openobserve_feature_per_thread_lock: true diff --git a/playbooks/roles/vhosts/openobserve/tasks/main.yml b/playbooks/roles/vhosts/openobserve/tasks/main.yml new file mode 100644 index 0000000..2569008 --- /dev/null +++ b/playbooks/roles/vhosts/openobserve/tasks/main.yml @@ -0,0 +1,21 @@ +- name: Ensure OpenObserve working directory exists + ansible.builtin.file: + path: "{{ openobserve_working_dir }}" + state: directory + mode: '0755' + when: inventory_hostname in groups[group] + +- name: Install OpenObserve systemd service + ansible.builtin.template: + src: openobserve.service.j2 + dest: /etc/systemd/system/openobserve.service + mode: '0644' + when: inventory_hostname in groups[group] + +- name: Enable and start OpenObserve service + ansible.builtin.systemd: + name: openobserve + enabled: true + state: restarted + daemon_reload: true + when: inventory_hostname in groups[group] diff --git a/playbooks/roles/vhosts/openobserve/templates/openobserve.service.j2 b/playbooks/roles/vhosts/openobserve/templates/openobserve.service.j2 new file mode 100644 index 0000000..dd0e8a5 --- /dev/null +++ b/playbooks/roles/vhosts/openobserve/templates/openobserve.service.j2 @@ -0,0 +1,25 @@ +[Unit] +Description=OpenObserve Service +After=network.target + +[Service] +Type=simple +User=root +Group=root +WorkingDirectory={{ openobserve_working_dir }} +ExecStart={{ openobserve_binary }} +Restart=on-failure +RestartSec=5 + +Environment=ZO_ROOT_USER_EMAIL={{ openobserve_root_user_email }} +Environment=ZO_ROOT_USER_PASSWORD={{ openobserve_root_user_password }} +Environment=ZO_MEMORY_CACHE_MAX_SIZE={{ openobserve_memory_cache_max_size }} +Environment=ZO_COMPACT_ENABLED={{ openobserve_compact_enabled | lower }} +Environment=ZO_QUERY_PARALLELISM={{ openobserve_query_parallelism }} +Environment=ZO_FEATURE_PER_THREAD_LOCK={{ openobserve_feature_per_thread_lock | lower }} + +# Optional: Increase file descriptor limit to avoid errors with many small files +# LimitNOFILE=262144 + +[Install] +WantedBy=multi-user.target