Источник: alt-linuxmetod.ru
Развёртывание недостающих виртуальных машин
- Допустимы любые способы, в том числе и ручное создание ВМ
- Модернизирует ранее написанные файлы для 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 к следующему виду:
- Проверяем доступ до созданных ВМ:
- ssh acm-server ssh db-server ssh bar-agent01
- Передаём файл для установки Кибер Бекап на ВМ (как файл попал на 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
- Проверяем доступ по сети ss -tlpn | grep «5432»
- Создадим пользователя 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>
- например: uname -r
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:
- Management server Agent of Linux Bootable Media Builder
- Выбираем Использовать PostgreSQL и нажимаем Enter
- Заполняем Сведения о подключении PostgreSQL и нажимаем Enter:
- Оставляем порт для веб-интерфейса управления по умолчанию и нажимаем Enter: 9877
- Оставляем порт по умолчанию и нажимаем Enter: 7780
- Ожидаем процесс установки
Cloud-ADM:
- Добавляем в конфигурационный файл /etc/hosts следующую запись:
- 192.168.1.104 cb.au.team
- Открываем веб-браузер и переходим в веб-интерфейс управления 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
- Результат:на этапе выбора компонентов выбираем: agent for Linux Agent for PostgreSQL
- на этапе подключения к серверу управления:
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
- Результат:на этапе выбора компонентов выбираем: agent for Linux
- на этапе подключения к серверу управления:
Cloud-ADM:
- Проверить наличие агентов в веб-интерфейсе управления: device Physical and virtual machines
- PostgreSQL агент
- Linux агент