telegraf + influxdb

This commit is contained in:
2021-05-25 23:43:00 +02:00
parent ddc6c2bb4d
commit 4e7f33338e
11 changed files with 2604 additions and 63 deletions

View File

@@ -1,58 +0,0 @@
- yum:
name: git
state: present
- git:
repo: https://github.com/thoto/cobald
dest: "~{{unpriv_user}}/cobald-src"
version: bugfix/mixed_construction_methods
become: yes
become_user: "{{unpriv_user}}"
register: cobald_git_pull
- git:
repo: https://github.com/MatterMiners/tardis
dest: "~{{unpriv_user}}/tardis-src"
version: master
become: yes
become_user: "{{unpriv_user}}"
register: tardis_git_pull
- name: "get unpriv_user {{unpriv_user}} uid and gid"
getent:
database: passwd
key: "{{unpriv_user}}"
- name: run pip install
docker_container:
image: cobald
name: "cobald-src-{{item.name}}-install"
volumes:
- "~{{unpriv_user}}/{{item.name}}-src:/usr/local/src/{{item.name}}:rw"
state: started
detach: False
cleanup: True
user: "{{getent_passwd[unpriv_user][1]}}:{{getent_passwd[unpriv_user][2]}}"
entrypoint: ""
command: |
bash -c 'HOME=/tmp pip3 install --editable /usr/local/src/{{item.name}}'
with_items:
- name: cobald
run: "{{cobald_git_pull.changed}}"
- name: tardis
run: "{{tardis_git_pull.changed}}"
when: item.run
- docker_container:
name: cobald-dev
image: cobald
volumes:
- "~{{unpriv_user}}/cobald:/etc/cobald"
- "~{{unpriv_user}}/cobald/modules:/usr/local/src/cobaldmodules"
- "~{{unpriv_user}}/cobald-src:/usr/local/src/cobald:ro"
- "~{{unpriv_user}}/tardis-src:/usr/local/src/tardis:ro"
state: started
detach: True
cleanup: True
interactive: True
command: /bin/bash

View File

@@ -0,0 +1,79 @@
#- file:
# path: "/container/volumes/influxdb-backup/"
# state: directory
# owner: "{{unpriv_user}}"
# group: docker
#- copy:
# src: influxdb-dashboard-cobald.json
# dest: /container/volumes/influxdb-backup/dash-cobald.json
# owner: "{{unpriv_user}}"
# group: docker
- docker_container:
name: ed-influxdb-2 # -2 FIXME
image: influxdb
hostname: "{{influx_hostname}}"
domainname: "{{influx_domainname}}"
networks:
- name: "{{ docker_network }}"
published_ports:
- "{{influx_pubport}}:8086"
volumes:
- "ed-influxdb-data-2:/var/lib/influxdb2" # -2 FIXME
- "/container/volumes/influxdb-backup/:/backup"
env:
DOCKER_INFLUXDB_INIT_MODE: setup
DOCKER_INFLUXDB_INIT_USERNAME: "{{influx_admin_user}}"
DOCKER_INFLUXDB_INIT_PASSWORD: "{{influx_admin_pw}}"
DOCKER_INFLUXDB_INIT_ORG: "{{influx_org}}"
DOCKER_INFLUXDB_INIT_BUCKET: my-bucket
state: started
detach: True
cleanup: True
networks_cli_compatible: True
- add_host:
name: ed-influxdb-2
ansible_connection: docker
ansible_docker_extra_args: "-H=ssh://ed-c7-1.virt.magni.thoto.net" # FIXME
changed_when: False
- wait_for: # FIXME: does not work right -> fetch token fails
port: "{{influx_pubport}}"
- name: "fetch auth token"
raw: influx auth list --user my-user --hide-headers --json
register: influx_token_fetch
changed_when: False
delegate_to: ed-influxdb-2
- set_fact:
influx_admin_token:
"{{(influx_token_fetch.stdout | from_json | first).token}}"
- influx_bucket:
base: "http://localhost:{{influx_pubport}}"
org: "my-org"
auth_token: "{{influx_admin_token}}"
name: "{{influx_bucket}}"
- name: "create dashboard"
influx_dashboard:
base: "http://localhost:{{influx_pubport}}"
org: "my-org"
auth_token: "{{influx_admin_token}}"
data: "{{lookup('file', 'influxdb-dashboard-cobald.json')}}"
- influx_token:
base: "http://localhost:{{influx_pubport}}"
org: "my-org"
auth_token: "{{influx_admin_token}}"
description: cobald tardis telegraf monitoring plugin
key: telegraf_cobaldtardis
permissions:
- action: write
resource:
type: buckets
name: "{{influx_bucket}}"
register: influx_telegraf_token

View File

@@ -38,16 +38,79 @@
group: docker
when: False
- set_fact:
docker_network: slurm
- docker_network:
name: "{{docker_network}}"
state: present
# docker run -v $(pwd)/cobald-config-host:/etc/cobald -v $(pwd)/cobald:/cobald --rm -it cobald bash
- yum:
name: git
state: present
- git:
repo: https://github.com/thoto/cobald
dest: "~{{unpriv_user}}/cobald-src"
version: bugfix/mixed_construction_methods
become: yes
become_user: "{{unpriv_user}}"
register: cobald_git_pull
- git:
repo: https://github.com/MatterMiners/tardis
dest: "~{{unpriv_user}}/tardis-src"
version: master
become: yes
become_user: "{{unpriv_user}}"
register: tardis_git_pull
- name: "get unpriv_user {{unpriv_user}} uid and gid"
getent:
database: passwd
key: "{{unpriv_user}}"
- import_tasks: telegraf.yml
vars:
docker_network: cobald
- name: run pip install
docker_container:
image: cobald
name: "cobald-src-{{item.name}}-install"
volumes:
- "~{{unpriv_user}}/{{item.name}}-src:/usr/local/src/{{item.name}}:rw"
state: started
detach: False
cleanup: True
user: "{{getent_passwd[unpriv_user][1]}}:{{getent_passwd[unpriv_user][2]}}"
entrypoint: ""
command: |
bash -c 'HOME=/tmp pip3 install --editable /usr/local/src/{{item.name}}'
with_items:
- name: cobald
run: "{{cobald_git_pull.changed}}"
- name: tardis
run: "{{tardis_git_pull.changed}}"
when: item.run
- docker_container:
name: cobald
image: cobald
hostname: cobald
domainname: cobald.local
volumes:
- /container/volumes/cobald:/etc/cobald:ro
- "~{{unpriv_user}}/cobald:/etc/cobald"
# - /container/volumes/cobald:/etc/cobald:ro
- "~{{unpriv_user}}/cobald/modules:/usr/local/src/cobaldmodules"
- "~{{unpriv_user}}/cobald-src:/usr/local/src/cobald:ro"
- "~{{unpriv_user}}/tardis-src:/usr/local/src/tardis:ro"
networks:
- name: "{{docker_network}}"
state: started
detach: True
cleanup: True
when: False
- include_tasks: dev.yml
interactive: True
command: /bin/bash

View File

@@ -0,0 +1,62 @@
- file:
path: "/container/{{item}}/telegraf/"
state: directory
owner: "{{unpriv_user}}"
group: docker
loop:
- docker-images
- volumes
- copy:
src: telegraf.Dockerfile
dest: /container/docker-images/telegraf/Dockerfile
owner: "{{unpriv_user}}"
group: docker
register: cobald_cp_telegraf_dockerfile
- copy: # telegraf is found in influxdb repo
src: influxdb.repo
dest: /container/docker-images/telegraf/influxdb.repo
owner: "{{unpriv_user}}"
group: docker
- docker_image:
name: "ed-telegraf"
build:
pull: False
path: "/container/docker-images/telegraf/"
source: build
force_source: "{{cobald_cp_telegraf_dockerfile.changed}}"
- block:
- import_tasks: influxdb.yml
tags: influxdb
- template:
src: telegraf.conf.j2
dest: /container/volumes/telegraf/telegraf.conf
owner: "{{unpriv_user}}"
group: docker
vars:
# influx_url: "http://{{influx_hostname}}.{{influx_domainname}}:8086"
influx_url: "http://{{influx_hostname}}:8086"
influx_token: "{{influx_telegraf_token.token}}"
vars:
influx_hostname: "ed-influxdb"
influx_domainname: "cobald.local"
influx_bucket: batleth
- docker_container:
name: ed-telegraf
image: ed-telegraf
hostname: telegraf
domainname: cobald.local
networks:
- name: "{{docker_network | default('bridge') }}"
volumes:
- "/container/volumes/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro"
state: started
detach: True
# cleanup: True
networks_cli_compatible: True