🚀 Руководство по установке Jenkins, Grafana и Docker через Ansible
Этот репозиторий содержит Ansible Playbook для автоматизированной настройки сервера, установки Docker, развертывания Jenkins и Grafana в контейнерах Docker, а также настройки системы безопасности.
🔗 Репозиторий: GitHub
📌 Обзор Playbook
Playbook выполняет следующие задачи:
1️⃣ Настройка сервера: Установка часового пояса и основных сервисов.
2️⃣ Настройка Chrony NTP: Синхронизация времени через Chrony.
3️⃣ Конфигурация SSH: Безопасная настройка SSH-демона.
4️⃣ Настройка брандмауэра UFW: Обеспечение безопасности сервера.
5️⃣ Установка и настройка Docker.
6️⃣ Развертывание Grafana в Docker.
7️⃣ Развертывание Jenkins в Docker.
🛠 Требования
Перед запуском Playbook убедитесь, что:
✔️ Ansible 2.9+ установлен на управляющем узле.
✔️ SSH-доступ к целевым серверам.
✔️ Целевые серверы используют Unix-подобную ОС (Ubuntu, RHEL и др.).
✔️ Internet-доступ у серверов для загрузки необходимых пакетов.
📂 Структура проекта
- roles/server-install: Базовая настройка сервера.
- roles/frzk.chrony: Настройка Chrony для NTP-синхронизации.
- playbooks/sshd.yml: Настройка SSH-демона (включен в основной Playbook).
- playbooks/ufw.yml: Настройка UFW-брандмауэра (включен в основной Playbook).
- playbooks/grafana-docker-install.yml: Установка и настройка Grafana в Docker.
- playbooks/jenkins-docker-install.yml: Установка и настройка Jenkins в Docker.
🔧 Переменные
Вы можете задать следующие переменные для кастомизации Playbook:
Глобальные переменные
hosts: "серверы, к которым будет применен Playbook"
env: "окружение (по умолчанию: prod)"
env_color: "цветовой код для вывода окружения (по умолчанию: \033[0;33m)"
timezone: "Часовой пояс (по умолчанию: Europe/Warsaw)"
Настройки Chrony NTP
chrony_service_name: "chronyd"
chrony_ntp_pools: "список NTP-пулов (по умолчанию пустой)"
chrony_ntp_servers: "список NTP-серверов (по умолчанию: RHEL NTP pool)"
chrony_config_file: "/etc/chrony.conf"
chrony_config_driftfile: "/var/lib/chrony/drift"
chrony_config_logdir: "/var/log/chrony"
chrony_makestep_threshold: 5
chrony_makestep_limit: 3
📦 Установка необходимых ролей Ansible Galaxy
Перед выполнением Playbook установите роли:
ansible-galaxy install -r roles/requirements.yml
Если роли уже установлены, можно выполнить обновление:
ansible-galaxy install -g -f -r roles/requirements.yml
🚀 Развертывание Docker, Grafana и Jenkins через Ansible
🔹 1. Клонирование репозитория
git clone https://github.com/Shipssv83/Ansible-Jenkins-Grafana-Docker-Install.git
cd Ansible-Jenkins-Grafana-Docker-Install
🔹 2. Запуск установки Grafana в Docker
ansible-playbook -i hosts --user dev --extra-vars "hosts=host_name" --vault-password-file=password_file playbooks/grafana-docker-install.yml
📌 Что делает этот Playbook?
✅ Устанавливает Docker и Docker Compose.
✅ Разворачивает Grafana в контейнере Docker.
✅ Настраивает доступ через UFW.
🔹 3. Запуск установки Jenkins в Docker
ansible-playbook -i hosts --user dev --extra-vars "hosts=host_name" --vault-password-file=password_file playbooks/jenkins-docker-install.yml
📌 Что делает этот Playbook?
✅ Устанавливает Docker и Docker Compose.
✅ Разворачивает Jenkins в контейнере Docker.
✅ Открывает доступ через UFW.
🎯 Заключение
Теперь ваш сервер полностью настроен и готов к работе с Jenkins, Grafana и Docker. Вы можете начать настраивать мониторинг и автоматизацию CI/CD-процессов.