Files

68 lines
2.5 KiB
YAML

- name: Создание пользователя и директорий для метрик
ansible.builtin.import_tasks: create_user_metrics_and_dir.yml
- name: Подключение роли установки Docker
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:
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" }
- { src: "docker-compose-https.yml.j2", dest: "docker-compose-https.yml" }
- { src: "alertmanager.yml.j2", dest: "alertmanager.yml" }
- { src: "alerts.rules.yml.j2", dest: "alerts.rules.yml" }
notify: Restart 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 }}"
files:
- "{{ 'docker-compose-https.yml' if (domain is defined and domain | length > 0) else 'docker-compose.yml' }}"
state: present