🚀 Руководство по установке 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-процессов.