upd README.md
This commit is contained in:
		
							parent
							
								
									084f993e27
								
							
						
					
					
						commit
						bfd0dba360
					
				
							
								
								
									
										77
									
								
								README.md
								
								
								
								
							
							
						
						
									
										77
									
								
								README.md
								
								
								
								
							| 
						 | 
				
			
			@ -1,17 +1,68 @@
 | 
			
		|||
### Network devices backup.
 | 
			
		||||
# Network devices backup.
 | 
			
		||||
 | 
			
		||||
Раз в сутки, в указанное время, подключается к сетевым устройствам.
 | 
			
		||||
Отправляет коммит в удалённый репозиторий.
 | 
			
		||||
Скрипт на python для автоматизации сбора backup с сетевых устройств.
 | 
			
		||||
 | 
			
		||||
Используется:
 | 
			
		||||
- Python 3.13
 | 
			
		||||
- "gitpython>=3.1.44" - для работы с гитом
 | 
			
		||||
- "netmiko>=4.5.0" - для подключения к сетевым устройствам
 | 
			
		||||
- "schedule>=1.2.2" - для периодического выполнения backup
 | 
			
		||||
 | 
			
		||||
Python 3.13
 | 
			
		||||
Используются библиотеки:
 | 
			
		||||
-    "gitpython>=3.1.44" - для работы с гитом
 | 
			
		||||
-    "netmiko>=4.5.0" - для подключения к сетевым устройствам
 | 
			
		||||
-    "schedule>=1.2.2" - для периодического выполнения backup
 | 
			
		||||
## Описание работы:
 | 
			
		||||
После запуска клонирует удалённый репозиторий.
 | 
			
		||||
Проходит по списку устройств, подключается по ssh и получает backup.
 | 
			
		||||
Если есть изменения в конфиге - делает комит в локальный репозиторий.
 | 
			
		||||
Пушит все комиты в удалённый репозиторий.
 | 
			
		||||
Повторяет раз в сутки в указанное время.
 | 
			
		||||
 | 
			
		||||
Для запуска.
 | 
			
		||||
Переменные окружения (см. app/config/.env-template)
 | 
			
		||||
app/config/config.ini
 | 
			
		||||
Пример конфиг файла см. app/config/config-template.ini
 | 
			
		||||
Положить файл со списком устройств в папку config
 | 
			
		||||
## Возможности
 | 
			
		||||
- Сбор backup с mikrotik, snr, cisco(ios), ряд моделей cisco small business 
 | 
			
		||||
- Удаление локального гит репозитория полсе пуша в удалённый.
 | 
			
		||||
- Разбивать бэкапы по папкам внутри репозитория (по регулярному выражению от имени хоста)
 | 
			
		||||
- Отправлять оповещение на почту, если есть ошибки при снятии бэкапов.
 | 
			
		||||
- Работать локально, без пуша в удалённый репозиторий
 | 
			
		||||
 | 
			
		||||
## Использование
 | 
			
		||||
### Docker
 | 
			
		||||
Для запуска
 | 
			
		||||
- Создать папку для проекта.
 | 
			
		||||
- Внутри папки создать:
 | 
			
		||||
- - Файл docker-compose.yaml
 | 
			
		||||
- - Папку logs (в эту папку будут писаться логи)
 | 
			
		||||
- - Папку config (в этой папке будет конфиг файл и список сетевых устройств)
 | 
			
		||||
- - Папку backups (в этой папке будет git репозиторий с backup-ами )
 | 
			
		||||
 | 
			
		||||
Пример docker-compose файла:  app/docker/docker-compose.yaml
 | 
			
		||||
 | 
			
		||||
Закомментированные переменные нужны, только в случае, если используются соответствующие функции.
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
services:
 | 
			
		||||
  net-backup:
 | 
			
		||||
    image: git.sm8255082.ru/osnova/net-backup:1.2.0
 | 
			
		||||
    restart: "no"
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./logs:/app/logs
 | 
			
		||||
      - ./config:/app/config
 | 
			
		||||
      - ./backups:/app/backups
 | 
			
		||||
    environment:
 | 
			
		||||
      - TZ=Europe/Moscow # Часовой пояс.
 | 
			
		||||
      - NET_DEV_USER=admin # Имя пользователя для подключаться к устройствам.
 | 
			
		||||
      #- NET_DEV_DOMAIN=local # Домен, если используется доменная учётная запись.
 | 
			
		||||
      - NET_DEV_PWD=password # Пароль от УЗ для подключения к устройствам.
 | 
			
		||||
      #- GIT_USERNAME=git_user # Название токена, используемого для пуша коммитов в gitlab.
 | 
			
		||||
      #- GIT_TOKEN=bla-bla-lba # Токен, используемый для пуша коммитов в gitlab.
 | 
			
		||||
      #- MAIL_USER=mail_user # Пользователь для авторизации на smtp сервере
 | 
			
		||||
      #- MAIL_PWD=bla-bla-lba # Пароль для авторизации на smtp сервере
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Настройка
 | 
			
		||||
В папке config:
 | 
			
		||||
- Создать файл config.ini (пример содержимого app/config/config-template.ini)
 | 
			
		||||
- Создать файл dev_list.txt (список устройств)
 | 
			
		||||
 | 
			
		||||
Пример содержимого dev_list.txt, которое попадёт под регулярное выражение по умолчанию.
 | 
			
		||||
```text
 | 
			
		||||
HOME-GW01 192.168.254.1 MikroTik RB5009UPr+S+
 | 
			
		||||
HOME-ASW02 192.168.250.202 MikroTik CRS310-8G+2S+
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,14 +3,19 @@
 | 
			
		|||
# False \ True - включение\отключение отправки оповещения в телеграм
 | 
			
		||||
send: False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Конфиг для отправки оповещений на почту телеграм
 | 
			
		||||
[mail]
 | 
			
		||||
# False \ True - включение\отключение отправки оповещения на почту
 | 
			
		||||
send: False
 | 
			
		||||
# Адрес smtp сервера
 | 
			
		||||
server: smtp.example.com
 | 
			
		||||
# Порт smtp сервера
 | 
			
		||||
port: 25
 | 
			
		||||
# Адрес с которого отправляются оповещения
 | 
			
		||||
from_address: net-bcp@example.com
 | 
			
		||||
# Адрес или список адресов, на которые отправляется оповещений
 | 
			
		||||
to_address: engineer@example.com, network_manager@example.com
 | 
			
		||||
# Тема письма
 | 
			
		||||
subject: Warning in backup network device
 | 
			
		||||
 | 
			
		||||
# Конфиг гит репозитория
 | 
			
		||||
| 
						 | 
				
			
			@ -20,6 +25,7 @@ push: False
 | 
			
		|||
# Пользователь в локальном гите
 | 
			
		||||
user: net-bcp
 | 
			
		||||
mail: net-bcp@example.com
 | 
			
		||||
 | 
			
		||||
# Настройки для удалённого репозитория
 | 
			
		||||
# Пока только https
 | 
			
		||||
protocol: https
 | 
			
		||||
| 
						 | 
				
			
			@ -45,9 +51,11 @@ folder_name_pattern: ^(.*?)-
 | 
			
		|||
min_string_count: 50
 | 
			
		||||
 | 
			
		||||
[net_dev]
 | 
			
		||||
# True \ False - создание лога подключения к устройству (для тестов на одном устройстве)
 | 
			
		||||
debug: False
 | 
			
		||||
# Порт на который подключаться по ssh
 | 
			
		||||
ssh_port: 22
 | 
			
		||||
# Время, которое netmiko ждёт результата введённой команды
 | 
			
		||||
read_timeout: 30
 | 
			
		||||
 | 
			
		||||
[log]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
version: '3.3'
 | 
			
		||||
services:
 | 
			
		||||
  net-backup:
 | 
			
		||||
    image: git.sm8255082.ru/osnova/net-backup:1.2.0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
[project]
 | 
			
		||||
name = "net-backup"
 | 
			
		||||
version = "0.1.0"
 | 
			
		||||
version = "1.2.0"
 | 
			
		||||
description = "Create backup network devices"
 | 
			
		||||
readme = "README.md"
 | 
			
		||||
requires-python = ">=3.13"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue