From a794f85f96625d7549724d3072bf15657162e792 Mon Sep 17 00:00:00 2001 From: havelight-ee Date: Thu, 27 Apr 2023 12:39:14 +0900 Subject: [PATCH] rel1.0.0 --- README.md | 87 +++++++++++++++++++++++++++----------- defaults/main.yml | 3 +- meta/main.yml | 19 +++++++++ tasks/dsk-common.yml | 7 ++- tasks/dsk-debian-pkg.yml | 17 ++++++++ tasks/main.yml | 8 +++- tasks/remove-datasaker.yml | 54 +++++++++++++++++++++++ 7 files changed, 167 insertions(+), 28 deletions(-) create mode 100644 meta/main.yml create mode 100644 tasks/remove-datasaker.yml diff --git a/README.md b/README.md index 225dd44..8104663 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,77 @@ -Role Name -========= +# Ansible Datasaker Role -A brief description of the role goes here. +The Ansible Datasaker role installs and configures the Datasaker Agent and integrations. -Requirements ------------- +## Setup -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. +### Requirements -Role Variables --------------- +- Requires Ansible v2.6+. +- Supports most Debian Linux distributions. -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. +### Installation -Dependencies ------------- +Install the [Datasaker role] from Ansible Galaxy on your Ansible server: -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. +```shell +ansible-galaxy install dsk_bot.datasaker +``` -Example Playbook ----------------- +To deploy the Datasaker Agent on hosts, add the Datasaker role and your API key to your playbook: -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +```yml +- hosts: servers + become: true + roles: + - role: dsk_bot.datasaker + vars: + datasaker_api_key: "" + datasaker_agents: [""] +``` - - hosts: servers - roles: - - { role: username.rolename, x: 42 } +#### Role variables -License -------- +| Variable | Description | +|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|`datasaker_api_key`|Your Datasaker API key.| +|`datasaker_agents`|Set to Datasaker Agent.
`dsk_node_agent` `dsk_trace_agent` `dsk_log_agent` `dsk-postgres-agent` `dsk-plan-postgres-agent`
(Default) `dsk_node_agent`| +|`datagate_url`|The site of the Datasaker intake to send Agent data to.
(Default) `gate.kr.datasaker.io`| +|`datagate_trace_url`|Override the `dsk-trace-agent` datagate url.
(Default) `datagate_url`| +|`datagate_trace_port`|Override the `dsk-trace-agent` datagate port.
(Default) `31300`| +|`datagate_trace_timeout`|Override the `dsk-trace-agent` data expiration time.
(Default) `5s`| +|`datagate_manifest_url`|Override the `dsk-manifest-agent` datagate url.
(Default) `datagate_url`| +|`datagate_manifest_port`|Override the `dsk-manifest-agent` datagate port.
(Default) `31301`| +|`datagate_manifest_timeout`|Override the `dsk-manifest-agent` data expiration time.
(Default) `5s`| +|`datagate_metric_url`|Override the `dsk-metric-agent` datagate url.
(Default) `datagate_url`| +|`datagate_metric_port`|Override the `dsk-metric-agent` datagate port.
(Default) `31302`| +|`datagate_metric_timeout`|Override the `dsk-metric-agent` data expiration time.
(Default) `5s`| +|`datagate_plan_url`|Override the `dsk-plan-agent` datagate url.
(Default) `datagate_url`| +|`datagate_plan_port`|Override the `dsk-plan-agent` datagate port.
(Default) `31303`| +|`datagate_plan_timeout`|Override the `dsk-plan-agent` data expiration time.
(Default) `5s`| +|`datagate_loggate_url`|Override the `dsk-log-agent` datagate url.
(Default) `datagate_url`| +|`datagate_loggate_port`|Override the `dsk-log-agent` datagate port.
(Default) `31304`| +|`datagate_loggate_timeout`|Override the `dsk-log-agent` data expiration time.
(Default) `5s`| +|`datasaker_api_url`|Override the datasaker api server url.
(Default) `api.kr.datasaker.io`| +|`datasaker_api_send_interval`|Override the datasaker api server data expiration time.
(Default) `1m`| -BSD +## Uninstallation -Author Information ------------------- +However for more control over the uninstall parameters, the following code can be used. +In this example: -An optional section for the role authors to include contact information, or a website (HTML is not allowed). +```yml +- hosts: servers + become: true + roles: + - role: dsk_bot.datasaker + vars: + datasaker_agents: [""] + uninstall: True + datasaker_clean: True +``` + +## Troubleshooting + +### Debian stretch + +**Note:** diff --git a/defaults/main.yml b/defaults/main.yml index b0e9392..86dffe6 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -29,6 +29,7 @@ apt_usr_share_keyring: "/usr/share/keyrings/datasaker-archive-keyring.gpg" dsk_public_gpg_key: "https://dsk-agent-s3.s3.ap-northeast-2.amazonaws.com/dsk-agent-s3/public/public.gpg.key" - datasaker_agents: [] +uninstall: False +datasaker_clean: False \ No newline at end of file diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..77e0e48 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,19 @@ +--- +galaxy_info: + role_name: datasaker + namespace: datasaker + author: 'datasaker' + description: Install Datasaker agent + license: Apache2 + min_ansible_version: 2.6 + github_branch: main + platforms: + - name: Ubuntu + versions: + - focal + - name: Debian + versions: + - jessie + galaxy_tags: + - monitoring +dependencies: [] diff --git a/tasks/dsk-common.yml b/tasks/dsk-common.yml index 1ad74eb..72c1340 100644 --- a/tasks/dsk-common.yml +++ b/tasks/dsk-common.yml @@ -7,4 +7,9 @@ owner: root group: root with_items: - - /etc/datasaker \ No newline at end of file + - /etc/datasaker + +- name: "Setting global-config" + template: + src: global-config.yml.j2 + dest: "/etc/datasaker/global-config.yml" \ No newline at end of file diff --git a/tasks/dsk-debian-pkg.yml b/tasks/dsk-debian-pkg.yml index a37ad27..b6b28e9 100644 --- a/tasks/dsk-debian-pkg.yml +++ b/tasks/dsk-debian-pkg.yml @@ -40,6 +40,22 @@ - name: "Check datasaker Agent" include_tasks: check-agent.yml +- name: "Install metric sidecar" + apt: + name: "dsk-metric-sidecar" + state: present + update_cache: yes + +- name: Make Datasaker Log Directory + ansible.builtin.file: + path: "/var/log/datasaker/{{ item }}" + state: directory + recurse: yes + owner: root + group: root + with_items: + - "{{ datasaker_agents }}" + - name: "Install datasaker agent" apt: name: "{{ item }}" @@ -48,6 +64,7 @@ with_items: - "{{ datasaker_agents }}" notify: + - Reload systemd configuration - Restart {{ item }} service # - name: "Ensure datasaker agent is running" diff --git a/tasks/main.yml b/tasks/main.yml index 28f26dc..be4f113 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -5,8 +5,12 @@ - name: Include Datasaker Add Repository include_tasks: dsk-common.yml - when: ansible_facts.os_family == "Debian" + when: uninstall == False and ansible_facts.os_family == "Debian" - name: Include Datasaker Host Agent Install include_tasks: dsk-debian-pkg.yml - when: ansible_facts.os_family == "Debian" + when: uninstall == False and ansible_facts.os_family == "Debian" + +- name: Uninstall Datasaker Agent + include_tasks: remove-datasaker.yml + when: uninstall == True \ No newline at end of file diff --git a/tasks/remove-datasaker.yml b/tasks/remove-datasaker.yml new file mode 100644 index 0000000..3427c36 --- /dev/null +++ b/tasks/remove-datasaker.yml @@ -0,0 +1,54 @@ +--- +# - name: "Install metric sidecar" +# apt: +# name: "dsk-metric-sidecar" +# state: present +# update_cache: yes + +- name: Remove Datasaker Log Directory + ansible.builtin.file: + path: "/var/log/datasaker/{{ item }}" + state: absent + with_items: + - "{{ datasaker_agents }}" + +- name: Remove Datasaker Agent Directory + ansible.builtin.file: + path: "/etc/datasaker/{{ item }}" + state: absent + with_items: + - "{{ datasaker_agents }}" + +- name: Stop agent service + service: + name: "{{ item }}" + enabled: true + state: stopped + with_items: + - "{{ datasaker_agents }}" + ignore_errors: true + +- name: "Uninstall datasaker agent" + apt: + name: "{{ item }}" + state: absent + update_cache: yes + with_items: + - "{{ datasaker_agents }}" + ignore_errors: true + +- name: Remove Datasaker Agent Directory + ansible.builtin.file: + path: "/etc/datasaker/{{ item }}" + state: absent + with_items: + - "{{ datasaker_agents }}" + +- name: Remove Datasaker All Directory + ansible.builtin.file: + path: "{{ item }}" + state: absent + with_items: + - /etc/datasaker + - /var/log/datasaker + when: datasaker_clean == True \ No newline at end of file