Создание сайта на WordPress с помощью Terraform
Чтобы создать и настроить сайт на WordPress с помощью Terraform:
- Подготовьте облако к работе.
- Создайте инфраструктуру.
- Получите данные для авторизации в веб-интерфейсе.
- Подключитесь к веб-интерфейсу WordPress.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Убедитесь, что в выбранном каталоге есть облачная сеть с подсетью хотя бы в одной зоне доступности. Для этого на странице каталога выберите сервис VPC. Если в списке есть сеть — нажмите на нее, чтобы увидеть список подсетей. Если нужных подсетей или сети нет, создайте их.
Необходимые платные ресурсы
В стоимость поддержки сайта на WordPress входит:
- плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
- плата за использование динамического или статического публичного IP-адреса (см. тарифы Yandex Virtual Private Cloud);
- плата за публичные DNS-запросы и зоны DNS, если вы используете Yandex Cloud DNS (см. тарифы Cloud DNS).
Создайте инфраструктуру
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Для создания инфраструктуры с помощью Terraform:
-
Установите Terraform, получите данные для аутентификации и укажите источник для установки провайдера Yandex Cloud (раздел Настройте провайдер, шаг 1).
-
Подготовьте файлы с описанием инфраструктуры.
Готовый архивВручную- Создайте папку для файлов.
- Скачайте архив
(1 КБ). - Разархивируйте архив в папку. В результате в ней должен появиться конфигурационный файл
wordpress.tf.
-
Создайте папку для файлов.
-
Создайте в папке конфигурационный файл
wordpress.tf:wordpress.tf
terraform { required_providers { yandex = { source = "yandex-cloud/yandex" version = ">= 0.47.0" } } } provider "yandex" { zone = "ru-central1-a" } resource "yandex_compute_image" "wordpress" { source_family = "wordpress" } resource "yandex_compute_disk" "boot-disk" { name = "bootvmdisk" type = "network-hdd" zone = "ru-central1-a" size = "20" image_id = yandex_compute_image.wordpress.id } resource "yandex_compute_instance" "vm-wordpress" { name = "wordpress" platform_id = "standard-v3" resources { core_fraction = 20 cores = 2 memory = 1 } boot_disk { disk_id = yandex_compute_disk.boot-disk.id } network_interface { subnet_id = yandex_vpc_subnet.subnet-1.id nat = true security_group_ids = ["${yandex_vpc_security_group.sg-1.id}"] } metadata = { ssh-keys = "<имя_пользователя>:<содержимое_SSH-ключа>" } } resource "yandex_vpc_security_group" "sg-1" { name = "wordpress" description = "Description for security group" network_id = yandex_vpc_network.network-1.id ingress { protocol = "TCP" description = "ext-http" v4_cidr_blocks = ["0.0.0.0/0"] port = 80 } ingress { protocol = "TCP" description = "ext-https" v4_cidr_blocks = ["0.0.0.0/0"] port = 443 } egress { protocol = "ANY" description = "any" v4_cidr_blocks = ["0.0.0.0/0"] } } resource "yandex_vpc_network" "network-1" { name = "network1" } resource "yandex_vpc_subnet" "subnet-1" { name = "subnet1" zone = "ru-central1-a" network_id = yandex_vpc_network.network-1.id v4_cidr_blocks = ["192.168.1.0/24"] } resource "yandex_dns_zone" "zone-1" { name = "example-zone-1" description = "Public zone" zone = "example.com." public = true } resource "yandex_dns_recordset" "rs-1" { zone_id = yandex_dns_zone.zone-1.id name = "example.com." ttl = 600 type = "A" data = ["${yandex_compute_instance.vm-wordpress.network_interface.0.nat_ip_address}"] } resource "yandex_dns_recordset" "rs-2" { zone_id = yandex_dns_zone.zone-1.id name = "www" ttl = 600 type = "CNAME" data = ["example.com"] }
Более подробную информацию о параметрах используемых ресурсов в Terraform см. в документации провайдера:
-
В блоке
metadataукажите метаданные для создания ВМ<имя_пользователя>:<содержимое_SSH-ключа>. Указанное имя пользователя не играет роли, ключ будет присвоен пользователю, который задан в конфигурации образа WordPress. В разных образах это разные пользователи. Подробнее см. в разделе Ключи, обрабатываемые в публичных образах Yandex Cloud. -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
Получите данные для авторизации в веб-интерфейсе
При создании ВМ автоматически создается учетная запись администратора для веб-интерфейса. Чтобы получить авторизационные данные:
-
Подключитесь по протоколу SSH к созданной ВМ:
ssh <имя_пользователя>@<публичный_IP-адрес_ВМ> -
Переключитесь в режим root, чтобы получить привилегии суперпользователя:
sudo su -
Откройте файл для чтения:
cat root/default_passwords.txt -
Скопируйте имя пользователя и пароль из строк
WP_ADMIN_USERиWP_ADMIN_PASSWORD.
Подключитесь к веб-интерфейсу WordPress
Чтобы подключиться к веб-интерфейсу WordPress:
-
В консоли управления
перейдите на страницу ВМ, в блоке Сеть найдите публичный IP-адрес ВМ и внесите в ресурсную запись типа А, созданную ранее.
-
В браузере перейдите по доменному имени, которое вы настроили, или по адресу ВМ в панель администратора WordPress:
http://<доменное_имя_или_публичный_адрес_ВМ>/wp-admin. -
Введите имя пользователя и пароль, сохраненные ранее.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
-
Откройте конфигурационный файл
wordpress.tfи удалите описание создаваемой инфраструктуры из файла. -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-