This commit is contained in:
havelight-ee
2023-06-23 11:38:35 +09:00
parent c2387a0289
commit 50a628b587
15 changed files with 103 additions and 115 deletions

BIN
.README.md.swp Normal file

Binary file not shown.

View File

@@ -2,13 +2,13 @@
Ansible을 이용하여 Datasaker Agent를 설치할 수 있습니다. Ansible을 이용하여 Datasaker Agent를 설치할 수 있습니다.
### Requirements ## Requirements
- Ansible v2.6+가 필요합니다. - Ansible v2.6+가 필요합니다.
- 대부분의 데비안 리눅스 배포판을 지원합니다. - 대부분의 데비안 리눅스 배포판을 지원합니다.
- Amazon Linux 2 배포판을 지원합니다. - Amazon Linux 2 배포판을 지원합니다.
### Installation ## Installation
Ansible Galaxy에서 Datasaker role을 설치합니다. Ansible Galaxy에서 Datasaker role을 설치합니다.
@@ -20,7 +20,7 @@ ansible-galaxy install dsk_bot.datasaker
아래는 기본 설치에 대한 예시입니다. 아래는 기본 설치에 대한 예시입니다.
##### Host Agent Default Install Example #### Host Agent Default Install Example
```yml ```yml
- hosts: servers - hosts: servers
become: true become: true
@@ -30,7 +30,7 @@ ansible-galaxy install dsk_bot.datasaker
datasaker_api_key: "<YOUR_API_KEY>" datasaker_api_key: "<YOUR_API_KEY>"
datasaker_agents: ["dsk-node-agent"] datasaker_agents: ["dsk-node-agent"]
``` ```
##### Docker Agent Default Install Example #### Docker Agent Default Install Example
```yml ```yml
- hosts: servers - hosts: servers
become: true become: true
@@ -41,7 +41,7 @@ ansible-galaxy install dsk_bot.datasaker
datasaker_docker_agents: ["dsk-docker-node-agent","dsk-docker-log-agent"] datasaker_docker_agents: ["dsk-docker-node-agent","dsk-docker-log-agent"]
``` ```
#### 필수 설정 ### 필수 설정
| 변수명 | 설명 | | 변수명 | 설명 |
|--------------------------------------------|--------------------------------------------------| |--------------------------------------------|--------------------------------------------------|
@@ -72,7 +72,7 @@ ansible-galaxy install dsk_bot.datasaker
|`datasaker_api_send_interval`| Datasaker API Server Data 전송 만료 시간 설정. <br>(Default) `1m`| |`datasaker_api_send_interval`| Datasaker API Server Data 전송 만료 시간 설정. <br>(Default) `1m`|
--> -->
#### Docker Container Agent 설정 ### Docker Container Agent 설정
| 변수명 | 설명 | | 변수명 | 설명 |
|--------------------------------------------|--------------------------------------------------| |--------------------------------------------|--------------------------------------------------|
|`datasaker_docker_config_path`| Datasaker Global Config 위치 설정. <br> (Default) `~/.datasaker`| |`datasaker_docker_config_path`| Datasaker Global Config 위치 설정. <br> (Default) `~/.datasaker`|
@@ -103,7 +103,7 @@ ansible-galaxy install dsk_bot.datasaker
|`postgres_agent_image_tag`| `dsk-postgres-agent` Image tag 설정. <br> (Default) `latest`| |`postgres_agent_image_tag`| `dsk-postgres-agent` Image tag 설정. <br> (Default) `latest`|
|`plan_postgres_agent_image_tag`| `dsk-plan-postgres-agent` Image tag 설정. <br> (Default) `latest`|--> |`plan_postgres_agent_image_tag`| `dsk-plan-postgres-agent` Image tag 설정. <br> (Default) `latest`|-->
#### Datasaker Agent 상세 설정 ### Datasaker Agent 상세 설정
- Host Agent 와 Docker Container Agent는 같은 설정값을 사용합니다. - Host Agent 와 Docker Container Agent는 같은 설정값을 사용합니다.
| 변수명 | 설명 | | 변수명 | 설명 |
@@ -135,7 +135,7 @@ ansible-galaxy install dsk_bot.datasaker
|`plan_postgres_activity_query_buffer`| `dsk-plan-postgres-agent`에 Plan Postgres activity query buffer 설정. <br> (Default) `50` | |`plan_postgres_activity_query_buffer`| `dsk-plan-postgres-agent`에 Plan Postgres activity query buffer 설정. <br> (Default) `50` |
|`plan_postgres_plan_sender_buffer`| `dsk-plan-postgres-agent`에 Plan Postgres plan sender buffer 설정. <br> (Default) `50` | |`plan_postgres_plan_sender_buffer`| `dsk-plan-postgres-agent`에 Plan Postgres plan sender buffer 설정. <br> (Default) `50` |
##### Ansible Playbook 상세 설정 Example #### Ansible Playbook 상세 설정 Example
```yml ```yml
- hosts: servers - hosts: servers
become: true become: true
@@ -186,7 +186,7 @@ datasaker_clean은 uninstall이 `True`로 설정되어야 합니다.
|`uninstall`| `datasaker_agents` 또는 `datasaker_docker_agents` 에 작성된 Agent만 제거. <br> (Default) `False`| |`uninstall`| `datasaker_agents` 또는 `datasaker_docker_agents` 에 작성된 Agent만 제거. <br> (Default) `False`|
|`datasaker_clean`| `datasaker_agents` 또는 `datasaker_docker_agents` 에 작성된 Agent 와 생성 된 폴더 및 설정 파일까지 제거. <br> (Default) `False`| |`datasaker_clean`| `datasaker_agents` 또는 `datasaker_docker_agents` 에 작성된 Agent 와 생성 된 폴더 및 설정 파일까지 제거. <br> (Default) `False`|
##### Datasaker Agents Uninstall Example #### Datasaker Agents Uninstall Example
```yml ```yml
- hosts: servers - hosts: servers

View File

@@ -47,5 +47,4 @@
src: global-config.yml.j2 src: global-config.yml.j2
dest: "{{ datasaker_docker_global_config }}" dest: "{{ datasaker_docker_global_config }}"
when: when:
- datasaker_docker_agents - datasaker_docker_agents

View File

@@ -90,4 +90,4 @@
state: restarted state: restarted
with_items: with_items:
- "{{ datasaker_agents }}" - "{{ datasaker_agents }}"
ignore_errors: true ignore_errors: true

View File

@@ -20,6 +20,11 @@
src: docker-postgres-agent-config.yml.j2 src: docker-postgres-agent-config.yml.j2
dest: "{{ datasaker_docker_path }}/dsk-docker-postgres-config.yml" dest: "{{ datasaker_docker_path }}/dsk-docker-postgres-config.yml"
- name: "Create agent config"
ansible.builtin.file:
path: "{{ datasaker_docker_path }}/dsk-docker-plan-postgres-config.yml"
state: touch
- name: "Setting plan-dsk-postgres-agent config" - name: "Setting plan-dsk-postgres-agent config"
template: template:
src: docker-plan-postgres-agent-config.yml.j2 src: docker-plan-postgres-agent-config.yml.j2

View File

@@ -1,13 +1,20 @@
--- ---
- name: Make agent Directory - name: "Make agent Directory"
ansible.builtin.file: ansible.builtin.file:
path: "/etc/datasaker/{{ item }}" path: "/etc/datasaker/{{ item }}"
state: directory state: directory
recurse: yes recurse: yes
owner: root
group: root
with_items: with_items:
- "dsk-log-agent" - "dsk-log-agent"
- name: "Create agent config"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/dsk-log-agent/agent-config.yml"
state: touch
- name: "Setting dsk-log-agent config" - name: "Setting dsk-log-agent config"
template: template:
src: log-agent-config.yml.j2 src: log-agent-config.yml.j2
dest: "/etc/datasaker/dsk-log-agent/agent-config.yml" dest: "{{ datasaker_host_path }}/dsk-log-agent/agent-config.yml"

View File

@@ -1,7 +1,7 @@
--- ---
- name: Make agent Directory - name: "Make agent Directory"
ansible.builtin.file: ansible.builtin.file:
path: "/etc/datasaker/{{ item }}" path: "{{ datasaker_host_path }}/{{ item }}"
state: directory state: directory
recurse: yes recurse: yes
owner: root owner: root
@@ -9,7 +9,12 @@
with_items: with_items:
- "dsk-node-agent" - "dsk-node-agent"
- name: "Create agent config"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/dsk-node-agent/agent-config.yml"
state: touch
- name: "Setting dsk-node-agent config" - name: "Setting dsk-node-agent config"
template: template:
src: node-agent-config.yml.j2 src: node-agent-config.yml.j2
dest: "/etc/datasaker/dsk-node-agent/agent-config.yml" dest: "{{ datasaker_host_path }}/dsk-node-agent/agent-config.yml"

View File

@@ -1,7 +1,7 @@
--- ---
- name: Make agent Directory - name: "Make agent Directory"
ansible.builtin.file: ansible.builtin.file:
path: "/etc/datasaker/{{ item }}" path: "{{ datasaker_host_path }}/{{ item }}"
state: directory state: directory
recurse: yes recurse: yes
owner: root owner: root
@@ -9,7 +9,12 @@
with_items: with_items:
- "dsk-plan-postgres-agent" - "dsk-plan-postgres-agent"
- name: "Create agent config"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/dsk-plan-postgres-agent/agent-config.yml"
state: touch
- name: "Setting dsk-plan-postgres-agent config" - name: "Setting dsk-plan-postgres-agent config"
template: template:
src: plan-postgres-agent-config.yml.j2 src: plan-postgres-agent-config.yml.j2
dest: "/etc/datasaker/dsk-plan-postgres-agent/agent-config.yml" dest: "{{ datasaker_host_path }}/dsk-plan-postgres-agent/agent-config.yml"

View File

@@ -1,7 +1,7 @@
--- ---
- name: "Make agent Directory" - name: "Make agent Directory"
ansible.builtin.file: ansible.builtin.file:
path: "/etc/datasaker/{{ item }}" path: "{{ datasaker_host_path }}/{{ item }}"
state: directory state: directory
recurse: yes recurse: yes
owner: root owner: root
@@ -9,7 +9,12 @@
with_items: with_items:
- "dsk-postgres-agent" - "dsk-postgres-agent"
- name: "Create agent config"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/dsk-postgres-agent/agent-config.yml"
state: touch
- name: "Setting dsk-postgres-agent config" - name: "Setting dsk-postgres-agent config"
template: template:
src: postgres-agent-config.yml.j2 src: postgres-agent-config.yml.j2
dest: "/etc/datasaker/dsk-postgres-agent/agent-config.yml" dest: "{{ datasaker_host_path }}/dsk-postgres-agent/agent-config.yml"

View File

@@ -1,9 +1,4 @@
--- ---
- name: "Setting global-config"
template:
src: global-config.yml.j2
dest: "/etc/datasaker/global-config.yml"
- name: "Add datasaker repository" - name: "Add datasaker repository"
yum_repository: yum_repository:
name: datasaker name: datasaker
@@ -20,7 +15,7 @@
- name: Make Datasaker Log Directory - name: Make Datasaker Log Directory
ansible.builtin.file: ansible.builtin.file:
path: "/var/log/datasaker/{{ item }}" path: "{{ datasaker_host_log_path }}/{{ item }}"
state: directory state: directory
recurse: yes recurse: yes
owner: root owner: root

View File

@@ -1,7 +1,7 @@
--- ---
- name: Make agent Directory - name: "Make agent Directory"
ansible.builtin.file: ansible.builtin.file:
path: "/etc/datasaker/{{ item }}" path: "{{ datasaker_host_path }}/{{ item }}"
state: directory state: directory
recurse: yes recurse: yes
owner: root owner: root
@@ -9,7 +9,12 @@
with_items: with_items:
- "dsk-trace-agent" - "dsk-trace-agent"
- name: "Create agent config"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/dsk-trace-agent/agent-config.yml"
state: touch
- name: "Setting dsk-trace-agent config" - name: "Setting dsk-trace-agent config"
template: template:
src: trace-agent-config.yml.j2 src: trace-agent-config.yml.j2
dest: "/etc/datasaker/dsk-trace-agent/agent-config.yml" dest: "{{ datasaker_host_path }}/dsk-trace-agent/agent-config.yml"

View File

@@ -44,4 +44,4 @@
- name: "Uninstall Datasaker Agent" - name: "Uninstall Datasaker Agent"
include_tasks: remove-datasaker.yml include_tasks: remove-datasaker.yml
when: when:
- uninstall == True - uninstall == True

View File

@@ -1,6 +1,6 @@
- name: "Change owner and group of datasaker docker directory" - name: "Change owner and group of datasaker docker directory"
ansible.builtin.file: ansible.builtin.file:
path: /var/datasaker path: "{{ datasaker_docker_path }}"
owner: "{{ datasaker_docker_user }}" owner: "{{ datasaker_docker_user }}"
group: "{{ datasaker_docker_group }}" group: "{{ datasaker_docker_group }}"
recurse: yes recurse: yes

View File

@@ -1,26 +1,8 @@
--- ---
- name: Remove Datasaker Log Directory
ansible.builtin.file:
path: "/var/log/datasaker/{{ item }}"
state: absent
with_items:
- "{{ datasaker_agents }}"
when:
- datasaker_agents
- name: Remove Datasaker Agent Directory
ansible.builtin.file:
path: "/etc/datasaker/{{ item }}"
state: absent
with_items:
- "{{ datasaker_agents }}"
when:
- datasaker_agents
- name: Stop agent service - name: Stop agent service
ansible.builtin.systemd: ansible.builtin.systemd:
name: "{{ item }}" name: "{{ item }}"
enabled: true enabled: false
state: stopped state: stopped
with_items: with_items:
- "{{ datasaker_agents }}" - "{{ datasaker_agents }}"
@@ -55,18 +37,56 @@
- Reload systemd configuration - Reload systemd configuration
ignore_errors: true ignore_errors: true
- name: Remove Datasaker Log Directory
ansible.builtin.file:
path: "{{ datasaker_host_log_path }}/{{ item }}"
state: absent
with_items:
- "{{ datasaker_agents }}"
when:
- datasaker_agents
- name: Remove Datasaker Agent Directory
ansible.builtin.file:
path: "{{ datasaker_host_path }}/{{ item }}"
state: absent
with_items:
- "{{ datasaker_agents }}"
when:
- datasaker_agents
- name: Remove Datasaker Host Directory
ansible.builtin.file:
path: "{{ item }}"
state: absent
with_items:
- "{{ datasaker_host_path }}"
- "{{ datasaker_host_log_path }}"
- "{{ apt_sources_list }}"
- "{{ apt_trusted_d_keyring }}"
- "{{ apt_usr_share_keyring }}"
when:
- datasaker_clean == True
- datasaker_agents
- name: Stop the Docker container - name: Stop the Docker container
docker_container: docker_container:
name: "{{ item }}" name: "{{ item }}"
state: absent state: absent
with_items: with_items:
- "dsk-docker-container-agent"
- "{{ datasaker_docker_agents }}" - "{{ datasaker_docker_agents }}"
when: when:
- datasaker_docker_agents - datasaker_docker_agents
ignore_errors: true ignore_errors: true
- name: Stop the Docker container-agent container
docker_container:
name: "dsk-docker-container-agent"
state: absent
when:
- '"dsk-docker-node-agent" in datasaker_docker_agents'
ignore_errors: true
- name: Stop the Docker plan-postgres-agent container - name: Stop the Docker plan-postgres-agent container
docker_container: docker_container:
name: "dsk-docker-plan-postgres-agent" name: "dsk-docker-plan-postgres-agent"
@@ -75,29 +95,14 @@
- '"dsk-docker-postgres-agent" in datasaker_docker_agents' - '"dsk-docker-postgres-agent" in datasaker_docker_agents'
ignore_errors: true ignore_errors: true
- name: Remove Datasaker Agent Directory - name: Remove Datasaker Docker Agent Directory
ansible.builtin.file: ansible.builtin.file:
path: "/etc/datasaker/{{ item }}" path: "{{ datasaker_docker_path }}/{{ item }}"
state: absent state: absent
with_items: with_items:
- "{{ datasaker_agents }}" - "{{ datasaker_docker_agents }}"
when: when:
- datasaker_agents - datasaker_docker_agents
- name: Remove Datasaker All Directory
ansible.builtin.file:
path: "{{ item }}"
state: absent
with_items:
- /etc/datasaker
- /var/log/datasaker
- /var/datasaker
- "{{ apt_sources_list }}"
- "{{ apt_trusted_d_keyring }}"
- "{{ apt_usr_share_keyring }}"
when:
- datasaker_clean == True
- datasaker_agents
- name: "Remove datasaker_docker_user" - name: "Remove datasaker_docker_user"
ansible.builtin.user: ansible.builtin.user:

View File

@@ -1,43 +0,0 @@
---
- name: "Add datasaker repository"
yum_repository:
name: datasaker
description: datasaker-repo
baseurl: "{{ datasaker_yum_repo }}"
enabled: "{{ datasaker_yum_enabled }}"
gpgcheck: "{{ datasaker_yum_gpgcheck }}"
- set_fact:
datasaker_agents: "{{ datasaker_agents | reject('equalto', 'dsk-log-agent') | list }}"
- name: "Check datasaker Agent"
include_tasks: check-agent.yml
- name: Make Datasaker Log Directory
ansible.builtin.file:
path: "{{ datasaker_host_log_path }}/{{ item }}"
state: directory
recurse: yes
owner: root
group: root
with_items:
- "{{ datasaker_agents }}"
- name: "Install datasaker log agent"
apt:
name: "td-agent"
state: latest
update_cache: yes
when: '"dsk-log-agent" in datasaker_agents'
- name: "Install datasaker agent"
yum:
name: "{{ item }}"
state: present
update_cache: yes
with_items:
- "{{ datasaker_agents }}"
notify:
- Reload systemd configuration
- Restart {{ item }} service
ignore_errors: true