telegraf + influxdb
This commit is contained in:
@@ -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
|
79
roles/cobald/tasks/influxdb.yml
Normal file
79
roles/cobald/tasks/influxdb.yml
Normal 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
|
@@ -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
|
||||
|
62
roles/cobald/tasks/telegraf.yml
Normal file
62
roles/cobald/tasks/telegraf.yml
Normal 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
|
||||
|
Reference in New Issue
Block a user