Adding a VM to a placement group
Add an existing VM instance to a placement group.
You can work with placement groups with the partition placement strategy using the CLI and API.
- In the management console
, select the folder the placement group belongs to. - In the list of services, select Compute Cloud.
- In the left-hand panel, select
Placement groups. - Go to the Virtual machine placement groups tab.
- Select a placement group to add your VM to.
- Go to the List of VMs panel.
- In the top-right corner, click
Add VM. - In the window that opens, select the appropriate VM and click Add.
Note
You can only add a stopped VM (stopped
) to a placement group.
If you do not have the Yandex Cloud command line interface yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name
or --folder-id
parameter.
-
Create a VM:
yc compute instance create \ --zone ru-central1-a \ --name instance-in-group-2
Where:
--zone
: Availability zone for the VM.--name
: VM name.
Result:
id: epdlv1pp5401******** ...
-
View a list of VMs in the placement group:
yc compute placement-group list-instances \ --name my-group
Where
--name
is the placement group name.Result:
+----------------------+---------------------+-------------------+---------+-------------+-------------+ | ID | NAME | ZONE ID | STATUS | EXTERNAL IP | INTERNAL IP | +----------------------+---------------------+-------------------+---------+-------------+-------------+ | epdep2kq6dt5******** | instance-in-group-1 | ru-central1-a | RUNNING | | 10.129.0.5 | +----------------------+---------------------+-------------------+---------+-------------+-------------+
-
Stop the VM instance by including its name in the command below:
yc compute instance stop instance-in-group-2
Result:
id: epdlv1pp5401******** ... status: STOPPED
-
Add a VM instance to the placement group:
yc compute instance update \ --name instance-in-group-2 \ --placement-group-name my-group \ --placement-group-partition <partition_number>
Where:
-
--name
: VM name. -
--placement-group-name
: Placement group name. -
--placement-group-partition
: Partition number in the placement group with the partition placement strategy.Note
If you do not specify the partition number when adding a VM to a partition placement group, the VM will be added to a random partition.
Result:
id: epdlv1pp5401******** ... placement_policy: placement_group_id: fd83bv4rnsna********
-
-
Check that the VM instance was added to the placement group:
yc compute placement-group list-instances \ --name my-group
Where
--name
is the placement group name.Result:
+----------------------+---------------------+-------------------+---------+-------------+-------------+ | ID | NAME | ZONE ID | STATUS | EXTERNAL IP | INTERNAL IP | +----------------------+---------------------+-------------------+---------+-------------+-------------+ | epdep2kq6dt5******** | instance-in-group-1 | ru-central1-a | RUNNING | | 10.129.0.5 | | epdlv1pp5401******** | instance-in-group-2 | ru-central1-a | STOPPED | | 10.129.0.30 | +----------------------+---------------------+-------------------+---------+-------------+-------------+
-
Start the VM instance by including its name in the command below:
yc compute instance start instance-in-group-2
Result:
id: epdlv1pp5401******** ... status: RUNNING
Terraform
For more information about the provider resources, see the documentation on the Terraform
If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.
If you don't have Terraform, install it and configure the Yandex Cloud provider.
To add an existing VM instance to a placement group:
-
To the configuration file of the existing VM, add the
placement_group_id
field specifying theyandex_compute_placement_group
placement group resource.Here is an example of the configuration file structure:
... resource "yandex_compute_instance" "vm-1" { name = "my-vm" platform_id = "standard-v3" placement_policy { placement_group_id = "${yandex_compute_placement_group.group1.id}" } } resource "yandex_compute_placement_group" "group1" { name = "test-pg" } ...
Where
placement_group_id
is the placement group ID.Note
If you do not specify the partition number when adding a VM to a partition placement group, the VM will be added to a random partition.
For more information about the resources that you can create with Terraform, see the provider documentation
. -
In the command line, go to the directory with the Terraform configuration file.
-
Check the configuration using this command:
terraform validate
If the configuration is correct, you will get this message:
Success! The configuration is valid.
-
Run this command:
terraform plan
The terminal will display a list of resources with parameters. No changes will be made at this step. If the configuration contains any errors, Terraform will point them out.
-
Apply the configuration changes:
terraform apply
-
Confirm the changes: type
yes
into the terminal and click Enter.All the resources you need will then be created in the specified folder. You can check that the VM has been added to a placement group using the management console
.
Use the update REST API method for the Instance resource or the InstanceService/Update gRPC API call.