Найти в Дзене

3 Проект 2

Источник: alt-linuxmetod.ru cd ~/Projects/ mkdir -p Project_02/terraform cd Project_02/terraform cp ~/Projects/Project_01/terraform/provider.tf ./ terraform init cp ~/Projects/Project_01/terraform/network.tf ./ 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"
Оглавление

Источник: 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’» и приводим её к следующему виду:
-2
  • Настраиваем парольную аутентификацию для удалённого доступа отредактировав конфигаруционный файл /var/lib/pgsql/data/pg_hba.conf:добавляем следующую запись:
-3
  • Перезапускаем 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

  • Результат:
-4
  • Нажимаем Enter
  • Принимаем Лицензионное соглашение и нажимаем Enter
  • Выбираем необходимые Компоненты и нажимаем Enter:
  • Management server Agent of Linux Bootable Media Builder
  • Выбираем Использовать PostgreSQL и нажимаем Enter
  • Заполняем Сведения о подключении PostgreSQL и нажимаем Enter:
-5
  • Оставляем порт для веб-интерфейса управления по умолчанию и нажимаем 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
  • на этапе подключения к серверу управления:
-6

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
  • на этапе подключения к серверу управления:
-7

Cloud-ADM:

  • Проверить наличие агентов в веб-интерфейсе управления: device Physical and virtual machines
  • PostgreSQL агент
  • Linux агент