From f457c51dcbfef797373ecdc9b20f1e2fb5fe2e40 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 23 Sep 2026 00:07:38 +0500 Subject: [PATCH] Update: get ssl cert --- playbook.yml:Zone.Identifier | Bin 0 -> 25 bytes .../handlers/main.yml | 2 + .../tasks/main.yml | 40 ++++++++++++++++- .../{tasks/handlers.yml => handlers/main.yml} | 0 .../tasks/{cert_bot.yml => main.yml} | 0 templates/docker-compose-https.yml.j2 | 42 ++++++++++++++++++ .../docker-compose.yml.j2:Zone.Identifier | Bin 0 -> 25 bytes .../grafana-datasource.yml.j2:Zone.Identifier | Bin 0 -> 25 bytes templates/nginx-https.conf.j2 | 20 +++++++++ .../node-exporter-web.yml.j2:Zone.Identifier | Bin 0 -> 25 bytes .../node_exporter.service.j2:Zone.Identifier | Bin 0 -> 25 bytes .../prometheus-web.yml.j2:Zone.Identifier | Bin 0 -> 25 bytes templates/prometheus.yml.j2:Zone.Identifier | Bin 0 -> 25 bytes 13 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 playbook.yml:Zone.Identifier rename roles/get_ssl_cert/{tasks/handlers.yml => handlers/main.yml} (100%) rename roles/get_ssl_cert/tasks/{cert_bot.yml => main.yml} (100%) create mode 100644 templates/docker-compose-https.yml.j2 create mode 100644 templates/docker-compose.yml.j2:Zone.Identifier create mode 100644 templates/grafana-datasource.yml.j2:Zone.Identifier create mode 100644 templates/nginx-https.conf.j2 create mode 100644 templates/node-exporter-web.yml.j2:Zone.Identifier create mode 100644 templates/node_exporter.service.j2:Zone.Identifier create mode 100644 templates/prometheus-web.yml.j2:Zone.Identifier create mode 100644 templates/prometheus.yml.j2:Zone.Identifier diff --git a/playbook.yml:Zone.Identifier b/playbook.yml:Zone.Identifier new file mode 100644 index 0000000000000000000000000000000000000000..d6c1ec682968c796b9f5e9e080cc6f674b57c766 GIT binary patch literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 0) else 'docker-compose.yml' }}" state: restarted \ No newline at end of file diff --git a/roles/deploy_prometheus_and_grafana/tasks/main.yml b/roles/deploy_prometheus_and_grafana/tasks/main.yml index b491df5..23f40ae 100644 --- a/roles/deploy_prometheus_and_grafana/tasks/main.yml +++ b/roles/deploy_prometheus_and_grafana/tasks/main.yml @@ -5,9 +5,16 @@ ansible.builtin.import_role: name: install_Docker_and_utilities +- name: Установка nginx + ansible.builtin.apt: + name: nginx + state: present + update_cache: true + - name: Получаем сертификат, если его нет ansible.builtin.import_role: name: get_ssl_cert + when: domain is defined and domain | length > 0 - name: Скопировать конфигурации сервисов ansible.builtin.template: @@ -22,9 +29,38 @@ - { src: "node-exporter-web.yml.j2", dest: "node-exporter-web.yml" } - { src: "grafana-datasource.yml.j2", dest: "grafana_provisioning/datasource.yml" } - { src: "docker-compose.yml.j2", dest: "docker-compose.yml" } + - { src: "docker-compose-https.yml.j2", dest: "docker-compose-https.yml" } notify: Restart docker-compose -- name: Запустить Docker Compose +- name: Скопировать конфиг nginx + ansible.builtin.template: + src: "nginx-https.conf.j2" + dest: "/etc/nginx/sites-available/nginx-https.conf" + mode: '0644' + when: domain is defined and domain | length > 0 + +- name: Включить nginx конфиг (symlink) + ansible.builtin.file: + src: /etc/nginx/sites-available/nginx-https.conf + dest: /etc/nginx/sites-enabled/nginx-https.conf + state: link + when: domain is defined and domain | length > 0 + +- name: Удалить дефолтную конфигурацию nginx + ansible.builtin.file: + path: /etc/nginx/sites-enabled/default + state: absent + +- name: Перезагрузить nginx + ansible.builtin.systemd: + name: nginx + enabled: true + state: reloaded + when: domain is defined and domain | length > 0 + +- name: Запуск нужного compose-файла в зависимости от наличия domain community.docker.docker_compose_v2: project_src: "{{ monitoring_dir }}" - state: present + files: + - "{{ 'docker-compose-https.yml' if (domain is defined and domain | length > 0) else 'docker-compose.yml' }}" + state: present \ No newline at end of file diff --git a/roles/get_ssl_cert/tasks/handlers.yml b/roles/get_ssl_cert/handlers/main.yml similarity index 100% rename from roles/get_ssl_cert/tasks/handlers.yml rename to roles/get_ssl_cert/handlers/main.yml diff --git a/roles/get_ssl_cert/tasks/cert_bot.yml b/roles/get_ssl_cert/tasks/main.yml similarity index 100% rename from roles/get_ssl_cert/tasks/cert_bot.yml rename to roles/get_ssl_cert/tasks/main.yml diff --git a/templates/docker-compose-https.yml.j2 b/templates/docker-compose-https.yml.j2 new file mode 100644 index 0000000..63aa3ea --- /dev/null +++ b/templates/docker-compose-https.yml.j2 @@ -0,0 +1,42 @@ +services: + prometheus: + image: prom/prometheus:latest + container_name: prometheus + ports: + - "9090:9090" + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro + - ./prometheus-web.yml:/etc/prometheus/prometheus-web.yml:ro + - prom_data:/prometheus + + command: + - '--config.file=/etc/prometheus/prometheus.yml' + - '--web.config.file=/etc/prometheus/prometheus-web.yml' + - '--storage.tsdb.path=/prometheus' + - '--web.enable-admin-api' + + restart: unless-stopped + + + grafana: + image: grafana/grafana:latest + container_name: grafana + ports: + - "3001:3000" + volumes: + - ./grafana_provisioning/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml:ro + - grafana_data:/var/lib/grafana + + environment: + - GF_SECURITY_ADMIN_USER="{{ grafana_admin_user }}" + - GF_SECURITY_ADMIN_PASSWORD="{{ grafana_admin_password }}" + - GF_USERS_ALLOW_SIGN_UP=false + + restart: unless-stopped + + depends_on: + - prometheus + +volumes: + prom_data: + grafana_data: diff --git a/templates/docker-compose.yml.j2:Zone.Identifier b/templates/docker-compose.yml.j2:Zone.Identifier new file mode 100644 index 0000000000000000000000000000000000000000..d6c1ec682968c796b9f5e9e080cc6f674b57c766 GIT binary patch literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x