Автоматизация настройки и управления Linux серверами с помощью bash скриптов и Ansible. Включает мониторинг, бэкапы и безопасность.
- ✅ Автоматическая настройка серверов Ubuntu/CentOS
- ✅ Мониторинг системы и сервисов
- ✅ Автоматические бэкапы данных
- ✅ Управление пользователями и группами
- ✅ Настройка безопасности и firewall
- ✅ Установка и настройка веб-серверов (Apache/Nginx)
- ✅ SSL сертификаты и безопасность
- Linux (Ubuntu 22.04, CentOS 8)
- Bash scripting
- Ansible для автоматизации
- Prometheus для мониторинга
- Grafana для визуализации
- UFW/iptables для firewall
- Cron для автоматизации задач
linux-server-automation/
├── scripts/
│ ├── server-setup.sh # Основной скрипт настройки
│ ├── monitoring-setup.sh # Настройка мониторинга
│ ├── backup-script.sh # Скрипт бэкапов
│ ├── security-hardening.sh # Настройка безопасности
│ └── user-management.sh # Управление пользователями
├── ansible/
│ ├── playbooks/
│ │ ├── install-packages.yml
│ │ ├── configure-users.yml
│ │ ├── setup-monitoring.yml
│ │ ├── configure-nginx.yml
│ │ └── security-setup.yml
│ ├── inventory/
│ │ └── hosts.yml
│ └── roles/
│ ├── common/
│ ├── monitoring/
│ ├── security/
│ └── webserver/
├── monitoring/
│ ├── prometheus-config.yml
│ ├── grafana-dashboards/
│ └── alert-rules.yml
├── backup/
│ ├── backup-strategy.md
│ ├── restore-procedures.md
│ └── backup-scripts/
├── security/
│ ├── firewall-rules/
│ ├── ssl-certificates/
│ └── security-policies/
└── docs/
├── installation.md
├── configuration.md
└── troubleshooting.md
git clone https://github.com/twinleq/linux-server-automation.git
cd linux-server-automation# Запуск основного скрипта настройки
sudo ./scripts/server-setup.sh
# Настройка мониторинга
sudo ./scripts/monitoring-setup.sh
# Настройка безопасности
sudo ./scripts/security-hardening.sh# Установка Ansible
pip install ansible
# Запуск playbook
ansible-playbook -i ansible/inventory/hosts.yml ansible/playbooks/install-packages.yml- Обновление системы
- Установка необходимых пакетов
- Настройка временной зоны
- Создание пользователей
- Настройка SSH
- Prometheus для сбора метрик
- Grafana для визуализации
- Node Exporter для системных метрик
- Настраиваемые дашборды
- Алерты и уведомления
- Автоматические ежедневные бэкапы
- Сжатие и шифрование
- Ротация старых бэкапов
- Восстановление из бэкапа
- Мониторинг бэкапов
- Настройка UFW firewall
- Отключение ненужных сервисов
- Настройка SSH ключей
- Регулярные обновления безопасности
- Мониторинг безопасности
- CPU использование
- Использование памяти
- Дисковое пространство
- Сетевая активность
- Статус сервисов
- Логи системы
- System Overview
- Service Status
- Security Monitoring
- Backup Status
- Performance Metrics
- Firewall с ограниченными портами
- SSH с ключами вместо паролей
- Регулярные обновления безопасности
- Мониторинг подозрительной активности
- Логирование всех действий
- Автоматическое получение Let's Encrypt
- Автоматическое обновление
- Настройка для веб-серверов
- HSTS заголовки
-
Проблемы с правами доступа
sudo chmod +x scripts/*.sh -
Проблемы с Ansible
ansible --version pip install --upgrade ansible
-
Проблемы с мониторингом
systemctl status prometheus systemctl status grafana-server
- Системные логи:
/var/log/syslog - Логи скриптов:
/var/log/server-automation.log - Логи мониторинга:
/var/log/prometheus.log
MIT License - см. файл LICENSE
Ромадановский Виталий Денисович - Junior DevOps Engineer
- GitHub: @twinleq
- Email: twinleq@bk.ru
- Website: https://romadanovsky.ru