Задание:

a.    Любым способом разверните недостающие виртуальные машины в облаке в соответствие с топологией (см. Топология Project_02).

  1. Характеристики виртуальных машин:
    1. ACM-Server: 1vCPU, 2 ГБ ОЗУ, 20 ГБ размер диска.
    2. DB-Server: 1vCPU, 1 ГБ ОЗУ, 20 ГБ размер диска.
    3. BAR-Agent01: 1vCPU, 1 ГБ ОЗУ, 10 ГБ размер
  2. Образ операционной системы: alt-p11-cloud-x86_64.qcow2.

b.    На развёрнутых виртуальных машинах реализуйте следующий функционал:

  1. Установку сервера управления Кибер Бэкап (версии не ниже 18) на виртуальной машине ACM-Server.
    1. Сервер управления должен быть доступен с Cloud-ADM по имени cb.au.team на порту 9877.
    2. Доступ в веб-интерфейс сервера управления должен быть из-под пользователя root с паролем toor.
    3. Для установки сервера управления в качестве СУБД необходимо использовать PostgreSQL.
  2. Установку агента для Linux на виртуальной машине BAR-Agent01 с последующей регистрацией на сервере управления.
  3. Установку агента для PostgreSQL на виртуальной машине DB-Server с последующей регистрацией на сервере управления.

Вариант реализации:

Cloud-ADM:

Развёртывание недостающих виртуальных машин

  • Допустимы любые способы, в том числе и ручное создание ВМ
  • Модернизирует ранее написанные файлы для Terraform чтобы ускорить процесс создания ВМ
  • Создадим директорию для Project02 и перейдём в неё:
cd ~/Projects/
mkdir -p Project_02/terraform
cd Project_02/terraform
  • Скопируем файл provider.tf из Project01:
cp ~/Projects/Project_01/terraform/provider.tf ./
  • Менять в данном файле ничего не следует, инициализируем текущий каталог для работы с Terraform:
terraform init
  • Результат:

  • Скопируем файл network.tf из Project01:
cp ~/Projects/Project_01/terraform/network.tf ./
    • модернизируем файл network.tf в текущей директории для Project02:
      • избавляемся от цикла через счётчик count
      • копируем данный блок, создавая порты с фиксированными IP-адресами для каждой ВМ
resource "openstack_networking_port_v2" "port_vm_acm-server" {
    name           = "port_acm-server"
    network_id     = "61845892-f9cc-4fde-962c-34b59425a74d"
    admin_state_up = true

    fixed_ip {
        subnet_id   = "13592ca4-8782-410b-9bcc-90810ccab6fe"
        ip_address  = "192.168.1.104"
    }
}

resource "openstack_networking_port_v2" "port_vm_db-server" {
    name           = "port_db-server"
    network_id     = "61845892-f9cc-4fde-962c-34b59425a74d"
    admin_state_up = true

    fixed_ip {
        subnet_id   = "13592ca4-8782-410b-9bcc-90810ccab6fe"
        ip_address  = "192.168.1.105"
    }
}

resource "openstack_networking_port_v2" "port_vm_bar-agent01" {
    name           = "port_bar-agent01"
    network_id     = "61845892-f9cc-4fde-962c-34b59425a74d"
    admin_state_up = true

    fixed_ip {
        subnet_id   = "13592ca4-8782-410b-9bcc-90810ccab6fe"
        ip_address  = "192.168.1.106"
    }
}
  • Скопируем файл network.tf из Project01:
cp ~/Projects/Project_01/terraform/vm-game.tf ./vm.tf
    • модернизируем файл vm.tf в текущей директории для Project02:
      • избавляемся от цикла через счётчик count
      • копируем данный блок, создавая ВМ с соответствующими параметрами (по требованию задания)
resource "openstack_compute_instance_v2" "acm-server" {
  name      = "ACM-Server"
  flavor_id = "101"
  user_data = file("cloud-init.yml")

  block_device {
    uuid                  = "827e08fa-fd3c-41cd-92ca-845bb5018478"
    source_type           = "image"
    volume_size           = "20"
    boot_index            = 0
    destination_type      = "volume"
    delete_on_termination = true
  }

  network {
    port = openstack_networking_port_v2.port_vm_acm-server.id
  }
}

resource "openstack_compute_instance_v2" "db-server" {
  name      = "DB-Server"
  flavor_id = "03bf1b85-2f5f-4ada-a07b-8b994b6dcb57"
  user_data = file("cloud-init.yml")

  block_device {
    uuid                  = "827e08fa-fd3c-41cd-92ca-845bb5018478"
    source_type           = "image"
    volume_size           = "20"
    boot_index            = 0
    destination_type      = "volume"
    delete_on_termination = true
  }

  network {
    port = openstack_networking_port_v2.port_vm_db-server.id
  }
}

resource "openstack_compute_instance_v2" "bar-agent01" {
  name      = "BAR-Agent01"
  flavor_id = "03bf1b85-2f5f-4ada-a07b-8b994b6dcb57"
  user_data = file("cloud-init.yml")

  block_device {
    uuid                  = "827e08fa-fd3c-41cd-92ca-845bb5018478"
    source_type           = "image"
    volume_size           = "10"
    boot_index            = 0
    destination_type      = "volume"
    delete_on_termination = true
  }

  network {
    port = openstack_networking_port_v2.port_vm_bar-agent01.id
  }
}
  • Скопируем файл network.tf из Project01:
cp ~/Projects/Project_01/terraform/cloud-init.yml ./
  • Запускаем автоматическое развёртывания ВМ для Project02 через Terraform:
terraform apply
  • Результат:

  • Результат в веб-интерфейсе облака:

  • Для удобства приводим конфигурационный файл /etc/hosts к следующему виду:

  • Проверяем доступ до созданных ВМ:

  • Передаём файл для установки Кибер Бекап на ВМ (как файл попал на Cloud-ADM не рассматривается):
scp CyberBackup_18_64-bit.x86_64 acm-server:~/
scp CyberBackup_18_64-bit.x86_64 db-server:~/
scp CyberBackup_18_64-bit.x86_64 bar-agent01:~/

 

DB-Server:

  • Установим пакет postgresql17-server:
apt-get update && apt-get install -y postgresql17-server
  • Создаём системные базы данных:
/etc/init.d/postgresql initdb
  • Включаем и добавляе в автозагрузку PostgreSQL:
systemctl enable --now postgresql
  • По умолчанию доступ из сети к PostgreSQL отключён:

  • Разрешаем доступ к PostgreSQL из сети отредактировав конфигаруционный файл /var/lib/pgsql/data/postgresql.conf:
    • в конфигарционном файле находим строку "listen_addresses = 'localhost'" и приводим её к следующему виду:

  • Настраиваем парольную аутентификацию для удалённого доступа отредактировав конфигаруционный файл /var/lib/pgsql/data/pg_hba.conf:
    • добавляем следующую запись:

  • Перезапускаем PostgreSQL:
systemctl restart postgresql
  • Проверяем доступ по сети:

  • Создадим пользователя cyberbackup с паролем cyberbackup с ролью superadmin:
createuser -U postgres --superuser --encrypted --pwprompt cyberbackup

 

ACM-Server:

  • Обновляем систему до актуального состояния и перезагружаем устройство:
apt-get update && apt-get dist-upgrade -y && update-kernel -y && apt-get clean && reboot
  • Должны быть установлены следующие пакеты:
    • где <x.x> – версия ядра (uname -r)
 apt-get install kernel-source-<x.x>
    • например:

apt-get install -y kernel-source-6.12
apt-get install -y kernel-headers-modules-6.12 gcc make kmod-sign
  • Задаём разрешение на исполнение установочному файлу с дистрибутивом Кибер Бэкап:
    • для этого дистрибутив должен быть заранее скачен и помещён на виртуальную машину
cd /home/altlinux/
chmod +x CyberBackup_18_64-bit.x86_64
  • Из под суперпользователя запускаем файл установки:
./CyberBackup_18_64-bit.x86_64
  • Результат:

  • Нажимаем Enter:

  • Принимаем Лицензионное соглашение и нажимаем Enter:

  • Выбираем необходимые Компоненты и нажимаем Enter:

  • Выбираем Использовать PostgreSQL и нажимаем Enter:

  • Заполняем Сведения о подключении PostgreSQL и нажимаем Enter:

  • Оставляем порт для веб-интерфейса управления по умолчанию и нажимаем Enter:

  • Оставляем порт по умолчанию и нажимаем Enter:

  • Ожидаем процесс установки:

 

Cloud-ADM:

  • Добавляем в конфигурационный файл /etc/hosts следующую запись:

  • Открываем веб-браузер и переходим в веб-интерфейс управления http://cb.au.team:9877:

  • Выполняем вход из-под пользователя root с паролем toor:

  • Активируем стартовую лицензию на 30-дней

 

DB-Server:

  • Обновляем систему до актуального состояния и перезагружаем устройство:
apt-get update && apt-get dist-upgrade -y && update-kernel -y && apt-get clean && reboot
  • Должны быть установлены следующие пакеты:
apt-get install -y kernel-source-6.12
apt-get install -y kernel-headers-modules-6.12 gcc make kmod-sign
  • Задаём разрешение на исполнение установочному файлу с дистрибутивом Кибер Бэкап:
    • для этого дистрибутив должен быть заранее скачен и помещён на виртуальную машину
cd /home/altlinux/
chmod +x CyberBackup_18_64-bit.x86_64
  • Из под суперпользователя запускаем файл установки:
./CyberBackup_18_64-bit.x86_64
  • Результат:
    • на этапе выбора компонентов выбираем:

    • на этапе подключения к серверу управления:

 

Bar-Agent01:

  • Обновляем систему до актуального состояния и перезагружаем устройство:
apt-get update && apt-get dist-upgrade -y && update-kernel -y && apt-get clean && reboot
  • Должны быть установлены следующие пакеты:
apt-get install -y kernel-source-6.12
apt-get install -y kernel-headers-modules-6.12 gcc make kmod-sign
  • Задаём разрешение на исполнение установочному файлу с дистрибутивом Кибер Бэкап:
    • для этого дистрибутив должен быть заранее скачен и помещён на виртуальную машину
cd /home/altlinux/
chmod +x CyberBackup_18_64-bit.x86_64
  • Результат:
    • на этапе выбора компонентов выбираем:

    • на этапе подключения к серверу управления:

 

Cloud-ADM:

  • Проверить наличие агентов в веб-интерфейсе управления:

  • PostgreSQL агент:

  • Linux агент:

Последнее изменение: вторник, 25 ноября 2025, 16:22