Изменить внутренний IP-адрес виртуальной машины
После создания ВМ вы можете изменить внутренние IP-адреса ее сетевых интерфейсов.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для обновления внутреннего IP-адреса сетевого интерфейса ВМ:
yc compute instance update-network-interface --help
-
Получите список ВМ в каталоге по умолчанию:
yc compute instance list
Результат:
+----------------------+-----------------+---------------+---------+----------------------+ | ID | NAME | ZONE ID | STATUS | DESCRIPTION | +----------------------+-----------------+---------------+---------+----------------------+ | fhm0b28lgfp4******** | first-instance | ru-central1-a | RUNNING | my first vm via CLI | | fhm9gk85nj7g******** | second-instance | ru-central1-a | RUNNING | my second vm via CLI | +----------------------+-----------------+---------------+---------+----------------------+
-
Выберите идентификатор (
ID
) нужной ВМ. -
Остановите выбранную ВМ.
-
Получите список сетевых интерфейсов выбранной ВМ, указав ее идентификатор:
yc compute instance get <идентификатор_ВМ>
Результат:
... network_interfaces: - index: "0" mac_address: d0:0d:24:**:**:** subnet_id: e2lpp96bvvgp******** primary_v4_address: address: 192.168.2.23 one_to_one_nat: address: 158.160.**.*** ip_version: IPV4 - index: "1" mac_address: d0:1d:24:**:**:** subnet_id: e2lrucutusnd******** primary_v4_address: address: 192.168.1.32 - index: "2" mac_address: d0:2d:24:**:**:** subnet_id: e2lv9c6aek1d******** primary_v4_address: address: 192.168.4.26 ...
Сохраните значение поля
index
— номер сетевого интерфейса, для которого требуется изменить внутренний IP-адрес. -
Измените внутренний IP-адрес выбранного сетевого интерфейса ВМ:
yc compute instance update-network-interface \ --id <идентификатор_ВМ> \ --ipv4-address <внутренний_IP-адрес> \ --network-interface-index <номер_сетевого_интерфейса>
Где:
--id
— идентификатор виртуальной машины.--ipv4-address
— внутренний IP-адрес. Задайте новый IP-адрес или введитеauto
, чтобы присвоить новый адрес автоматически.--network-interface-index
— сохраненный ранее номер сетевого интерфейса ВМ.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Чтобы изменить внутренний IP-адрес сетевого интерфейса ВМ, добавьте параметр
ip_address
в блокnetwork_interface
нужного сетевого интерфейса в конфигурации ресурсаyandex_compute_instance
:resource "yandex_compute_instance" "vm-1" { ... network_interface { ... ip_address = "<внутренний_IP-адрес>" } }
Более подробную информацию о параметрах ресурса
yandex_compute_instance
см. в документации провайдера . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления
. -
Чтобы изменить внутренний IP-адрес сетевого интерфейса ВМ, воспользуйтесь методом REST API updateNetworkInterface для ресурса Instance или вызовом gRPC API InstanceService/PrimaryAddress.