This commit is contained in:
havelight-ee
2023-04-27 12:39:14 +09:00
parent d74721cb2c
commit a794f85f96
7 changed files with 167 additions and 28 deletions

View File

@@ -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:
- hosts: servers
```yml
- hosts: servers
become: true
roles:
- { role: username.rolename, x: 42 }
- role: dsk_bot.datasaker
vars:
datasaker_api_key: "<YOUR_API_KEY>"
datasaker_agents: ["<AGENT_NAME>"]
```
License
-------
#### Role variables
BSD
| Variable | Description |
|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`datasaker_api_key`|Your Datasaker API key.|
|`datasaker_agents`|Set to Datasaker Agent.<br>`dsk_node_agent` `dsk_trace_agent` `dsk_log_agent` `dsk-postgres-agent` `dsk-plan-postgres-agent`<br>(Default) `dsk_node_agent`|
|`datagate_url`|The site of the Datasaker intake to send Agent data to.<br>(Default) `gate.kr.datasaker.io`|
|`datagate_trace_url`|Override the `dsk-trace-agent` datagate url. <br>(Default) `datagate_url`|
|`datagate_trace_port`|Override the `dsk-trace-agent` datagate port. <br>(Default) `31300`|
|`datagate_trace_timeout`|Override the `dsk-trace-agent` data expiration time. <br>(Default) `5s`|
|`datagate_manifest_url`|Override the `dsk-manifest-agent` datagate url. <br>(Default) `datagate_url`|
|`datagate_manifest_port`|Override the `dsk-manifest-agent` datagate port. <br>(Default) `31301`|
|`datagate_manifest_timeout`|Override the `dsk-manifest-agent` data expiration time. <br>(Default) `5s`|
|`datagate_metric_url`|Override the `dsk-metric-agent` datagate url. <br>(Default) `datagate_url`|
|`datagate_metric_port`|Override the `dsk-metric-agent` datagate port. <br>(Default) `31302`|
|`datagate_metric_timeout`|Override the `dsk-metric-agent` data expiration time. <br>(Default) `5s`|
|`datagate_plan_url`|Override the `dsk-plan-agent` datagate url. <br>(Default) `datagate_url`|
|`datagate_plan_port`|Override the `dsk-plan-agent` datagate port. <br>(Default) `31303`|
|`datagate_plan_timeout`|Override the `dsk-plan-agent` data expiration time. <br>(Default) `5s`|
|`datagate_loggate_url`|Override the `dsk-log-agent` datagate url. <br>(Default) `datagate_url`|
|`datagate_loggate_port`|Override the `dsk-log-agent` datagate port. <br>(Default) `31304`|
|`datagate_loggate_timeout`|Override the `dsk-log-agent` data expiration time. <br>(Default) `5s`|
|`datasaker_api_url`|Override the datasaker api server url. <br>(Default) `api.kr.datasaker.io`|
|`datasaker_api_send_interval`|Override the datasaker api server data expiration time. <br>(Default) `1m`|
Author Information
------------------
## Uninstallation
An optional section for the role authors to include contact information, or a website (HTML is not allowed).
However for more control over the uninstall parameters, the following code can be used.
In this example:
```yml
- hosts: servers
become: true
roles:
- role: dsk_bot.datasaker
vars:
datasaker_agents: ["<AGENT_NAME>"]
uninstall: True
datasaker_clean: True
```
## Troubleshooting
### Debian stretch
**Note:**

View File

@@ -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

19
meta/main.yml Normal file
View File

@@ -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: []

View File

@@ -8,3 +8,8 @@
group: root
with_items:
- /etc/datasaker
- name: "Setting global-config"
template:
src: global-config.yml.j2
dest: "/etc/datasaker/global-config.yml"

View File

@@ -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"

View File

@@ -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

View File

@@ -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