Рефакторинг: вынес запуск ролей в отдельный файл deploy.yml
- Создан файл roles/deploy.yml с блоком запуска роли nginx - Обновлен molecule/default/site.yml для импорта deploy.yml - Улучшена модульность структуры проекта - Автор: Сергей Антропов
This commit is contained in:
196
roles/nginx/tasks/main.yml
Normal file
196
roles/nginx/tasks/main.yml
Normal file
@@ -0,0 +1,196 @@
|
||||
---
|
||||
# Основные задачи для роли nginx
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
- name: Установка nginx на Ubuntu/Debian
|
||||
apt:
|
||||
name: "{{ nginx_ubuntu_packages }}"
|
||||
state: present
|
||||
update_cache: true
|
||||
when: ansible_os_family == "Debian"
|
||||
tags:
|
||||
- nginx
|
||||
- install
|
||||
- debian
|
||||
|
||||
- name: Установка nginx на RHEL/CentOS
|
||||
yum:
|
||||
name: "{{ nginx_rhel_packages }}"
|
||||
state: present
|
||||
when: ansible_os_family == "RedHat"
|
||||
tags:
|
||||
- nginx
|
||||
- install
|
||||
- rhel
|
||||
|
||||
- name: Включение и запуск nginx на Ubuntu/Debian
|
||||
systemd:
|
||||
name: nginx
|
||||
enabled: true
|
||||
state: started
|
||||
when: ansible_os_family == "Debian"
|
||||
tags:
|
||||
- nginx
|
||||
- service
|
||||
- debian
|
||||
|
||||
- name: Включение и запуск nginx на RHEL/CentOS
|
||||
systemd:
|
||||
name: nginx
|
||||
enabled: true
|
||||
state: started
|
||||
when: ansible_os_family == "RedHat"
|
||||
tags:
|
||||
- nginx
|
||||
- service
|
||||
- rhel
|
||||
|
||||
- name: Создание директории для веб-контента
|
||||
file:
|
||||
path: "{{ nginx_root_dir }}"
|
||||
state: directory
|
||||
owner: "{{ nginx_user }}"
|
||||
group: "{{ nginx_user }}"
|
||||
mode: '0755'
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- directories
|
||||
|
||||
- name: Создание тестовой страницы
|
||||
copy:
|
||||
content: |
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Nginx Test Page</title>
|
||||
<style>
|
||||
body { font-family: Arial, sans-serif; margin: 40px; }
|
||||
.container { max-width: 600px; margin: 0 auto; }
|
||||
h1 { color: #333; }
|
||||
.info { background: #f4f4f4; padding: 20px; border-radius: 5px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>Nginx работает!</h1>
|
||||
<div class="info">
|
||||
<p><strong>Сервер:</strong> {{ ansible_hostname }}</p>
|
||||
<p><strong>ОС:</strong> {{ ansible_distribution }} \
|
||||
{{ ansible_distribution_version }}</p>
|
||||
<p><strong>Время:</strong> {{ ansible_date_time.iso8601 }}</p>
|
||||
<p><strong>Роль:</strong> nginx (Сергей Антропов)</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
dest: "{{ nginx_root_dir }}/{{ nginx_index_file }}"
|
||||
owner: "{{ nginx_user }}"
|
||||
group: "{{ nginx_user }}"
|
||||
mode: '0644'
|
||||
notify: restart nginx
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- content
|
||||
|
||||
- name: Создание резервной копии конфигурации nginx
|
||||
copy:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ item }}.backup"
|
||||
remote_src: true
|
||||
mode: '0644'
|
||||
owner: root
|
||||
group: root
|
||||
loop:
|
||||
- /etc/nginx/nginx.conf
|
||||
- /etc/nginx/sites-available/default
|
||||
ignore_errors: true
|
||||
when: ansible_os_family == "Debian"
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- backup
|
||||
|
||||
- name: Создание резервной копии конфигурации nginx (RHEL)
|
||||
copy:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ item }}.backup"
|
||||
remote_src: true
|
||||
mode: '0644'
|
||||
owner: root
|
||||
group: root
|
||||
loop:
|
||||
- /etc/nginx/nginx.conf
|
||||
- /etc/nginx/conf.d/default.conf
|
||||
ignore_errors: true
|
||||
when: ansible_os_family == "RedHat"
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- backup
|
||||
|
||||
- name: Настройка основной конфигурации nginx
|
||||
template:
|
||||
src: nginx.conf.j2
|
||||
dest: /etc/nginx/nginx.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
backup: true
|
||||
notify: restart nginx
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- main
|
||||
|
||||
- name: Настройка виртуального хоста (Ubuntu/Debian)
|
||||
template:
|
||||
src: default.conf.j2
|
||||
dest: /etc/nginx/sites-available/default
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
backup: true
|
||||
when: ansible_os_family == "Debian"
|
||||
notify: restart nginx
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- vhost
|
||||
- debian
|
||||
|
||||
- name: Настройка виртуального хоста (RHEL/CentOS)
|
||||
template:
|
||||
src: default.conf.j2
|
||||
dest: /etc/nginx/conf.d/default.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
backup: true
|
||||
when: ansible_os_family == "RedHat"
|
||||
notify: restart nginx
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- vhost
|
||||
- rhel
|
||||
|
||||
- name: Проверка конфигурации nginx
|
||||
command: nginx -t
|
||||
register: nginx_config_test
|
||||
changed_when: false
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- test
|
||||
|
||||
- name: Показать результат проверки конфигурации
|
||||
debug:
|
||||
msg: "{{ nginx_config_test.stdout_lines }}"
|
||||
when: nginx_config_test.stdout_lines is defined
|
||||
tags:
|
||||
- nginx
|
||||
- config
|
||||
- test
|
||||
Reference in New Issue
Block a user