main.yml 2.15 KiB
---
# Einige Secrets sind auf dem Server lokal gespeichert und werden von dort gelesen
# Auslesen der Dateien vom Server, zwischengespeicert wird in der Variable gitlab_secrets
# Anschließend müssen die entsprechenden Einträge aus gitlab_secrets extrahiert werden
# Die Daten, die von Slurp gelesen werden sind Base64 codiert
# Zur Sicherheit werden Whitespace-Zeichen entfert, damit z.B. Zeilenumbrüche nicht übernommen werden
- name: get secrets from server 1
slurp: src={{ item }}
with_items:
- /srv/ldap/secret/ldap_readonly_pass
register: warpinfra_secrets
- name: get secrets from server 2
set_fact:
ldap_readonly_pass: "{{ warpinfra_secrets.results | selectattr('item', 'equalto', '/srv/ldap/secret/ldap_readonly_pass') | map(attribute='content') | list | first | b64decode | regex_replace('\\s', '') }}"
- name: get secrets from server 1
slurp: src={{ item }}
with_items:
- /srv/grafana/grafana_admin_pass
register: grafana_secrets
- name: get secrets from server 2
set_fact:
grafana_admin_pass: "{{ grafana_secrets.results | selectattr('item', 'equalto', '/srv/grafana/grafana_admin_pass') | map(attribute='content') | list | first | b64decode | regex_replace('\\s', '') }}"
- name: create folder struct for grafana
file:
path: "{{ item }}"
state: "directory"
with_items:
- "/srv/grafana/"
- "/srv/grafana/config/"
- "/srv/grafana/data/"
- name: create config files
template: src={{ item }} dest=/srv/grafana/config/{{ item }}
with_items:
- grafana.ini
- ldap.toml
register: config
- name: stop grafana-app docker
docker_container:
name: grafana-app
state: absent
when: config.changed
- name: start grafana-app docker
docker_container:
name: grafana-app
image: grafana/grafana:4.4.1
state: started
restart_policy: always
volumes:
- /srv/grafana/config/grafana.ini:/etc/grafana/grafana.ini
- /srv/grafana/config/ldap.toml:/etc/grafana/ldap.toml
- /srv/grafana/data/:/var/lib/grafana
ports:
- 3000:3000
env:
GF_SERVER_ROOT_URL: "http://10.5.0.111:3000"
GF_SECURITY_ADMIN_PASSWORD: "{{ grafana_admin_pass }}"