playbooks | ||
roles/postgresql | ||
ansible.cfg | ||
id_ed25519_vault | ||
inventory.yml | ||
Jenkinsfile | ||
README.md |
Проект по автоматизации настройки PostgreSQL
Этот проект предназначен для автоматизации установки, настройки и управления базой данных PostgreSQL с использованием Ansible и Jenkins. Он включает пайплайн Jenkins и Ansible плейбук с ролью для управления PostgreSQL.
Структура проекта
- Jenkinsfile — скрипт для автоматизации пайплайна Jenkins, который позволяет клонировать репозиторий, расшифровывать SSH-ключи, запускать Ansible плейбук и выполнять определенные задачи роли PostgreSQL.
- ansible.cfg — конфигурационный файл Ansible, где указаны настройки по умолчанию для выполнения плейбуков.
- inventory.yml — файл инвентаря Ansible, который определяет хосты, на которых будут выполняться плейбуки.
- playbooks/install_postgresql.yml — основной Ansible плейбук для установки и настройки PostgreSQL.
- roles/postgresql — Ansible роль для управления PostgreSQL, которая содержит:
- tasks/ — каталог с задачами:
setup.yml
— установка необходимых пакетов PostgreSQL.open_firewall.yml
— настройка правил брандмауэра для доступа к базе данных.initialize.yml
— инициализация новой базы данных.configure.yml
— настройка параметров конфигурации PostgreSQL.databases.yml
— создание и управление базами данных.users.yml
— создание и управление пользователями базы данных.backup.yml
— резервное копирование базы данных.
- templates/ — шаблоны конфигурационных файлов для PostgreSQL:
pg_hba.conf.j2
— шаблон файла для управления доступом к базе данных.postgresql.conf.j2
— шаблон основного конфигурационного файла PostgreSQL.
- vars/ — переменные, используемые в роли PostgreSQL.
- tasks/ — каталог с задачами:
Запуск проекта
Предварительные требования
- Jenkins с установленным Ansible плагином
- Доступ к хостам, указанным в
inventory.yml
Пайплайн Jenkins
Файл Jenkinsfile определяет этапы пайплайна для автоматизированного развертывания PostgreSQL:
- Клонирование репозитория — загрузка кода проекта.
- Расшифровка SSH-ключа — декодирование зашифрованного ключа с использованием Ansible Vault.
- Запуск плейбука PostgreSQL — выполнение Ansible плейбука для развертывания и настройки PostgreSQL на целевых хостах.
Параметры запуска
Пайплайн поддерживает следующие параметры:
- DB_USER — имя пользователя PostgreSQL.
- DB_NAME — название базы данных.
- BACKUP_DIR — директория для хранения резервных копий.
- TASKS — список задач для выполнения, указанный через запятую (например,
setup,backup
).
Порядок задач
По умолчанию задачи выполняются в следующем порядке:
setup
— установка необходимых пакетов.firewall
— настройка брандмауэра.init
— инициализация базы данных.configure
— конфигурация базы данных.database
— создание базы данных.user
— управление пользователями.backup
— резервное копирование данных.
При указании параметра TASKS
, можно выбрать конкретные задачи, и они будут выполнены в этом порядке.