From 39353dc2cad90bae7f6daa098915c75a81d70baf Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 22 Sep 2026 22:10:09 +0500 Subject: [PATCH] Add Ansible roles! --- playbook.yml | 156 +----------------- playbook.yml:Zone.Identifier | Bin 0 -> 25 bytes roles/deploy_exporters/handlers/main.yml | 5 + .../handlers/main.yml:Zone.Identifier | Bin 0 -> 25 bytes .../create_user_node_exporter_and_dir.yml | 14 ++ roles/deploy_exporters/tasks/main.yml | 55 ++++++ .../tasks/main.yml:Zone.Identifier | Bin 0 -> 25 bytes .../handlers/main.yml | 4 + .../handlers/main.yml:Zone.Identifier | Bin 0 -> 25 bytes .../tasks/create_user_metrics_and_dir.yml | 17 ++ .../tasks/main.yml | 27 +++ .../tasks/main.yml:Zone.Identifier | Bin 0 -> 25 bytes .../tasks/main.yml | 12 ++ terraform-infra/playbook.yml | 33 ++++ terraform-infra/playbook.yml:Zone.Identifier | Bin 0 -> 25 bytes 15 files changed, 173 insertions(+), 150 deletions(-) create mode 100644 playbook.yml:Zone.Identifier create mode 100644 roles/deploy_exporters/handlers/main.yml create mode 100644 roles/deploy_exporters/handlers/main.yml:Zone.Identifier create mode 100644 roles/deploy_exporters/tasks/create_user_node_exporter_and_dir.yml create mode 100644 roles/deploy_exporters/tasks/main.yml create mode 100644 roles/deploy_exporters/tasks/main.yml:Zone.Identifier create mode 100644 roles/deploy_prometheus_and_grafana/handlers/main.yml create mode 100644 roles/deploy_prometheus_and_grafana/handlers/main.yml:Zone.Identifier create mode 100644 roles/deploy_prometheus_and_grafana/tasks/create_user_metrics_and_dir.yml create mode 100644 roles/deploy_prometheus_and_grafana/tasks/main.yml create mode 100644 roles/deploy_prometheus_and_grafana/tasks/main.yml:Zone.Identifier create mode 100644 roles/install_Docker_and_utilities/tasks/main.yml create mode 100644 terraform-infra/playbook.yml create mode 100644 terraform-infra/playbook.yml:Zone.Identifier diff --git a/playbook.yml b/playbook.yml index 6559fc6..4333911 100644 --- a/playbook.yml +++ b/playbook.yml @@ -3,161 +3,17 @@ hosts: general_server become: yes tasks: - - name: Создание системного юзера - ansible.builtin.user: - name: metrics - state: present - shell: /usr/sbin/nologin + - name: Deploy Prometheus and Grafana + ansible.builtin.include_role: + name: deploy_prometheus_and_grafana - - name: Создать директории для проекта - ansible.builtin.file: - path: "{{ item }}" - state: directory - mode: '0755' - owner: metrics - group: metrics - loop: - - "{{ monitoring_dir }}" - - "{{ monitoring_dir }}/grafana_provisioning" - - - name: Устанавливаем Docker и утилиты - apt: - name: - - docker.io - - docker-compose - - python3-pip - - ufw - - git - - htop - - rsync - state: present - update_cache: yes - - - name: Скопировать конфигурации сервисов - ansible.builtin.template: - src: "{{ item.src }}" - dest: "{{ monitoring_dir }}/{{ item.dest }}" - mode: '0644' - owner: metrics - group: metrics - loop: - - { src: "prometheus.yml.j2", dest: "prometheus.yml" } - - { src: "prometheus-web.yml.j2", dest: "prometheus-web.yml" } - - { 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" } - - notify: Restart docker-compose - - - name: Запустить Docker Compose - community.docker.docker_compose_v2: - project_src: "{{ monitoring_dir }}" - state: present - - handlers: - - name: Restart docker-compose - community.docker.docker_compose_v2: - project_src: "{{ monitoring_dir }}" - state: restarted - -# ============================================================================================================== +# =============================================== - name: Deploy Exporter on other servers hosts: all become: yes tasks: - - name: Создание системного юзера - ansible.builtin.user: - name: metrics - state: present - shell: /usr/sbin/nologin - - - name: Создать директории для проекта - ansible.builtin.file: - path: "{{ monitoring_dir }}" - state: directory - mode: '0700' - owner: metrics - group: metrics - - - name: Устанавливаем Docker и утилиты - apt: - name: - - python3-pip - - ufw - - git - - htop - - rsync - state: present - update_cache: yes - - - name: Создать системного пользователя для Node Exporter - ansible.builtin.user: - name: node_exporter - shell: /usr/sbin/nologin - system: true - create_home: false - - - name: Создать директорию под конкретную версию - ansible.builtin.file: - path: "/opt/node_exporter-{{ node_exporter_version }}" - state: directory - owner: node_exporter - group: node_exporter - mode: '0700' - - name: Скачать и распаковать архив экспортера - ansible.builtin.unarchive: - src: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-{{ node_exporter_arch }}.tar.gz" - dest: "/opt/node_exporter-{{ node_exporter_version }}" - remote_src: true - extra_opts: - - "--strip-components=1" - creates: "/opt/node_exporter-{{ node_exporter_version }}/node_exporter" - owner: node_exporter - group: node_exporter + ansible.builtin.include_role: + name: deploy_exporters - - name: Создать симлинк на исполняемый файл - ansible.builtin.file: - src: "/opt/node_exporter-{{ node_exporter_version }}/node_exporter" - dest: "/usr/local/bin/node_exporter" - state: link - force: true - - - name: Создать директорию для конфигурации экспортера - ansible.builtin.file: - path: /etc/node_exporter - state: directory - owner: node_exporter - group: node_exporter - mode: '0750' - - - name: Скопировать конфиг веб-авторизации для Node Exporter - ansible.builtin.template: - src: node-exporter-web.yml.j2 - dest: /etc/node_exporter/web.yml - owner: node_exporter - group: node_exporter - mode: '0600' - - - name: Создать systemd unit файл - ansible.builtin.template: - src: node_exporter.service.j2 - dest: /etc/systemd/system/node_exporter.service - owner: root - group: root - mode: '0644' - notify: restart node-exporter - - - name: Включить автозапуск и запустить сервис - ansible.builtin.systemd_service: - name: node_exporter - state: started - enabled: true - - handlers: - - name: restart node-exporter - ansible.builtin.systemd_service: - name: node_exporter - state: restarted - daemon_reload: true \ No newline at end of file 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@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x