Add Ansible roles!
This commit is contained in:
+6
-150
@@ -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
|
||||
Reference in New Issue
Block a user