163 lines
5.3 KiB
YAML
163 lines
5.3 KiB
YAML
---
|
|
- name: Deploy Monitoring on general_server
|
|
hosts: general_server
|
|
become: yes
|
|
tasks:
|
|
- name: Создание системного юзера
|
|
ansible.builtin.user:
|
|
name: metrics
|
|
state: present
|
|
shell: /usr/sbin/nologin
|
|
|
|
- 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
|
|
|
|
- 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 |