Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
      • Перенос WordPress сайта с хостинга в Yandex Cloud
        • Обзор
        • Консоль управления
        • Terraform
      • Организация виртуального хостинга
      • Создание веб-приложения на Python с использованием фреймворка Flask
      • Хостинг статического сайта на фреймворке Gatsby
      • Миграция в Cloud CDN из стороннего CDN-провайдера
      • Получение статистики посещения сайта с использованием S3 Select

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

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

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

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

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

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

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

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

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

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

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

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

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

В стоимость поддержки инфраструктуры интернет-магазина на платформе OpenCart входит:

  • плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
  • плата за использование динамического или статического публичного IP-адреса (см. тарифы Yandex Virtual Private Cloud);
  • плата за кластер БД, если вы используете MySQL® (см. тарифы Managed Service for MySQL®).

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

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           = "ru-central1-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           = "ru-central1-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        = "ru-central1-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             = "ru-central1-a"
            subnet_id        = yandex_vpc_subnet.subnet-1.id
            assign_public_ip = false
          }
        
          host {
            zone             = "ru-central1-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

  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 с помощью консоли управления.

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

Предыдущая
Консоль управления
Следующая
Организация виртуального хостинга
Проект Яндекса
© 2025 ООО «Яндекс.Облако»