first update

This commit is contained in:
havelight-ee
2023-04-04 18:02:56 +09:00
parent bf90d2408b
commit 33ae4b345d
8 changed files with 228 additions and 1 deletions

View File

@@ -1 +1,38 @@
# agent-ansible
Role Name
=========
A brief description of the role goes here.
Requirements
------------
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.
Role Variables
--------------
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.
Dependencies
------------
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.
Example 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
roles:
- { role: username.rolename, x: 42 }
License
-------
BSD
Author Information
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).

33
defaults/main.yml Normal file
View File

@@ -0,0 +1,33 @@
---
# defaults file for datasaker
datagate_trace_url: gate.kr.datasaker.io
datagate_trace_port: 31300
datagate_trace_timeout: 5s
datagate_manifest_url: gate.kr.datasaker.io
datagate_manifest_port: 31301
datagate_manifest_timeout: 5s
datagate_metric_url: gate.kr.datasaker.io
datagate_metric_port: 31302
datagate_metric_timeout: 5s
datagate_plan_url: gate.kr.datasaker.io
datagate_plan_port: 31303
datagate_plan_timeout: 5s
datagate_loggate_url: gate.kr.datasaker.io
datagate_loggate_port: 31304
datagate_loggate_timeout: 5s
datasaker_api_url: api.kr.datasaker.io
datasaker_api_send_interval: 1m
apt_trusted_d_keyring: "/etc/apt/trusted.gpg.d/datasaker-archive-keyring.gpg"
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: []

34
handlers/main.yml Normal file
View File

@@ -0,0 +1,34 @@
---
- name: Reload systemd configuration
service:
daemon_reload: True
- name: Restart dsk-trace-agent service
service:
name: dsk-trace-agent
enabled: true
state: restarted
- name: Restart dsk-node-agent service
service:
name: dsk-node-agent
enabled: true
state: restarted
- name: Restart dsk-log-agent service
service:
name: dsk-log-agent
enabled: true
state: restarted
- name: Restart dsk-postgres-agent service
service:
name: dsk-postgres-agent
enabled: true
state: restarted
- name: Restart dsk-plan-postgres-agent service
service:
name: dsk-plan-postgres-agent
enabled: true
state: restarted

10
tasks/dsk-common.yml Normal file
View File

@@ -0,0 +1,10 @@
---
- name: Make Datasaker Directory
ansible.builtin.file:
path: "{{ item }}"
state: directory
recurse: yes
owner: root
group: root
with_items:
- /etc/datasaker

76
tasks/dsk-debian-pkg.yml Normal file
View File

@@ -0,0 +1,76 @@
---
# - 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
dest: "/etc/datasaker/global-config.yml"
- name: "Create temporary directory for key manipulation"
tempfile:
state: directory
suffix: keys
register: tempdir
- name: "download keyring then add key to keyring"
get_url:
url: "{{ dsk_public_gpg_key }}"
dest: "{{ tempdir.path }}/datasaker.gpg.key"
force: yes
- name: "Ensure downloaded file for {{ key_fingerprint }} is a 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"
copy:
src: "{{ apt_usr_share_keyring }}"
dest: "{{ apt_trusted_d_keyring }}"
mode: "0600"
remote_src: yes
- name: "Remove temporary directory for key manipulation"
file:
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
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
apt:
name: "{{ item }}"
state: present
update_cache: yes
with_items:
- "{{ datasaker_agents }}"
notify:
- Restart {{ item }} service

3
tasks/gather-facts.yml Normal file
View File

@@ -0,0 +1,3 @@
---
- name: Gather Ansible Facts
ansible.builtin.setup:

12
tasks/main.yml Normal file
View File

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

View File

@@ -0,0 +1,22 @@
global:
api_key: {{ datasaker_api_key }}
gates:
trace_datagate:
url: {{ datagate_trace_url }}:{{ datagate_trace_port }}
remote_timeout: {{ datagate_trace_timeout }}
manifest_datagate:
url: {{ datagate_manifest_url }}:{{ datagate_manifest_port }}
remote_timeout: {{ datagate_manifest_timeout }}
metric_datagate:
url: {{ datagate_metric_url }}:{{ datagate_metric_port }}
remote_timeout: {{ datagate_metric_timeout }}
plan_datagate:
url: {{ datagate_plan_url }}:{{ datagate_plan_port }}
remote_timeout: {{ datagate_plan_timeout }}
loggate:
url: {{ datagate_loggate_url }}:{{ datagate_loggate_port }}
remote_timeout: {{ datagate_loggate_timeout }}
agent_manager:
url: {{ datasaker_api_url }}
base_url: /dsk-agentmanager-api/agent
send_interval: {{ datasaker_api_send_interval }}