Установка Ghost CMS High Availability с помощью Cloud Apps
В этом руководстве вы установите и настроите Ghost CMS High Availability
Чтобы установить Ghost CMS High Availability:
- Подготовьте облако к работе.
- Создайте сеть и подсети VPC.
- Настройте DNS-зону.
- Создайте секрет Yandex Lockbox.
- Установите Ghost CMS High Availability.
- Настройте Ghost CMS High Availability.
- Проверьте результат.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки создаваемой инфраструктуры входят:
- Плата за использование виртуальной машины и хранение данных на диске (см. тарифы Yandex Compute Cloud).
- Плата за использование публичного IP-адреса и исходящий трафик (см. тарифы Yandex Virtual Private Cloud).
- Плата за использование публичной DNS-зоны и за публичные DNS-запросы (см. тарифы Yandex Cloud DNS).
- Плата за выделенные хостам MySQL® вычислительные ресурсы, объем хранилища и резервных копий (см. тарифы Yandex Managed Service for MySQL®).
- Плата за использование бакета для хранения медиафайлов (см. тарифы Yandex Object Storage).
- Плата за хранение секретов и операции с ними (см. тарифы Yandex Lockbox).
- Плата за исходящие письма (см. тарифы Yandex Cloud Postbox).
Создайте сеть и подсети VPC
Создайте облачную сеть и подсети, в которых будут развернуты ресурсы.
-
В консоли управления
перейдите в каталог, в котором будете разворачивать инфраструктуру. -
Перейдите в сервис Virtual Private Cloud.
-
В правом верхнем углу нажмите Создать сеть.
-
В поле Имя укажите имя сети. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Оставьте включенной опцию Создать подсети.
-
Нажмите Создать сеть.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Создайте облачную сеть в каталоге по умолчанию:
yc vpc network create --name wordpress-network -
Получите список облачных сетей в каталоге:
yc vpc network list --folder-id b1g6ci08ma55********Результат:
+----------------------+-------------------+ | ID | NAME | +----------------------+-------------------+ | enpavfmgapum******** | wordpress-network | | enplom7a98s1******** | default | +----------------------+-------------------+ -
Выберите
NAMEилиIDтребуемой облачной сети. Создайте подсеть в зоне доступностиkz1-a:yc vpc subnet create \ --network-id enpavfmgapum******** \ --zone kz1-a \ --range 192.168.0.0/24Где:
--network-id— идентификатор облачной сети. При создании подсети указывается облачная сеть, в которой создаются подсеть и CIDR.--zone— зона доступности, в которой создается подсеть.--range— список внутренних IPv4-адресов, определенных для данной подсети. Например,10.0.0.0/22или192.168.0.0/16. Адреса должны быть уникальными внутри сети. Минимальный размер подсети — /28, а максимальный размер подсети — /16. Поддерживается только IPv4.
Требования к названию подсети:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Аналогичным образом создайте подсеть в зоне доступности
kz1-d.
Чтобы создать облачную сеть, воспользуйтесь методом REST API create для ресурса Network или вызовом gRPC API NetworkService/Create и передайте в запросе идентификатор каталога, в котором будет размещена сеть, в параметре folderId.
О том, как узнать идентификатор каталога, читайте в разделе Получение идентификатора каталога.
Чтобы создать подсети в зонах доступности kz1-a и kz1-d, воспользуйтесь методом REST API create для ресурса Subnet или вызовом gRPC API SubnetService/Create и передайте в запросе:
- Идентификатор каталога, в котором будет размещена подсеть, в параметре
folderId. - Идентификатор сети, в которой будет размещена подсеть, в параметре
networkId. - Идентификатор зоны доступности, в которой будет размещена подсеть, в параметре
zoneId. - Список внутренних IPv4-адресов, определенных для данной подсети, в массиве
v4CidrBlocks[]. Например,10.0.0.0/22или192.168.0.0/16. Адреса должны быть уникальными внутри сети. Минимальный размер подсети —/28, а максимальный размер подсети —/16. Поддерживается только IPv4.
Чтобы узнать идентификатор подсети, воспользуйтесь методом REST API list для ресурса Subnet или вызовом gRPC API SubnetService/List и передайте в запросе идентификатор каталога в параметре folderId.
Настройте DNS-зону
Создайте публичную DNS-зону и делегируйте на нее домен. Подробнее о делегировании домена читайте в инструкции.
-
Перейдите в сервис Cloud DNS.
-
Нажмите кнопку Создать зону.
-
Задайте настройки зоны DNS:
- Зона — укажите ваш зарегистрированный домен, например
example.com.(с точкой в конце). - Тип — выберите
Публичная. - Имя — укажите имя зоны, например
example-zone.
- Зона — укажите ваш зарегистрированный домен, например
-
Нажмите кнопку Создать.
-
Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов
ns1.yandexcloud.kzиns2.yandexcloud.kz.Делегирование происходит не сразу. Серверы интернет-провайдеров обновляют записи до 24 часов. Проверить делегирование домена можно с помощью сервиса Whois
или утилитыdig:dig +short NS example.comРезультат:
ns2.yandexcloud.kz. ns1.yandexcloud.kz.
-
Создайте публичную зону DNS:
yc dns zone create \ --name example-zone \ --zone example.com. \ --public-visibilityГде
--zone— имя вашего домена, напримерexample.com.. Значение параметра--zoneдолжно заканчиваться точкой.Результат:
id: dns39gihj0ef******** folder_id: b1g681qpemb4******** created_at: "2024-09-09T15:23:34.919887Z" name: example-zone zone: example.com. public_visibility: {}Подробнее о команде
yc dns zone createчитайте в справочнике CLI. -
Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов
ns1.yandexcloud.kzиns2.yandexcloud.kz.Делегирование происходит не сразу. Серверы интернет-провайдеров обновляют записи в течение 24 часов.
Чтобы создать публичную зону DNS, воспользуйтесь методом REST API create для ресурса DnsZone или вызовом gRPC API DnsZoneService/Create.
Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов ns1.yandexcloud.kz и ns2.yandexcloud.kz.
Создайте секрет Yandex Lockbox
Создайте секрет Yandex Lockbox для хранения пароля базы данных Managed Service for MySQL®.
-
Перейдите в сервис Lockbox.
-
Нажмите Создать секрет.
-
В поле Имя введите имя секрета:
db-password-secret. -
В поле Тип секрета выберите
Пользовательский. -
В поле Ключ введите
db_password. -
В поле Значение укажите пароль, который будет использоваться для базы данных Managed Service for MySQL®. Требования к паролю:
- Длина от 8 до 128 символов.
- Может содержать цифры, латинские буквы в верхнем и нижнем регистре, специальные символы.
- Не должен состоять только из цифр.
-
Нажмите Создать.
Выполните команду:
yc lockbox secret create \
--name db-password-secret \
--payload "[{'key': 'db_password', 'text_value': '<пароль>'}]"
Где text_value — пароль базы данных Managed Service for MySQL®. Требования к паролю:
- Длина от 8 до 128 символов.
- Может содержать цифры, латинские буквы в верхнем и нижнем регистре, специальные символы.
- Не должен состоять только из цифр.
Результат:
id: e6q0rdjdggjp********
folder_id: b1g681qpemb4********
created_at: "2025-07-12T18:23:49.844Z"
name: db-password-secret
status: ACTIVE
current_version:
id: e6qbp772i014********
secret_id: e6q0rdjdggjp********
created_at: "2025-07-12T18:23:49.844Z"
status: ACTIVE
payload_entry_keys:
- db_password
Чтобы создать секрет, воспользуйтесь методом REST API create для ресурса Secret или вызовом gRPC API SecretService/Create.
В параметре key для ключа, в котором будет храниться пароль базы данных Managed Service for MySQL®, укажите db_password. Требования к паролю:
- Длина от 8 до 128 символов.
- Может содержать цифры, латинские буквы в верхнем и нижнем регистре, специальные символы.
- Не должен состоять только из цифр.
Установите Ghost CMS High Availability
Установите Ghost CMS High Availability с помощью Cloud Apps.
-
Перейдите в сервис Cloud Apps.
-
Нажмите Установить приложение.
-
В открывшемся окне выберите приложение Ghost CMS High Availability.
-
Задайте параметры приложения:
Параметр
Обязательный
Значение по умолчанию
Описание
Имя
Да
—
Название экземпляра приложения.
Описание
—
—
Описание экземпляра приложения.
Сервисный аккаунт
Да
—
Сервисный аккаунт, от имени которого будет происходить установка приложения. Сервисный аккаунт должен иметь роль
adminна каталог.
Чтобы сервисный аккаунт с необходимыми правами создался во время установки приложения, выберитеАвтоматически.Идентификатор DNS-зоны
Да
—
Идентификатор DNS-зоны, в которой будет находиться домен приложения.
Поддомен сайта
—
Пустой
Домен, на котором будет доступен основной сайт. Формируется добавлением поддомена к домену DNS-зоны:
site.example.comилиexample.com, если поддомен не указан.Поддомен панели администратора
—
adminДомен, на котором будет доступна панель администратора. Формируется добавлением поддомена к домену DNS-зоны:
admin.example.com/ghost.Отправитель
—
noreply@<домен_сайта>Отправитель почты. Используется для настройки SMTP
через Yandex Cloud Postbox.Подсеть в kz1-a
Да
—
Подсеть в зоне доступности kz1-a для кластера Managed Service for MySQL®, созданная ранее.
Подсеть в kz1-d
Да
—
Подсеть в зоне доступности kz1-d для кластера Managed Service for MySQL®, созданная ранее.
Подсеть VPC для ВМ
—
Подсеть в зоне доступности
kz1-dПодсеть, в которой будет развернута ВМ.
Количество vCPU
—
2Количество ядер vCPU.
Объём RAM
—
2Объем RAM в ГБ.
Гарантированная доля vCPU
—
100Гарантированная доля vCPU в процентах. Доступные значения — 20%, 50% или 100%.
Публичный SSH-ключ
—
—
Ключ добавится в
authorized_keysпользователя ВМghost.
Рекомендуется указать публичный SSH-ключ, чтобы иметь доступ к ВМ по SSH. Пару ключей для подключения по SSH необходимо создать самостоятельно, см. раздел о подключении к ВМ по SSH.Тип диска
—
network-ssdТип диска ВМ.
Размер диска
—
20Размер диска ВМ в ГБ.
Идентификатор секрета с паролем БД
Да
—
Секрет с паролем для подключения к кластеру Managed Service for MySQL®. Пароль должен быть указан в ключе
db_password.Размер диска кластера Managed Service for MySQL®
—
20Размер диска кластера Managed Service for MySQL® в ГБ.
-
Нажмите Установить.
Установка приложения и создание необходимых ресурсов займут 5–10 минут.
После создания всех ресурсов на ВМ будет происходить настройка сайта и выпуск TLS-сертификатов. Дождитесь завершения установки.
Настройте Ghost CMS High Availability
После успешной установки приложения настройте Ghost CMS High Availability:
-
Откройте в браузере адрес панели администратора:
https://<поддомен_панели_администратора>.<домен>/ghostГде:
<поддомен_панели_администратора>— поддомен панели администратора, который вы указали при создании приложения. По умолчанию —admin.<домен>— домен, который вы указали при создании DNS-зоны.
Например:
https://admin.example.com/ghost. -
Заполните форму регистрации администратора:
- Site title — укажите название сайта.
- Full name — укажите имя, от которого будут публиковаться посты.
- Email address — укажите адрес электронной почты для входа в панель администратора. На указанный адрес придет уведомление.
- Password — создайте надежный пароль для входа в панель администратора.
-
Нажмите Create account & start publishing.
После регистрации вы будете перенаправлены в панель администратора Ghost CMS High Availability, где сможете начать работу с сайтом.
Проверьте результат
Убедитесь, что Ghost CMS High Availability работает корректно:
-
Создайте тестовый пост:
- В интерфейсе панели администратора возле вкладки Posts нажмите
. - Заполните заголовок и содержимое поста.
- Загрузите изображение в пост — оно автоматически сохранится в S3-бакете.
- Справа вверху нажмите Publish → Continue, final review → Publish post, right now.
- В открывшемся окне скопируйте ссылку на пост — нажмите Copy link.
- В интерфейсе панели администратора возле вкладки Posts нажмите
-
Откройте скопированную ссылку в браузере.
В результате откроется пост с URL вида
https://example.com/new-post/.
Как удалить созданные ресурсы
Важно
Не удаляйте вручную ресурсы, созданные автоматически. Это может привести к ошибке удаления приложения.
Чтобы остановить работу и перестать платить за созданные ресурсы:
-
Удалите все объекты из бакета Object Storage, созданного при установке приложения.
-
Удалите установленное приложение Ghost CMS High Availability:
-
Перейдите в сервис Cloud Apps.
-
Найдите установленное приложение Ghost CMS High Availability в списке.
-
Нажмите
рядом с приложением и выберите Удалить. -
Подтвердите удаление приложения.
Дождитесь завершения удаления.
-
-
Удалите публичную DNS-зону.
-
Удалите секрет Yandex Lockbox.
-
Удалите адрес Yandex Cloud Postbox и связанную с ним DNS-запись — они не удалятся автоматически при удалении приложения.