diff --git a/roles/cobald/defaults/main.yml b/roles/cobald/defaults/main.yml index e62901d..9529316 100644 --- a/roles/cobald/defaults/main.yml +++ b/roles/cobald/defaults/main.yml @@ -1,3 +1,4 @@ +cobald_domainname: cobald.local influx_admin_user: my-user influx_admin_pw: my-password influx_org: my-org diff --git a/roles/cobald/tasks/influxdb.yml b/roles/cobald/tasks/influxdb.yml index 46f3324..d52e15d 100644 --- a/roles/cobald/tasks/influxdb.yml +++ b/roles/cobald/tasks/influxdb.yml @@ -23,11 +23,11 @@ cleanup: True networks_cli_compatible: True -- add_host: +- name: add ansible connection to influxdb container + add_host: name: ed-influxdb ansible_connection: docker - # ansible_docker_extra_args: "-H=ssh://ed-c7-1.virt.magni.thoto.net" # FIXME - ansible_docker_extra_args: "-H=ssh://{{ansible_host}}" # FIXME + ansible_docker_extra_args: "-H=ssh://{{ansible_host}}" changed_when: False - name: wait for influx to run @@ -35,32 +35,33 @@ changed_when: False delegate_to: ed-influxdb -- name: fetch auth token +- name: fetch influxdb auth token raw: influx auth list --user my-user --hide-headers --json register: influx_token_fetch changed_when: False delegate_to: ed-influxdb -- name: set admin token +- name: set influxdb admin token set_fact: influx_admin_token: "{{(influx_token_fetch.stdout | from_json | first).token}}" -- name: create bucket for cobald +- name: create influxdb bucket for cobald influx_bucket: base: "http://localhost:{{influx_pubport}}" org: "my-org" auth_token: "{{influx_admin_token}}" name: "{{influx_bucket}}" -- name: create dashboard +- name: create influxdb dashboard influx_dashboard: base: "http://localhost:{{influx_pubport}}" org: "my-org" auth_token: "{{influx_admin_token}}" data: "{{lookup('file', 'influxdb-dashboard-cobald.json')}}" + when: influxdb_dashboard | default(True) -- name: create token for telegraf +- name: create influxdb write access token for telegraf influx_token: base: "http://localhost:{{influx_pubport}}" org: "my-org" diff --git a/roles/cobald/tasks/main.yml b/roles/cobald/tasks/main.yml index 4f33a82..dfe32ab 100644 --- a/roles/cobald/tasks/main.yml +++ b/roles/cobald/tasks/main.yml @@ -1,7 +1,8 @@ - include_vars: cobald-slurm.yml when: cobald_slurm | default(False) -- include_role: +- name: build cobald:slurm docker image + include_role: name: slurm tasks_from: dockerimage vars: @@ -15,7 +16,8 @@ content: "{{ lookup('file', 'init-cobaldmodules.sh') }}" when: cobald_slurm | default(False) -- include_tasks: dockerimage-generic.yml +- name: build generic cobald docker image + include_tasks: dockerimage-generic.yml when: not (cobald_slurm | default(False)) - name: make cobald data volume @@ -25,24 +27,28 @@ owner: "{{unpriv_user}}" group: docker -- copy: +- name: copy cobald config (does nothing yet) + copy: src: cobald-config/ dest: /container/volumes/cobald owner: "{{unpriv_user}}" group: docker when: False -- docker_network: - name: "{{cobald_docker_network}}" # FIXME +- name: ensure network for cobald container exists + docker_network: + name: "{{cobald_docker_network}}" state: present # docker run -v $(pwd)/cobald-config-host:/etc/cobald -v $(pwd)/cobald:/cobald --rm -it cobald bash -- yum: +- name: install git + yum: name: git state: present -- file: +- name: make directories for cobald configuration and modules + file: path: "{{item}}" owner: "{{unpriv_user}}" group: "{{unpriv_user}}" @@ -52,7 +58,8 @@ - "~{{unpriv_user}}/cobald/modules" - "~{{unpriv_user}}/cobald" -- git: +- name: clone cobald code from git + git: repo: https://github.com/thoto/cobald dest: "~{{unpriv_user}}/cobald-src" version: bugfix/mixed_construction_methods @@ -61,7 +68,8 @@ become_user: "{{unpriv_user}}" register: cobald_git_pull -- git: +- name: clone tardis code from git + git: repo: https://github.com/MatterMiners/tardis dest: "~{{unpriv_user}}/tardis-src" version: master @@ -74,7 +82,7 @@ database: passwd key: "{{unpriv_user}}" -- name: run pip install +- name: run pip install on cobald and tardis docker_container: image: "cobald:{{cobald_image_tag|default('latest')}}" name: "cobald-src-{{item.name}}-install" diff --git a/roles/cobald/tasks/telegraf.yml b/roles/cobald/tasks/telegraf.yml index 0286920..9059771 100644 --- a/roles/cobald/tasks/telegraf.yml +++ b/roles/cobald/tasks/telegraf.yml @@ -1,4 +1,5 @@ -- file: +- name: setup directories for telegraf + file: path: "/container/{{item}}/telegraf/" state: directory owner: "{{unpriv_user}}" @@ -7,14 +8,16 @@ - docker-images - volumes -- copy: +- name: copy telegraf Dockerfile + 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 +- name: copy telegraf repo file + copy: # telegraf is found in influxdb repo src: influxdb.repo dest: /container/docker-images/telegraf/influxdb.repo owner: "{{unpriv_user}}" @@ -29,20 +32,9 @@ source: build force_source: "{{cobald_cp_telegraf_dockerfile.changed}}" -- set_fact: - influx_hostname: "ed-influxdb" - influx_domainname: "cobald.local" - influx_bucket: batleth - tags: influxdb - - import_tasks: influxdb.yml tags: influxdb -- set_fact: - # influx_url: "http://{{influx_hostname}}.{{influx_domainname}}:8086" - influx_url: "http://{{influx_hostname}}:8086" - tags: influxdb - - name: generate telegraf config template: src: telegraf.conf.j2 @@ -51,6 +43,7 @@ group: docker vars: influx_token: "{{influx_telegraf_token.token}}" + influx_url: "http://{{influx_hostname}}:8086" register: telegraf_config_gen - name: run telegraf container @@ -70,4 +63,6 @@ networks_cli_compatible: True - import_tasks: grafana.yml + vars: + influx_url: "http://{{influx_hostname}}:8086" tags: influxdb diff --git a/roles/cobald/vars/main.yml b/roles/cobald/vars/main.yml index cf379ae..f01b788 100644 --- a/roles/cobald/vars/main.yml +++ b/roles/cobald/vars/main.yml @@ -1 +1,3 @@ cobald_docker_network: "{{docker_network}}" +influx_domainname: "{{ cobald_domainname }}" +influx_hostname: "ed-influxdb"