Добавить README.md
This commit is contained in:
105
README.md
Normal file
105
README.md
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
# Домашнее задание 27
|
||||||
|
|
||||||
|
## Резервное копирование
|
||||||
|
|
||||||
|
Для выполнение задания используется vagrant box Ubuntu 22.04
|
||||||
|
|
||||||
|
### Создание Vagrantfile
|
||||||
|
|
||||||
|
Зададим следующие характеристики для VM
|
||||||
|
|
||||||
|
- CPU - 1
|
||||||
|
- Memory - 512mb
|
||||||
|
|
||||||
|
Для VM **backup-server** добавим дополнительный диск размером 2Gb
|
||||||
|
|
||||||
|
|
||||||
|
Только после того, как создасться VM **backup-server** запуститься provision через ansible.
|
||||||
|
|
||||||
|
Готовый [Vagrantfile](Vagrantfile)
|
||||||
|
|
||||||
|
|
||||||
|
### Cоздание ansible.yml
|
||||||
|
|
||||||
|
Сценарий для Ansible будет выполнять следующие действия:
|
||||||
|
|
||||||
|
На всех VM:
|
||||||
|
1. Создания пользователя **backup-user**
|
||||||
|
2. Обновление пакетов
|
||||||
|
3. Установка borgbackup
|
||||||
|
|
||||||
|
На VM **client**:
|
||||||
|
1. Генерация ssh ключа
|
||||||
|
2. Генерируют пароль для шифрование бэкапов (и сохраняет в файле **pass**)
|
||||||
|
3. Инициализация borg сервера
|
||||||
|
4. Копирование скрипта для бэкапа
|
||||||
|
5. Настройка крон для запуска скрипта для бэкапа
|
||||||
|
|
||||||
|
На VM **backup-server**:
|
||||||
|
1. Форматирует подлюченный hdd d ext4
|
||||||
|
2. Монтирует по пути /var/hdd-backup
|
||||||
|
3. Копирует публичный ключ для **backup-user**
|
||||||
|
|
||||||
|
Готовый [ansible.yml](ansible.yml)
|
||||||
|
|
||||||
|
### Cоздание template_backup.sh
|
||||||
|
|
||||||
|
Шаблон для создания бэкапов. При копирования ansile автоматически подставит пароль сгенерированный при инициализации borg.
|
||||||
|
|
||||||
|
Скрипт выполняем следующие действия.
|
||||||
|
|
||||||
|
1. Создает бэкап каталога /etc
|
||||||
|
2. Проверяет, создался бэкап и делает соотвтсвующую запись в логи
|
||||||
|
3. Удаляет старые бэкапы
|
||||||
|
|
||||||
|
|
||||||
|
Готовый [template_backup.sh](template_backup.sh)
|
||||||
|
|
||||||
|
### Проверка
|
||||||
|
|
||||||
|
Запускаем vagrant
|
||||||
|
```bash
|
||||||
|
alex@ubuntu-pc:~/Документы/27$ vagrant up
|
||||||
|
Bringing machine 'client' up with 'virtualbox' provider...
|
||||||
|
Bringing machine 'backup-server' up with 'virtualbox' provider...
|
||||||
|
==> client: Importing base box 'ubuntu/jammy64'...
|
||||||
|
==> client: Matching MAC address for NAT networking...
|
||||||
|
==> client: Checking if box 'ubuntu/jammy64' version '20241002.0.0' is up to date...
|
||||||
|
==> client: Setting the name of the VM: 27_client_1771777438146_29216
|
||||||
|
==> client: Clearing any previously set network interfaces...
|
||||||
|
==> client: Preparing network interfaces based on configuration...
|
||||||
|
client: Adapter 1: nat
|
||||||
|
...
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
TASK [show pass] ***************************************************************
|
||||||
|
ok: [client] => {
|
||||||
|
"msg": "ВНИМАНИЕ!!! Сохраните сгенерированный пароль: PASSSSSS"
|
||||||
|
}
|
||||||
|
|
||||||
|
TASK [borg initialization] *****************************************************
|
||||||
|
changed: [client]
|
||||||
|
|
||||||
|
TASK [create backup script] ****************************************************
|
||||||
|
changed: [client]
|
||||||
|
|
||||||
|
TASK [create cron] *************************************************************
|
||||||
|
changed: [client]
|
||||||
|
|
||||||
|
PLAY RECAP *********************************************************************
|
||||||
|
backup-server : ok=12 changed=10 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|
||||||
|
client : ok=16 changed=11 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Обязательно сохраним пароль из задачи **show pass**!
|
||||||
|
|
||||||
|
Ждем 5 минут, и проверим
|
||||||
|
```bash
|
||||||
|
root@client:/opt# borg list backup-user@192.168.80.30:/var/hdd-backup/backup
|
||||||
|
Enter passphrase for key ssh://backup-user@192.168.80.30/var/hdd-backup/backup: <<<<ТУТ_ВВОДИМ_ПАРОЛЬ_ИЗ_ФАЙЛА_PASS>>>>
|
||||||
|
backup_dir_etc-2026.02.22_16:50:01 Sun, 2026-02-22 16:50:03 [307e46ddb5eae2d003e41869f328a0ff61a9bcf86df8d568279da9e81b816cb5]
|
||||||
|
```
|
||||||
|
|
||||||
|
Все готово!
|
||||||
Reference in New Issue
Block a user