Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for MySQL®
  • Начало работы
    • Все руководства
    • Анализ производительности и оптимизация Managed Service for MySQL®
    • Выгрузка базы данных в Yandex Data Processing
    • Миграция базы данных из Managed Service for MySQL® в MySQL®
    • Поставка данных из Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
      • Обзор
      • Консоль управления
      • Terraform
    • Миграция базы данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Managed Service for MySQL® в Yandex Object Storage
    • Перенос данных из Yandex Object Storage в Managed Service for MySQL®
    • Захват изменений MySQL® и поставка в YDS
    • Миграция данных из Yandex Managed Service for PostgreSQL в Managed Service for MySQL® с помощью Yandex Data Transfer
    • Миграция данных из Managed Service for MySQL® в Yandex Managed Service for PostgreSQL с помощью Yandex Data Transfer
    • Миграция данных из Managed Service for MySQL® в Yandex MPP Analytics for PostgreSQL с помощью Yandex Data Transfer
    • Синхронизация данных из стороннего кластера MySQL® в Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
    • Миграция базы данных из MySQL® в ClickHouse® с помощью Yandex Data Transfer
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Создайте инфраструктуру
  • Настройте OpenCart
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Интернет-магазин на платформе OpenCart
  3. Terraform

Создание интернет-магазина на платформе OpenCart с помощью Terraform

Статья создана
Yandex Cloud
Улучшена
kvendingoldo
Обновлена 5 ноября 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Создайте инфраструктуру
  • Настройте OpenCart
  • Удалите созданные ресурсы

Чтобы создать инфраструктуру для интернет-магазина на платформе OpenCart с помощью Terraform:

  1. Подготовьте облако к работе.
  2. Создайте инфраструктуру.
  3. Настройте OpenCart.

Если созданные ресурсы вам больше не нужны, удалите их.

Примечание

В регионе Казахстан доступна только зона доступности kz1-a.

Подготовьте облако к работеПодготовьте облако к работе

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

  • Виртуальная машина: использование вычислительных ресурсов, хранилища, публичного IP-адреса и операционной системы (см. тарифы Compute Cloud).
  • Кластер Managed Service for MySQL®, если он создан для поддержки и обслуживания СУБД: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий (см. тарифы Managed Service for MySQL®).
  • Публичные IP-адреса, если для хостов кластера включен публичный доступ (см. тарифы Virtual Private Cloud).

Создайте инфраструктуруСоздайте инфраструктуру

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Чтобы разместить интернет-магазин на OpenCart с помощью Terraform:

  1. Установите Terraform, получите данные для аутентификации и укажите источник для установки провайдера Yandex Cloud (раздел Настройте провайдер, шаг 1).

  2. Подготовьте файлы с описанием инфраструктуры:

    Готовая конфигурация
    Создание вручную
    1. Клонируйте репозиторий с конфигурационными файлами:

      git clone https://github.com/yandex-cloud-examples/yc-opencart-store.git
      
    2. Перейдите в директорию с репозиторием. В ней должны появиться файлы:

      • opencart.tf — конфигурация создаваемой инфраструктуры;
      • opencart.auto.tfvars — файл с пользовательскими данными.
    1. Создайте папку для конфигурационных файлов.

    2. Создайте в папке:

      1. Конфигурационный файл opencart.tf:

        opencart.tf
        # Объявление переменных для конфиденциальных параметров
        
        variable "folder_id" {
          type = string
        }
        
        variable "vm_user" {
          type = string
        }
        
        variable "ssh_key_path" {
          type = string
        }
        
        variable "db_user" {
          type = string
        }
        
        variable "db_password" {
          type      = string
          sensitive = true
        }
        
        # Добавление прочих переменных
        
        locals {
          network_name = "network-1"
          subnet_name1 = "subnet-1"
          subnet_name2 = "subnet-2"
          sg_db_name   = "opencart-sg"
          sg_vm_name   = "opencart-sg-vm"
          vm_name      = "opencart"
          cluster_name = "opencart"
          db_name      = "db1"
        }
        
        # Настройка провайдера
        
        terraform {
          required_providers {
            yandex = {
              source  = "yandex-cloud/yandex"
              version = ">= 0.47.0"
            }
          }
        }
        
        provider "yandex" {
          folder_id = var.folder_id
        }
        
        # Создание облачной сети
        
        resource "yandex_vpc_network" "network-1" {
          name = local.network_name
        }
        
        # Создание подсетей
        
        resource "yandex_vpc_subnet" "subnet-1" {
          name           = local.subnet_name1
          zone           = "kz1-a"
          network_id     = yandex_vpc_network.network-1.id
          v4_cidr_blocks = ["192.168.1.0/24"]
        }
        
        resource "yandex_vpc_subnet" "subnet-2" {
          name           = local.subnet_name2
          zone           = "kz1-b"
          network_id     = yandex_vpc_network.network-1.id
          v4_cidr_blocks = ["192.168.2.0/24"]
        }
        
        # Создание групп безопасности
        
        resource "yandex_vpc_security_group" "opencart-sg" {
          name       = local.sg_db_name
          network_id = yandex_vpc_network.network-1.id
        
          egress {
            protocol       = "ANY"
            description    = "any"
            v4_cidr_blocks = ["0.0.0.0/0"]
          }
        
          ingress {
            protocol       = "TCP"
            description    = "ext-https"
            v4_cidr_blocks = ["0.0.0.0/0"]
            port           = 3306
          }
        }
        
        resource "yandex_vpc_security_group" "opencart-sg-vm" {
          name       = local.sg_vm_name
          network_id = yandex_vpc_network.network-1.id
        
          egress {
            protocol       = "ANY"
            description    = "any"
            v4_cidr_blocks = ["0.0.0.0/0"]
            from_port      = 0
            to_port        = 65535
          }
        
          ingress {
            description    = "HTTP"
            protocol       = "TCP"
            v4_cidr_blocks = ["0.0.0.0/0"]
            port           = 80
          }
        
          ingress {
            protocol       = "TCP"
            description    = "ssh"
            v4_cidr_blocks = ["0.0.0.0/0"]
            port           = 22
          }
        
          ingress {
            protocol       = "TCP"
            description    = "ext-https"
            v4_cidr_blocks = ["0.0.0.0/0"]
            port           = 443
          }
        }
        
        # Указание готового образа ВМ
        
        resource "yandex_compute_image" "opencart-image" {
          source_family = "opencart"
        }
        
        # Создание ВМ
        
        resource "yandex_compute_instance" "opencart" {
          name        = "opencart"
          platform_id = "standard-v3"
          zone        = "kz1-a"
        
          resources {
            core_fraction = 20
            cores         = 2
            memory        = 4
          }
        
          boot_disk {
            initialize_params {
              image_id = yandex_compute_image.opencart-image.id
              type     = "network-ssd"
              size     = "13"
            }
          }
        
          network_interface {
            subnet_id          = yandex_vpc_subnet.subnet-1.id
            security_group_ids = [yandex_vpc_security_group.opencart-sg-vm.id]
            nat                = true
          }
        
          metadata = {
            user-data = "#cloud-config\nusers:\n  - name: ${var.vm_user}\n    groups: sudo\n    shell: /bin/bash\n    sudo: ['ALL=(ALL) NOPASSWD:ALL']\n    ssh_authorized_keys:\n      - ${file("${var.ssh_key_path}")}"
          }
        }
        
        # Создание кластера MySQL®
        # Если необходимости в кластере нет, удалите блок кода с созданием кластера, БД и пользователя  MySQL®
        
        resource "yandex_mdb_mysql_cluster" "opencart-mysql" {
          name               = local.cluster_name
          environment        = "PRODUCTION"
          network_id         = yandex_vpc_network.network-1.id
          version            = "8.0"
          security_group_ids = [yandex_vpc_security_group.opencart-sg.id]
        
          resources {
            resource_preset_id = "s2.micro"
            disk_type_id       = "network-ssd"
            disk_size          = "10"
          }
        
          host {
            zone             = "kz1-a"
            subnet_id        = yandex_vpc_subnet.subnet-1.id
            assign_public_ip = false
          }
        
          host {
            zone             = "kz1-b"
            subnet_id        = yandex_vpc_subnet.subnet-2.id
            assign_public_ip = false
          }
        }
        
        # Создание базы данных для MySQL®
        
        
        resource "yandex_mdb_mysql_database" "db1" {
          cluster_id = yandex_mdb_mysql_cluster.opencart-mysql.id
          name       = local.db_name
        }
        
        # Создание пользователя для MySQL®
        
        resource "yandex_mdb_mysql_user" "user1" {
          cluster_id = yandex_mdb_mysql_cluster.opencart-mysql.id
          name       = var.db_user
          password   = var.db_password
          permission {
            database_name = yandex_mdb_mysql_database.db1.name
            roles         = ["ALL"]
          }
        }
        
      2. Файл с пользовательскими данными opencart.auto.tfvars:

        opencart.auto.tfvars
        folder_id    = "<идентификатор_каталога>"
        vm_user      = "<имя_пользователя_ВМ>"
        ssh_key_path = "<путь_к_публичному_SSH-ключу>"
        db_user      = "<имя_пользователя_БД>"
        db_password  = "<пароль_для_доступа_к_БД>"
        

    Более подробную информацию о параметрах используемых ресурсов в Terraform см. в документации провайдера:

    • Сеть — yandex_vpc_network
    • Подсети — yandex_vpc_subnet
    • Группы безопасности — yandex_vpc_security_group
    • Образ ВМ — yandex_compute_image
    • Виртуальная машина — yandex_compute_instance
    • Кластер MySQL® — yandex_mdb_mysql_cluster
    • База данных MySQL® — yandex_mdb_mysql_database
    • Пользователь MySQL® — yandex_mdb_mysql_user
  3. В файле opencart.auto.tfvars задайте пользовательские параметры:

    • folder_id — идентификатор каталога.
    • vm_user — имя пользователя ВМ.
    • ssh_key_path — путь к файлу с открытым SSH-ключом для аутентификации пользователя на ВМ. Подробнее см. Создание пары ключей SSH.
    • db_user — имя пользователя БД, например user1.
    • db_password — пароль для доступа к БД. Длина пароля должна составлять от 8 до 128 символов.
  4. Создайте ресурсы:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

  5. Получите публичный IP-адрес ВМ — он потребуется далее, чтобы настроить OpenCart.

После создания инфраструктуры, настройте OpenCart.

Настройте OpenCartНастройте OpenCart

  1. Откройте веб-интерфейс интернет-магазина OpenCart. Для этого откройте в браузере адрес http://<публичный_IP-адрес_ВМ>/. Откроется страница настройки OpenCart.

  2. Ознакомьтесь с лицензией и нажмите Continue.

    Шаг 1

  3. Убедитесь, что все строки с требованиями к системе отмечены зелеными галочками, и нажмите кнопку Continue.

    Шаг 2

  4. Настройте доступ к БД:

    Локальный сервер MySQL®
    Кластер Managed Service for MySQL®

    Атрибуты подключения к БД генерируются в специальном файле при создании ВМ:

    1. Зайдите по SSH на созданную ВМ.

    2. Перейдите в режим администратора sudo -i.

    3. Откройте файл default_passwords.txt в домашней директории администратора:

      root@opencart:~# cat default_passwords.txt
      MYSQL_USER=opencart
      MYSQL_PASS=qDbvN1R6tA6ET
      MYSQL_ROOT_PASS=5DiVb80l1kXVz
      MYSQL_DB=opencart
      
    4. На странице настройки OpenCart в секции БД, введите соответствующие данные:

      • Username — значение переменной MYSQL_USER.
      • Database — значение переменной MYSQL_DB.
      • Password — значение переменной MYSQL_PASS.

      Остальные поля оставьте без изменения.

    Если вы используете кластер Managed Service for MySQL®, введите нужные атрибуты кластера:

    • Hostname — укажите полное доменное имя (FQDN) созданной БД. Чтобы его узнать:
      1. Перейдите в новой вкладке браузера на страницу каталога в консоли управления.
      2. Выберите раздел Managed Service for MySQL®.
      3. В таблице выберите созданный вами кластер.
      4. В меню слева выберите вкладку Хосты.
      5. Подведите курсор к полю Имя хоста (например, rc1c-vok617m35g3dj23i) и скопируйте полное доменное имя БД, нажав на значок .
    • Username — имя пользователя (в примере user1).
    • Database — имя БД (в примере db1).
    • Password — указанный вами пароль пользователя.

    Остальные поля оставьте без изменения.

  5. Задайте имя администратора, его пароль и актуальный электронный адрес. После этого нажмите кнопку Continue.

    Шаг 3

  6. Откроется страница с уведомлением о том, что система настроена. Чтобы настроить интернет-магазин, нажмите кнопку Login to your administration и введите логин и пароль администратора.

    Шаг 4

  7. После завершения установки зайдите на ВМ по SSH и удалите ненужные установочные файлы:

    user@opencart:~$ sudo -i
    root@opencart:~# rm -rf /var/www/opencart/install/
    
  8. Чтобы проверить главную страницу сайта, перейдите по адресу http://<публичный_IP-адрес_ВМ>/. Вы увидите главную страницу сайта глазами пользователя, посетившего ваш интернет-магазин.

    Шаг 5

Удалите созданные ресурсыУдалите созданные ресурсы

Как удалить созданные ресурсы:

  1. Откройте конфигурационный файл opencart.tf и удалите описание создаваемой инфраструктуры из файла.

  2. Примените изменения:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

См. такжеСм. также

  • Создание интернет-магазина на платформе OpenCart с помощью консоли управления.

Была ли статья полезна?

Предыдущая
Консоль управления
Следующая
Миграция базы данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»