Skip to content
Snippets Groups Projects
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 }}"