Найти в Дзене
Openstack Cli# Обращаемся к источнику данных, чтобы узнать ID существующего виртуального маршрутизатора data "openstack_networking_router_v2" "router" { name = "cloud" } data "openstack_networking_router_v2" "router1" { name = "cloud" } data "openstack_networking_router_v2" "router2" { name = "cloud" } data "openstack_networking_router_v2" "router3" { name = "cloud" } data "openstack_networking_router_v2" "router4" { name = "cloud" } # Создаём сеть с именем "INTERNET" в соответствие с топологией resource "openstack_networking_network_v2" "network" { name = "INTERNET" admin_state_up = "true" } resource "openstack_networking_network_v2" "network1" { name = "Backup-Net" admin_state_up = "true" } resource "openstack_networking_network_v2" "network2" { name = "Management-Net" admin_state_up = "true" } resource "openstack_networking_network_v2" "network3" { name = "Internal-Net" admin_state_up = "true" } resource "openstack_networking_network_v2" "network4" { name = "External-Net" admin_state_up = "true" } # Создаём подсеть с именем "INTERNET" в ранее созданной сети с именем "INTERNET" resource "openstack_networking_subnet_v2" "subnet" { name = "INTERNET" network_id = openstack_networking_network_v2.network.id cidr = "192.168.200.0/24" ip_version = 4 gateway_ip = "192.168.200.1" dns_nameservers = [ "77.88.8.8" ] enable_dhcp = false } resource "openstack_networking_subnet_v2" "subnet1" { name = "Backup-Net" network_id = openstack_networking_network_v2.network1.id cidr = "192.168.10.128/27" ip_version = 4 gateway_ip = "192.168.10.158" dns_nameservers = [ "77.88.8.8" ] enable_dhcp = false } resource "openstack_networking_subnet_v2" "subnet2" { name = "Management-Net" network_id = openstack_networking_network_v2.network2.id cidr = "192.168.10.64/26" ip_version = 4 gateway_ip = "192.168.10.126" dns_nameservers = [ "77.88.8.8" ] enable_dhcp = false } resource "openstack_networking_subnet_v2" "subnet3" { name = "Internal-Net" network_id = openstack_networking_network_v2.network3.id cidr = "192.168.10.0/26" ip_version = 4 gateway_ip = "192.168.10.62" dns_nameservers = [ "77.88.8.8" ] enable_dhcp = false } # Создаём подсеть с именем "INTERNET" в ранее созданной сети с именем "INTERNET" resource "openstack_networking_subnet_v2" "subnet4" { name = "External-Net" network_id = openstack_networking_network_v2.network4.id cidr = "172.16.1.0/29" ip_version = 4 gateway_ip = "172.16.1.6" dns_nameservers = [ "77.88.8.8" ] enable_dhcp = false } # Добавляем в существующий маршрутизатор созданную подсеть с именем "INTERNET", чтобы в дальнейшем ВМ подключённые к данной подсети имели доступ в Интернет resource "openstack_networking_router_interface_v2" "router_interface" { router_id = data.openstack_networking_router_v2.router.id subnet_id = openstack_networking_subnet_v2.subnet.id } resource "openstack_networking_router_interface_v2" "router_interface1" { router_id = data.openstack_networking_router_v2.router1.id subnet_id = openstack_networking_subnet_v2.subnet1.id } resource "openstack_networking_router_interface_v2" "router_interface2" { router_id = data.openstack_networking_router_v2.router2.id subnet_id = openstack_networking_subnet_v2.subnet2.id } resource "openstack_networking_router_interface_v2" "router_interface3" { router_id = data.openstack_networking_router_v2.router3.id subnet_id = openstack_networking_subnet_v2.subnet3.id } resource "openstack_networking_router_interface_v2" "router_interface4" { router_id = data.openstack_networking_router_v2.router4.id subnet_id = openstack_networking_subnet_v2.subnet4.id } Скрипт автоматизации: deploy-cloudinfra.sh a) Основные параметры Рабочая директория: /home/altlinux/bin Конфигурационный файл: /home/altlinux/bin/cloudinit.conf b) Пример скрипта (deploy-cloudinfra.sh) bash #!/bin/bash # Настройки подключения к облачному провайдеру source /home/altlinux/bin/cloudinit.conf
7 месяцев назад
38 Развертывание базового стека ELK
vim ~/elk.yml version: '3.7' services: elasticsearch: image: elasticsearch:7.10.1 container_name: elasticsearch environment: - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms1g -Xmx1g" ulimits: memlock: soft: -1 hard: -1 ports: - "9200:9200" volumes: - es_data:/usr/share/elasticsearch/data logstash: image: logstash:7.10.1 container_name: logstash depends_on: - elasticsearch volumes: - ...
9 месяцев назад
37 Развертывание приложений в Docker (азвертывание WordPress с использованием Docker Compose)
vim ~/wordpress.yml version: '3.1' services: wordpress: image: wordpress:latest container_name: wordpress networks: - wordpress-network ports: - "80:80" environment: WORDPRESS_DB_HOST: mysql:3306 WORDPRESS_DB_NAME: wordpress WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress depends_on: - mysql volumes: - wordpress_data:/var/www/html mysql: image: mysql:5.7 container_name: mysql networks: ...
9 месяцев назад
36 Развертывание приложений в Docker (Развертывание Python-скрипта в Docker)
vim ~/py.py import os def main(): working_directory = os.path.expanduser("/root") file_path = os.path.join(working_directory, "input.txt") if os.path.exists(file_path): with open(file_path, "r", encoding="utf-8") as file: content = file.read() print(content) else: print("Ошибка: файл input.txt не найден в директории /root.") if...
9 месяцев назад
35 Cоздание и настройка скрипта на машине ControlVM
terraform destroy cloudinit.sh #!/bin/bash cd /home/altlinux/bin source cloud.conf terraform init terraform apply -auto-approve terraform output > /home/altlinux/white.ip ansible-playbook -i ansible/inventory ansible/wireguard_playbook.yml ansible-playbook -i ansible/inventory ansible/ssh_playbook.yml echo "Проверяем доступность созданных инстансов, для каждого инстанса статус должен быть ACTIVE:" echo "" openstack --insecure server list echo "Проверяем доступность созданного балансировщика...
9 месяцев назад
34 Подготовка облачной инфраструктуры
Все файлы создаются в контексте каталога /home/altlinux/bin, если не сказано иное vim network.tf # Обращаемся к источнику данных, чтобы узнать ID существующего виртуального маршрутизатора data "openstack_networking_router_v2" "router" { name = "cloud" } # Создаём сеть с именем "INTERNET" в соответствие с топологией resource "openstack_networking_network_v2" "network" { name = "INTERNET" admin_state_up = "true" } # Создаём подсеть с именем "INTERNET" в ранее созданной сети с именем...
9 месяцев назад
33 Подготовка облачной инфраструктуры (Подключение Terraform к провайдеру OpenStack)
vim ~/.terraformrc provider_installation { network_mirror { url = "https://terraform-mirror.mcs.mail.ru" include = ["registry.terraform.io/*/*"] } direct { exclude = ["registry.terraform.io/*/*"] } } mkdir ~/bin && cd ~/bin vim cloud.conf # Terraform export TF_VAR_OS_AUTH_URL=https://cyber-infra.local.prof:5000/v3 export TF_VAR_OS_PROJECT_NAME=Project1 export TF_VAR_OS_USERNAME=user01 export TF_VAR_OS_PASSWORD=user01P@ssw0rd # openstacl-cli export OS_AUTH_URL=https://cyber-infra.local.prof:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_AUTH_TYPE=password export...
9 месяцев назад
32 Подготовка облачной инфраструктуры
Заходим в файл /etc/hosts/ и ставим ip по которому подключены к киберинфра tab cyber-infra.local.prof Устанавливаем wget и unzip: sudo apt-get update && sudo apt-get install -y wget unzip wget https://hashicorp-releases.mcs.mail.ru/terraform/1.10.3/terraform_1.10.3_linux_amd64.zip sudo unzip terraform_1.10.3_linux_amd64.zip -d /usr/local/bin/ Проверяем terraform --version становим openstack-cli: sudo apt-get install -y python3-module-openstackclient python3-module-pip Проверяем openstack --version Установим необходимые модули для работы:python-octaviaclient...
9 месяцев назад
31 Подготовка машины ControlVM
Создаём ключевую пару для доступа к ControlVM на рабочем столе с расширением '.pem': puttygen -t rsa -b 2048 -o Рабочий\ стол/cloud.pem Открываем в блокноте сгенерированный ключ и копируем заголовок ssh-rsa и публичную часть ключа:Заголовок и публичную часть ключа необходимо будет поместить в Кибер Инфраструктура далее В веб-интерфейсе...
9 месяцев назад
30 Настройка резервного копирования (подключить в качестве устройства хранения)
Средствами графического интерфейса создаём на диске sdb таблицу разделов, раздел и соответствующую файловую систему: mkdir /backups && chmod 777 /backups Реализуем монтирофание: В веб-интерфейсе управления реализуем план полного резервного копированияв данном случае будет реализован план для CLI-HQ, т.к. на ADMIN-HQ не установлен агент из-за нехватки дискового пространства Выполняем полное резервное копирование ADMIN-HQ на узел хранения В данном случае выполняется резервное копирование CLI-HQ т...
9 месяцев назад
28 Настройка резервного копирования (Настройка организации и пользователя)
Создаём пользователя wsradmin с паролем P@ssw0rd на уровне ОС: Создаём отмел wsr: Добавляем пользователя wsradmin в отдел wsr с правами администратора: Реализуем возможность для доступа в веб-интерфейс...
9 месяцев назад