This commit is contained in:
havelight-ee
2023-06-16 17:34:32 +09:00
parent cd2f40c08d
commit a4a3c489da
10 changed files with 281 additions and 16 deletions

View File

@@ -36,5 +36,35 @@ dsk_public_gpg_key: "https://dsk-agent-s3.s3.ap-northeast-2.amazonaws.com/dsk-ag
datasaker_agents: ['dsk-node-agent']
datasaker_docker_agents: ['dsk-docker-node-agent']
datasaker_docker_config_path: "~/.datasaker"
datasaker_docker_global_config: "{{ datasaker_docker_config_path }}/config.yml"
datasaker_docker_path: "/var/datasaker"
datasaker_docker_user: "datasaker"
datasaker_docker_group: "datasaker"
datasaker_docker_user_uid: 202306
datasaker_docker_user_gid: 202306
VAR_CLUSTER_ID: "unknown_cluster"
container_agent_image_tag: "latest"
node_agent_image_tag: "latest"
trace_agent_image_tag: "latest"
log_agent_image_tag: "latest"
postgres_agent_image_tag: "latest"
container_agent_restart_policy: "always"
node_agent_restart_policy: "always"
trace_agent_restart_policy: "always"
log_agent_restart_policy: "always"
postgres_agent_restart_policy: "always"
container_agent_log_level: "INFO"
node_agent_log_level: "INFO"
trace_agent_log_level: "INFO"
log_agent_log_level: "INFO"
postgres_agent_log_level: "INFO"
uninstall: False
datasaker_clean: False

View File

@@ -1,20 +1,48 @@
---
- name: Check dsk-node-agent
- name: "Check dsk-node-agent"
include_tasks: dsk-node-agent.yml
when: '"dsk-node-agent" in datasaker_agents'
- name: Check dsk-trace-agent
- name: "Check dsk-trace-agent"
include_tasks: dsk-trace-agent.yml
when: '"dsk-trace-agent" in datasaker_agents'
- name: Check dsk-log-agent
- name: "Check dsk-log-agent"
include_tasks: dsk-log-agent.yml
when: '"dsk-log-agent" in datasaker_agents'
- name: Check dsk-postgres-agent
- name: "Check dsk-postgres-agent"
include_tasks: dsk-postgres-agent.yml
when: '"dsk-postgres-agent" in datasaker_agents'
- name: Check dsk-plan-postgres-agent
- name: "Check dsk-plan-postgres-agent"
include_tasks: dsk-plan-postgres-agent.yml
when: '"dsk-plan-postgres-agent" in datasaker_agents'
- name: "Check dsk-docker-node-agent"
include_tasks: dsk-docker-node-agent.yml
when: '"dsk-docker-node-agent" in datasaker_docker_agents'
- name: "Check dsk-docker-elasticsearch-agent"
include_tasks: dsk-docker-elasticsearch-agent.yml
when: '"dsk-docker-elasticsearch-agent" in datasaker_docker_agents'
- name: "Check dsk-docker-log-agent"
include_tasks: dsk-docker-log-agent.yml
when: '"dsk-docker-log-agent" in datasaker_docker_agents'
- name: "Check dsk-docker-mongo-agent"
include_tasks: dsk-docker-mongo-agent.yml
when: '"dsk-docker-mongo-agent" in datasaker_docker_agents'
- name: "Check dsk-docker-mysql-agent"
include_tasks: dsk-docker-mysql-agent.yml
when: '"dsk-docker-mysql-agent" in datasaker_docker_agents'
- name: "Check dsk-docker-postgres-agent"
include_tasks: dsk-docker-postgres-agent.yml
when: '"dsk-docker-postgres-agent" in datasaker_docker_agents'
- name: "Check dsk-docker-trace-agent"
include_tasks: dsk-docker-trace-agent.yml
when: '"dsk-docker-trace-agent" in datasaker_docker_agents'

View File

@@ -8,8 +8,33 @@
group: root
with_items:
- /etc/datasaker
when:
- ansible_facts.os_family in ["Debian", "RedHat"]
- datasaker_agents
- name: "Setting global-config"
template:
src: global-config.yml.j2
dest: "/etc/datasaker/global-config.yml"
dest: "/etc/datasaker/global-config.yml"
when:
- ansible_facts.os_family in ["Debian", "RedHat"]
- datasaker_agents
- name: "Make Datasaker Directory"
ansible.builtin.file:
path: "{{ item }}"
state: directory
recurse: yes
owner: root
group: root
with_items:
- "{{ datasaker_docker_config_path }}"
when:
- datasaker_docker_agents
- name: "Setting global-config"
template:
src: global-config.yml.j2
dest: "{{ datasaker_docker_global_config }}"
when:
- datasaker_docker_agents

View File

@@ -0,0 +1,31 @@
---
- name: "Create datasaker local directory"
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{datasaker_docker_user}}"
group: "{{datasaker_docker_group}}"
mode: '0755'
with_items:
- "{{ datasaker_docker_path }}/agent/dsk-log-agent"
- name: "Setting dsk-log-agent config"
template:
src: log-agent-config.yml.j2
dest: "{{ datasaker_docker_path }}/log-agent-config.yml"
- name: Run Datasaker Log Agent
docker_container:
name: dsk-log-agent
image: "datasaker/dsk-log-agent:{{ trace_agent_image_tag }}"
state: started
detach: true
restart_policy: always
env:
DKS_LOG_LEVEL: "{{ log_agent_log_level }}"
command: "-global.config=/etc/datasaker/global-config.yml -agent.config=/etc/datasaker/dsk-log-agent/agent-config.yml -mount.volume=true"
volumes:
- "{{ datasaker_docker_path }}:/var/datasaker/"
- "/var/lib/docker/containers/:/var/datasaker/log/:ro"
- "{{ datasaker_docker_global_config }}:/etc/datasaker/global-config.yml:ro"
- "{{ datasaker_docker_path }}/log-agent-config.yml:/etc/datasaker/dsk-log-agent/agent-config.yml:ro"

View File

@@ -0,0 +1,69 @@
---
- name: "Create datasaker group"
ansible.builtin.group:
name: "{{datasaker_docker_group}}"
gid: "{{datasaker_docker_user_gid}}"
state: present
- name: "Create datasaker user"
block:
- ansible.builtin.user:
name: "{{datasaker_docker_user}}"
uid: "{{datasaker_docker_user_uid}}"
group: "{{datasaker_docker_group}}"
shell: /usr/sbin/nologin
system: yes
state: present
rescue:
- ansible.builtin.shell: "sudo useradd -r -u {{datasaker_docker_user_uid}} -g {{datasaker_docker_group}} -s /usr/sbin/nologin {{datasaker_docker_user}}"
ignore_errors: true
- name: "Create datasaker local directory"
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{datasaker_docker_user}}"
group: "{{datasaker_docker_group}}"
mode: '0755'
with_items:
- "{{ datasaker_docker_path }}/agent/dsk-container-agent"
- "{{ datasaker_docker_path }}/agent/dsk-node-agent"
- "{{ datasaker_docker_path }}/log"
- name: "Run Datasaker Container Agent"
ansible.builtin.docker_container:
name: dsk-container-agent
image: "datasaker/dsk-container-agent:{{ container_agent_image_tag }}"
state: started
restart_policy: "{{ container_agent_restart_policy }}"
privileged: yes
env:
DSK_CLUSTER_ID: "{{ VAR_CLUSTER_ID }}"
GOMAXPROCS: '1'
DSK_LOG_LEVEL: "{{ container_agent_log_level }}"
volumes:
- "{{ datasaker_docker_path }}:/var/datasaker/"
- "/:/rootfs/:ro"
- "/var/run/:/var/run/:ro"
- "/sys/:/sys/:ro"
- "/dev/disk/:/dev/disk/:ro"
- "{{ datasaker_docker_global_config }}:/etc/datasaker/global-config.yml:ro"
- name: "Run Datasaker Node Agent"
ansible.builtin.docker_container:
name: dsk-node-agent
image: "datasaker/dsk-node-agent:{{ node_agent_image_tag }}"
state: started
restart_policy: "{{ node_agent_restart_policy }}"
privileged: yes
network_mode: host
pid_mode: host
env:
DSK_CLUSTER_ID: "{{ VAR_CLUSTER_ID }}"
DSK_LOG_LEVEL: "{{ node_agent_log_level }}"
volumes:
- "{{ datasaker_docker_path }}:/var/datasaker/"
- "/proc/:/host/proc/:ro"
- "/sys/:/host/sys/:ro"
- "{{ datasaker_docker_global_config }}:/etc/datasaker/global-config.yml:ro"

View File

@@ -0,0 +1,2 @@
---

View File

@@ -0,0 +1,32 @@
---
- name: "Create datasaker local directory"
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{datasaker_docker_user}}"
group: "{{datasaker_docker_group}}"
mode: '0755'
with_items:
- "{{ datasaker_docker_path }}/agent/dsk-trace-agent"
- name: "Setting dsk-trace-agent config"
template:
src: trace-agent-config.yml.j2
dest: "{{ datasaker_docker_path }}/trace-agent-config.yml"
- name: "Run Datasaker trace Agent"
ansible.builtin.docker_container:
name: dsk-trace-agent
image: "datasaker/dsk-trace-agent:{{ trace_agent_image_tag }}"
state: started
restart_policy: "{{ trace_agent_restart_policy }}"
detach: yes
published_ports:
- 4317:4317/tcp
- 4318:4318/tcp
env:
DKS_LOG_LEVEL: "{{ trace_agent_log_level }}"
volumes:
- "{{ datasaker_docker_path }}:/var/datasaker/"
- "{{ datasaker_docker_global_config }}:/etc/datasaker/global-config.yml:ro"
- "{{ datasaker_docker_path }}/trace-agent-config.yml:/etc/datasaker/dsk-trace-agent/agent-config.yml:ro"

View File

@@ -1,20 +1,46 @@
---
- name: Include Gather Ansible Facts task on Ansible >= 2.10
- 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
when:
- ansible_version.major >= 2
- ansible_version.minor >= 10
- name: Include Datasaker Add Repository
- name: "Check Datasaker Agent List"
set_fact:
datasaker_agents: []
when: datasaker_docker_agents | select('search', 'docker') | list | count > 0
- name: "Include Datasaker Add Directory Config"
include_tasks: dsk-common.yml
when: uninstall == False and ansible_facts.os_family == "Debian" or ansible_facts.os_family == "RedHat"
when:
- uninstall == False
- name: Include Datasaker Debian Host Agent Install
- name: "Include Datasaker Debian Host Agent Install"
include_tasks: dsk-debian-pkg.yml
when: uninstall == False and ansible_facts.os_family == "Debian"
when:
- uninstall == False
- ansible_facts.os_family == "Debian"
- datasaker_agents
- name: Include Datasaker RedHat Host Agent Install
- name: "Include Datasaker RedHat Host Agent Install"
include_tasks: dsk-redhat-pkg.yml
when: uninstall == False and ansible_facts.os_family == "RedHat"
when:
- uninstall == False
- ansible_facts.os_family == "RedHat"
- datasaker_agents
- name: Uninstall Datasaker Agent
- name: "Include Datasaker Agent Install"
include_tasks: check-agent.yml
when:
- uninstall == False
- name: "Include Docker Agent Path Permissions Setting"
include_tasks: permissions.yml
when:
- uninstall == False
- datasaker_docker_agents
- name: "Uninstall Datasaker Agent"
include_tasks: remove-datasaker.yml
when: uninstall == True
when:
- uninstall == True

6
tasks/permissions.yml Normal file
View File

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

View File

@@ -45,7 +45,23 @@
with_items:
- /etc/datasaker
- /var/log/datasaker
- /var/datasaker
- ~/.datasaker
- "{{ apt_sources_list }}"
- "{{ apt_trusted_d_keyring }}"
- "{{ apt_usr_share_keyring }}"
when: datasaker_clean == True
- name: "Remove datasaker_docker_user"
ansible.builtin.user:
name: "{{datasaker_docker_user}}"
state: absent
when: datasaker_clean == True
ignore_errors: yes
- name: "Remove datasaker_docker_group"
ansible.builtin.group:
name: "{{datasaker_docker_group}}"
state: absent
when: datasaker_clean == True
ignore_errors: yes