From 996e8d5e9718b6db3e57ffed4d0b972e330c53c4 Mon Sep 17 00:00:00 2001 From: Olivier Navas Date: Sat, 18 Jun 2022 22:07:32 +0200 Subject: [PATCH] Commit initial --- README.md | 35 +++++++++++++++++++++++++++++++++++ defaults/main.yml | 2 ++ handlers/main.yml | 5 +++++ tasks/main.yml | 14 ++++++++++++++ templates/docker-compose.yml | 28 ++++++++++++++++++++++++++++ 5 files changed, 84 insertions(+) create mode 100644 README.md create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 tasks/main.yml create mode 100644 templates/docker-compose.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..3aca4ad --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Role : docker_grafana + +## Services fournis + +- main.yml : Installation de grafana sur un serveur docker_host + + +## Variables + +Fournir les variables suivantes. Par exemple : + +```yaml +docker_grafana_fqdn: grafana.local.lan +docker_grafana_version: 8.5.4-ubuntu +docker_grafana_data_dir: /data1 +docker_grafana_service_id: grafana +docker_grafana_admin_user: admin +docker_grafana_admin_password: motdepasseadmin +``` + +| Option | Valeur par défaut | Description | +|-------------------------------|-------------------|--------------------------------------------------------------------------------------------| +| docker_grafana_fqdn | | Le fqdn pour accéder à grafana | +| docker_grafana_version | | Version de l'image grafana | +| docker_grafana_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service | +| docker_grafana_service_id | | Le nom de service souhaité : conditionne le nommage des dossiers et le routage par traefik | +| docker_grafana_admin_user | admin | Nom par défaut du user admin de grafana de départ | +| docker_grafana_admin_password | admin | Mot de passe par défaut du user admin de grafana de départ | + + +## Configuration de grafana + +Configurer grafana dans grafana.ini à côté du docker-compose.yml + +Après un premier démarrage de grafana, il est préférable de créer un ou plusieurs administrateurs personnels et de supprimer le compte par défaut. diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..89c7bae --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,2 @@ +docker_grafana_admin_user: admin +docker_grafana_admin_password: admin diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..b180086 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,5 @@ +- name: docker-compose-up + shell: | + docker-compose up -d + args: + chdir: /opt/{{ docker_grafana_service_id }}/ diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..a71e9cd --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,14 @@ +- name: docker directory + file: + path: /opt/{{ docker_grafana_service_id }}/ + state: directory + +- name: prepare docker-compose.yml + template: + src: "{{ item }}" + dest: /opt/{{ docker_grafana_service_id }}/ + with_items: + - docker-compose.yml + notify: docker-compose-up + + diff --git a/templates/docker-compose.yml b/templates/docker-compose.yml new file mode 100644 index 0000000..55f0c80 --- /dev/null +++ b/templates/docker-compose.yml @@ -0,0 +1,28 @@ +# {{ ansible_managed }} + +version: '3.1' + +services: + grafana: + image: grafana/grafana:{{ docker_grafana_version }} + volumes: + - ./grafana.ini:/etc/grafana/grafana.ini + - {{ docker_grafana_data_dir }}/{{ docker_grafana_service_id }}/grafana_data:/var/lib/grafana + environment: + - GF_SECURITY_ADMIN_USER=${ADMIN_USER:-{{ docker_grafana_admin_user }}} + - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD:-{{ docker_grafana_admin_password }}} + - GF_USERS_ALLOW_SIGN_UP=false + restart: always + networks: + - traefik + labels: + - "org.label-schema.group=monitoring" + - "traefik.enable=true" + - "traefik.docker.network=traefik" + - "traefik.http.routers.{{ docker_grafana_service_id }}.entrypoints=web" + - "traefik.http.routers.{{ docker_grafana_service_id }}.rule=Host(`{{ docker_grafana_fqdn }}`)" + - "traefik.http.services.{{ docker_grafana_service_id }}.loadbalancer.server.port=3000" + +networks: + traefik: + external: true