feat: Выполнил практическое задание по DevOps
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
- name: Подготовка директории
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
path: /opt/nginx
|
||||
mode: "0755"
|
||||
|
||||
- name: Проверка наличия сертификата
|
||||
ansible.builtin.stat:
|
||||
path: /opt/nginx/ssl/cert.pem
|
||||
register: cert_file
|
||||
|
||||
- name: Проверка наличия приватного ключа
|
||||
ansible.builtin.stat:
|
||||
path: /opt/nginx/ssl/key.pem
|
||||
register: key_file
|
||||
|
||||
- name: Создание директории для сертификатов
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: /opt/nginx/ssl
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
when: not cert_file.stat.exists or not key_file.stat.exists
|
||||
|
||||
- name: Генерация приватного ключа
|
||||
become: true
|
||||
community.crypto.openssl_privatekey:
|
||||
path: /opt/nginx/ssl/key.pem
|
||||
size: 2048
|
||||
owner: root
|
||||
group: 101
|
||||
mode: '0640'
|
||||
when: not cert_file.stat.exists or not key_file.stat.exists
|
||||
|
||||
- name: Генерация CSR
|
||||
become: true
|
||||
community.crypto.openssl_csr:
|
||||
path: /opt/nginx/ssl/nginx.csr
|
||||
privatekey_path: /opt/nginx/ssl/key.pem
|
||||
common_name: nginx.local
|
||||
subject_alt_name:
|
||||
- "DNS:nginx.local"
|
||||
- "DNS:localhost"
|
||||
- "IP:{{ansible_facts['default_ipv4']['address']}}"
|
||||
when: not cert_file.stat.exists or not key_file.stat.exists
|
||||
|
||||
- name: Генерация самоподписанного сертификата
|
||||
become: true
|
||||
community.crypto.x509_certificate:
|
||||
path: /opt/nginx/ssl/cert.pem
|
||||
privatekey_path: /opt/nginx/ssl/key.pem
|
||||
csr_path: /opt/nginx/ssl/nginx.csr
|
||||
provider: selfsigned
|
||||
selfsigned_not_after: "+3650d"
|
||||
when: not cert_file.stat.exists or not key_file.stat.exists
|
||||
|
||||
- name: Изменение прав на сертификат
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: /opt/nginx/ssl/cert.pem
|
||||
owner: root
|
||||
group: "101"
|
||||
mode: "0644"
|
||||
|
||||
- name: Копирование файлов конфигурации
|
||||
become: true
|
||||
ansible.builtin.copy:
|
||||
src: "{{item}}"
|
||||
dest: "/opt/nginx/{{item}}"
|
||||
mode: "0755"
|
||||
loop:
|
||||
- nginx.conf
|
||||
- Dockerfile
|
||||
- index.html
|
||||
- docker-compose.yaml
|
||||
- backup.sh
|
||||
|
||||
- name: Подготовка директории бекапов
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
path: /opt/nginx/backups
|
||||
mode: "0755"
|
||||
|
||||
- name: Настройка еженедельного резервного копирования Nginx
|
||||
become: true
|
||||
ansible.builtin.cron:
|
||||
name: "nginx configuration backup"
|
||||
minute: "0"
|
||||
hour: "1"
|
||||
weekday: "1"
|
||||
job: "/opt/nginx/backup.sh"
|
||||
env: false
|
||||
|
||||
- name: Сборка и запуск Docker Compose
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/nginx
|
||||
state: present
|
||||
build: always
|
||||
become: true
|
||||
Reference in New Issue
Block a user