From d74721cb2ca009421a39b043bf447caa6ada9ec5 Mon Sep 17 00:00:00 2001 From: havelight-ee Date: Fri, 7 Apr 2023 11:24:56 +0900 Subject: [PATCH] =?UTF-8?q?template=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- defaults/main.yml | 1 + tasks/check-agent.yml | 20 +++++++++ tasks/dsk-debian-pkg.yml | 46 +++++++-------------- tasks/dsk-log-agent.yml | 15 +++++++ tasks/dsk-node-agent.yml | 15 +++++++ tasks/dsk-plan-postgres-agent.yml | 15 +++++++ tasks/dsk-trace-agent.yml | 15 +++++++ tasks/main copy.yml | 12 ++++++ tasks/main.yml | 2 +- templates/log-agent-config.yml.j2 | 35 ++++++++++++++++ templates/log-agent-config.yml.j2_bak | 37 +++++++++++++++++ templates/node-agent-config.yml.j2 | 18 ++++++++ templates/plan-postgres-agent-config.yml.j2 | 18 ++++++++ templates/trace-agent-config.yml.j2 | 5 +++ 14 files changed, 222 insertions(+), 32 deletions(-) create mode 100644 tasks/check-agent.yml create mode 100644 tasks/dsk-log-agent.yml create mode 100644 tasks/dsk-node-agent.yml create mode 100644 tasks/dsk-plan-postgres-agent.yml create mode 100644 tasks/dsk-trace-agent.yml create mode 100644 tasks/main copy.yml create mode 100644 templates/log-agent-config.yml.j2 create mode 100644 templates/log-agent-config.yml.j2_bak create mode 100644 templates/node-agent-config.yml.j2 create mode 100644 templates/plan-postgres-agent-config.yml.j2 create mode 100644 templates/trace-agent-config.yml.j2 diff --git a/defaults/main.yml b/defaults/main.yml index 3eab23b..b0e9392 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -31,3 +31,4 @@ dsk_public_gpg_key: "https://dsk-agent-s3.s3.ap-northeast-2.amazonaws.com/dsk-ag datasaker_agents: [] + diff --git a/tasks/check-agent.yml b/tasks/check-agent.yml new file mode 100644 index 0000000..b576529 --- /dev/null +++ b/tasks/check-agent.yml @@ -0,0 +1,20 @@ +--- +- name: Check dsk-node-agent + include_tasks: dsk-node-agent.yml + when: '"dsk-node-agent" in datasaker_agents' + +- name: Check dsk-trace-agent + include_tasks: dsk-trace-agent.yml + when: '"dsk-trace-agent" in datasaker_agents' + +- name: Check dsk-log-agent + include_tasks: dsk-log-agent.yml + when: '"dsk-log-agent" in datasaker_agents' + +- name: Check dsk-postgres-agent + include_tasks: dsk-postgres-agent.yml + when: '"dsk-postgres-agent" in datasaker_agents' + +- name: Check dsk-plan-postgres-agent + include_tasks: dsk-plan-postgres-agent.yml + when: '"dsk-plan-postgres-agent" in datasaker_agents' diff --git a/tasks/dsk-debian-pkg.yml b/tasks/dsk-debian-pkg.yml index 055b826..a37ad27 100644 --- a/tasks/dsk-debian-pkg.yml +++ b/tasks/dsk-debian-pkg.yml @@ -1,26 +1,4 @@ --- -# - name: test -# debug: -# msg: "{{ item }}" -# with_items: -# - "{{ datagate_trace_url }}" -# - "{{ datagate_trace_port }}" -# - "{{ datagate_trace_timeout }}" -# - "{{ datagate_manifes_url }}" -# - "{{ datagate_manifest_port }}" -# - "{{ datagate_manifest_timeout }}" -# - "{{ datagate_metric_url }}" -# - "{{ datagate_metric_port }}" -# - "{{ datagate_metric_timeout }}" -# - "{{ datagate_plan_url }}" -# - "{{ datagate_plan_port }}" -# - "{{ datagate_plan_timeout }}" -# - "{{ datagate_loggate_url }}" -# - "{{ datagate_loggate_port }}" -# - "{{ datagate_loggate_timeout }}" -# - "{{ datasaker_api_url }}" -# - "{{ datasaker_api_send_interval }}" - - name: "Setting global-config" template: src: global-config.yml.j2 @@ -38,7 +16,7 @@ dest: "{{ tempdir.path }}/datasaker.gpg.key" force: yes -- name: "Ensure downloaded file for {{ key_fingerprint }} is a binary keyring" +- name: "Ensure downloaded file for binary keyring" shell: "cat {{ tempdir.path }}/datasaker.gpg.key | sudo gpg --import --batch --no-default-keyring --keyring {{ apt_usr_share_keyring }}" - name: "copy keyring to trusted keyring" @@ -53,19 +31,16 @@ path: "{{ tempdir.path }}" state: absent - #- name: Import datasaker GPG key - # apt_key: - # url: https://dsk-agent-s3.s3.ap-northeast-2.amazonaws.com/dsk-agent-s3/public/public.gpg.key - # state: present - # become: true - -- name: Add datasaker repository +- name: "Add datasaker repository" apt_repository: repo: "deb [signed-by={{ apt_usr_share_keyring }}] https://nexus.exem-oss.org/repository/debian-repos/ ubuntu main" state: present filename: datasaker.list -- name: Install required packages +- name: "Check datasaker Agent" + include_tasks: check-agent.yml + +- name: "Install datasaker agent" apt: name: "{{ item }}" state: present @@ -74,3 +49,12 @@ - "{{ datasaker_agents }}" notify: - Restart {{ item }} service + +# - name: "Ensure datasaker agent is running" +# service: +# name: "{{ item }}" +# state: started +# enabled: yes +# with_items: +# - "{{ datasaker_agents }}" + diff --git a/tasks/dsk-log-agent.yml b/tasks/dsk-log-agent.yml new file mode 100644 index 0000000..5dfff23 --- /dev/null +++ b/tasks/dsk-log-agent.yml @@ -0,0 +1,15 @@ +--- +- name: Make agent Directory + ansible.builtin.file: + path: "/etc/datasaker/{{ item }}" + state: directory + recurse: yes + owner: root + group: root + with_items: + - "dsk-log-agent" + +- name: "Setting dsk-log-agent config" + template: + src: log-agent-config.yml.j2 + dest: "/etc/datasaker/dsk-log-agent/agent-config.yml" \ No newline at end of file diff --git a/tasks/dsk-node-agent.yml b/tasks/dsk-node-agent.yml new file mode 100644 index 0000000..673baa9 --- /dev/null +++ b/tasks/dsk-node-agent.yml @@ -0,0 +1,15 @@ +--- +- name: Make agent Directory + ansible.builtin.file: + path: "/etc/datasaker/{{ item }}" + state: directory + recurse: yes + owner: root + group: root + with_items: + - "dsk-node-agent" + +- name: "Setting dsk-node-agent config" + template: + src: node-agent-config.yml.j2 + dest: "/etc/datasaker/dsk-node-agent/agent-config.yml" \ No newline at end of file diff --git a/tasks/dsk-plan-postgres-agent.yml b/tasks/dsk-plan-postgres-agent.yml new file mode 100644 index 0000000..29029bd --- /dev/null +++ b/tasks/dsk-plan-postgres-agent.yml @@ -0,0 +1,15 @@ +--- +- name: Make agent Directory + ansible.builtin.file: + path: "/etc/datasaker/{{ item }}" + state: directory + recurse: yes + owner: root + group: root + with_items: + - "dsk-plan-postgres-agent" + +- name: "Setting dsk-plan-postgres-agent config" + template: + src: plan-postgres-agent-config.yml.j2 + dest: "/etc/datasaker/dsk-plan-postgres-agent/agent-config.yml" \ No newline at end of file diff --git a/tasks/dsk-trace-agent.yml b/tasks/dsk-trace-agent.yml new file mode 100644 index 0000000..bb15f02 --- /dev/null +++ b/tasks/dsk-trace-agent.yml @@ -0,0 +1,15 @@ +--- +- name: Make agent Directory + ansible.builtin.file: + path: "/etc/datasaker/{{ item }}" + state: directory + recurse: yes + owner: root + group: root + with_items: + - "dsk-trace-agent" + +- name: "Setting dsk-trace-agent config" + template: + src: trace-agent-config.yml.j2 + dest: "/etc/datasaker/dsk-trace-agent/agent-config.yml" \ No newline at end of file diff --git a/tasks/main copy.yml b/tasks/main copy.yml new file mode 100644 index 0000000..f89f8c2 --- /dev/null +++ b/tasks/main copy.yml @@ -0,0 +1,12 @@ +--- +- name: Include Gather Ansible Facts task on Ansible >= 2.10 + include_tasks: gather-facts.yml + when: ansible_version.major >= 2 and ansible_version.minor >= 10 + +- name: Include Datasaker Add Repository + include_tasks: dsk-common.yml + when: ansible_facts.os_family == "Debian" + +- name: Include Datasaker Host Agent Install + include_tasks: dsk-debian-pkg.yml + when: ansible_facts.os_family == "Debian" \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml index f89f8c2..28f26dc 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -9,4 +9,4 @@ - name: Include Datasaker Host Agent Install include_tasks: dsk-debian-pkg.yml - when: ansible_facts.os_family == "Debian" \ No newline at end of file + when: ansible_facts.os_family == "Debian" diff --git a/templates/log-agent-config.yml.j2 b/templates/log-agent-config.yml.j2 new file mode 100644 index 0000000..cd6d442 --- /dev/null +++ b/templates/log-agent-config.yml.j2 @@ -0,0 +1,35 @@ +agent: + metadata: + agent_name: "{{ log_agent_name | default('dsk-log-agent') }}" + cluster_id: "{{ log_agent_cluster_id | default('unknown') }}" + environment: "{{ log_agent_environment | default('etc') }}" + collect: + - paths: +{% if paths is defined and paths | length > 0 %} +{% for path in paths %} + - "{{ path | default('') }}" +{% endfor %} +{% else %} + - /var/log/*/*.log +{% endif %} +{% if exclude_paths is defined and exclude_paths | length > 0 %} + exclude_paths: +{% for exclude_path in exclude_paths %} + - "{{ exclude_path | default('') }}" +{% endfor %} +{% else %} + exclude_paths: [] +{% endif %} +{% if keywords is defined and keywords | length > 0 %} + keywords: +{% for keyword in keywords %} + - "{{ keyword | default('') }}" +{% endfor %} +{% else %} + keywords: [] +{% endif %} + tag: "{{ log_agent_tag | default('sample') }}" + service: + name: "{{ log_agent_service_name | default('test') }}" + category: "{{ log_agent_service_category | default('etc') }}" + type: "{{ log_agent_service_type | default('etc') }}" \ No newline at end of file diff --git a/templates/log-agent-config.yml.j2_bak b/templates/log-agent-config.yml.j2_bak new file mode 100644 index 0000000..cc55c92 --- /dev/null +++ b/templates/log-agent-config.yml.j2_bak @@ -0,0 +1,37 @@ +agent: + metadata: + agent_name: "{{ log_agent_name | default('dsk-log-agent') }}" + cluster_id: "{{ log_agent_cluster_id | default('unknown') }}" + environment: "{{ log_agent_environment | default('etc') }}" + collect: + - paths: + {% if paths is defined and paths | length > 0 %} + {% for path in paths %} + - "{{ path | default('') }}" + {% endfor %} + {% else %} + - /var/log/*/*.log + {% endif %} + + {% if exclude_paths is defined and exclude_paths | length > 0 %} + exclude_paths: + {% for exclude_path in exclude_paths %} + - "{{ exclude_path | default('') }}" + {% endfor %} + {% else %} + exclude_paths: [] + {% endif %} + + {% if keywords is defined and keywords | length > 0 %} + keywords: + {% for keyword in keywords %} + - "{{ keyword | default('') }}" + {% endfor %} + {% else %} + keywords: [] + {% endif %} + tag: "{{ log_agent_tag | default('sample') }}" + service: + name: "{{ log_agent_service_name | default('test') }}" + category: "{{ log_agent_service_category | default('etc') }}" + type: "{{ log_agent_service_type | default('etc') }}" \ No newline at end of file diff --git a/templates/node-agent-config.yml.j2 b/templates/node-agent-config.yml.j2 new file mode 100644 index 0000000..d00e55d --- /dev/null +++ b/templates/node-agent-config.yml.j2 @@ -0,0 +1,18 @@ +agent: + metadata: + # agent_name: my-dsk-node-agent + # cluster_id: my-cluster + option: + exporter_config: + command: "dsk-node-exporter" + port: 19110 + args: + - --collector.filesystem.ignored-mount-points="^/(dev|proc|sys|run|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/)" + - --collector.tcpstat + scrape_interval: 15s + scrape_timeout: 5s + scrape_configs: + - job_name: dsk-node-agent + url: localhost:19110 + filtering_configs: + rule: drop \ No newline at end of file diff --git a/templates/plan-postgres-agent-config.yml.j2 b/templates/plan-postgres-agent-config.yml.j2 new file mode 100644 index 0000000..76eb510 --- /dev/null +++ b/templates/plan-postgres-agent-config.yml.j2 @@ -0,0 +1,18 @@ +agent: + metadata: + agent_name: "{{ plan_postgres_agent_name | default('dsk-plan-postgres-agent') }}" + cluster_id: "{{ plan_postgres_agent_cluster_id | default('REPLACE_CLUSTER_ID') }}" + data_source_name: + user: "{{ plan_postgres_user_name | default('') }}" + password: "{{ plan_postgres_user_password | default('') }}" + address: "{{ plan_postgres_database_address | default('') }}" + port: "{{ plan_postgres_database_port | default('') }}" + DBName: "{{ plan_postgres_database_name | default('') }}" + explain: + scrape_interval: "{{ plan_postgres_scrape_interval | default('30s') }}" + scrape_timeout: "{{ plan_postgres_scrape_timeout | default('5s') }}" + slow_query_standard: "{{ plan_postgres_slow_query_standard | default('5s') }}" + executor_number: "{{ plan_postgres_executor_number | default('10') }}" + sender_number: "{{ plan_postgres_sender_number | default('10') }}" + activity_query_buffer: "{{ plan_postgres_activity_query_buffer | default('50') }}" + plan_sender_buffer: "{{ plan_postgres_plan_sender_buffer | default('50') }}" diff --git a/templates/trace-agent-config.yml.j2 b/templates/trace-agent-config.yml.j2 new file mode 100644 index 0000000..5b92245 --- /dev/null +++ b/templates/trace-agent-config.yml.j2 @@ -0,0 +1,5 @@ +agent: + metadata: + option: + agent_name: "{{ trace_agent_name | default('trace-agent') }}" + cluster_id: "{{ trace_agent_cluster_id | default('unknown_cluster') }}" \ No newline at end of file