first commit

This commit is contained in:
Black_Raven committed 2026-06-15 12:56:02 +03:00
commit 31817537f1
68 files changed
+3442

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,26 @@
ubuntu@postgress-test:~$ psql -h 192.168.199.129 -U app_user -d app_db
Password for user app_user:
psql (16.14 (Ubuntu 16.14-0ubuntu0.24.04.1), server 15.18)
Type "help" for help.
app_db=> CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT NOW()
);
INSERT INTO users (name, email) VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');
SELECT * FROM users;
CREATE TABLE
INSERT 0 2
id | name | email | created_at
----+-------+-------------------+----------------------------
1 | Alice | alice@example.com | 2026-06-09 19:45:38.658698
2 | Bob | bob@example.com | 2026-06-09 19:45:38.658698
(2 rows)
app_db=>
@@ -0,0 +1,282 @@
 ~/rosatom/terraform-practies
nix-shell ❯ terraform apply -auto-approve via 💠 default on ☁️ (ru-msk)
There are some problems with the CLI configuration:
╷
│ Warning: Unable to open CLI configuration file
│
│ The CLI configuration file at
│ "/home/kirill/rosatom/terraform-demo/terraform.rc" does not exist.
╵
data.vkcs_networking_router.main: Reading...
data.vkcs_networking_router.main: Read complete after 1s [id=913bdd47-9155-45b2-b404-5c10d0086132]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
<= read (data resources)
Terraform will perform the following actions:
# data.vkcs_db_instance.postgres_info will be read during apply
# (config refers to values not yet known)
<= data "vkcs_db_instance" "postgres_info" {
+ id = (known after apply)
}
# local_file.db_password will be created
+ resource "local_file" "db_password" {
+ content = (sensitive value)
+ content_base64sha256 = (known after apply)
+ content_base64sha512 = (known after apply)
+ content_md5 = (known after apply)
+ content_sha1 = (known after apply)
+ content_sha256 = (known after apply)
+ content_sha512 = (known after apply)
+ directory_permission = "0777"
+ file_permission = "0777"
+ filename = "./db_password.txt"
+ id = (known after apply)
}
# random_password.db_password will be created
+ resource "random_password" "db_password" {
+ bcrypt_hash = (sensitive value)
+ id = (known after apply)
+ length = 16
+ lower = true
+ min_lower = 1
+ min_numeric = 1
+ min_special = 1
+ min_upper = 1
+ number = true
+ numeric = true
+ result = (sensitive value)
+ special = true
+ upper = true
}
# vkcs_db_database.app_db will be created
+ resource "vkcs_db_database" "app_db" {
+ dbms_id = (known after apply)
+ dbms_type = (known after apply)
+ id = (known after apply)
+ name = "app_db"
}
# vkcs_db_instance.postgres will be created
+ resource "vkcs_db_instance" "postgres" {
+ availability_zone = "MS1"
+ flavor_id = "2df6e3ec-5939-4d28-a818-89558ff1b7ab"
+ floating_ip_enabled = true
+ id = (known after apply)
+ ip = (known after apply)
+ name = "terraform-postgres"
+ region = (known after apply)
+ root_password = (sensitive value)
+ size = 10
+ volume_type = "ceph-ssd"
+ datastore {
+ type = "postgresql"
+ version = "15"
}
+ disk_autoexpand (known after apply)
+ network {
+ uuid = (known after apply)
}
}
# vkcs_db_user.app_user will be created
+ resource "vkcs_db_user" "app_user" {
+ databases = [
+ "app_db",
]
+ dbms_id = (known after apply)
+ dbms_type = (known after apply)
+ id = (known after apply)
+ name = "app_user"
+ password = (sensitive value)
}
# vkcs_networking_network.main will be created
+ resource "vkcs_networking_network" "main" {
+ admin_state_up = true
+ all_tags = (known after apply)
+ id = (known after apply)
+ name = "postgres-network"
+ port_security_enabled = true
+ private_dns_domain = (known after apply)
+ region = (known after apply)
+ sdn = (known after apply)
}
# vkcs_networking_router_interface.main will be created
+ resource "vkcs_networking_router_interface" "main" {
+ id = (known after apply)
+ port_id = (known after apply)
+ region = (known after apply)
+ router_id = "913bdd47-9155-45b2-b404-5c10d0086132"
+ sdn = (known after apply)
+ subnet_id = (known after apply)
}
# vkcs_networking_subnet.main will be created
+ resource "vkcs_networking_subnet" "main" {
+ all_tags = (known after apply)
+ cidr = "192.168.199.0/24"
+ enable_dhcp = true
+ enable_private_dns = (known after apply)
+ gateway_ip = (known after apply)
+ id = (known after apply)
+ name = "postgres-subnet"
+ network_id = (known after apply)
+ no_gateway = false
+ region = (known after apply)
+ sdn = (known after apply)
+ allocation_pool (known after apply)
}
Plan: 8 to add, 0 to change, 0 to destroy.
Changes to Outputs:
+ db_instance_full = (sensitive value)
+ db_name = "app_db"
+ db_port = 5432
+ db_user = "app_user"
random_password.db_password: Creating...
random_password.db_password: Creation complete after 0s [id=none]
local_file.db_password: Creating...
local_file.db_password: Creation complete after 0s [id=c065a6aa96dc86bce3c11dbcfcea69ec7a6b3cb1]
vkcs_networking_network.main: Creating...
vkcs_networking_network.main: Creation complete after 6s [id=ab0c70b6-f29d-4499-85b6-e844cd3888f3]
vkcs_networking_subnet.main: Creating...
vkcs_db_instance.postgres: Creating...
vkcs_networking_subnet.main: Creation complete after 6s [id=6166aaf3-cedb-43b2-94e0-ef2e7c749b1f]
vkcs_networking_router_interface.main: Creating...
vkcs_networking_router_interface.main: Creation complete after 6s [id=1a23a315-b826-49dd-995a-ea5797af0f87]
╷
│ Error: error creating vkcs_db_instance: Bad request with: [POST https://msk.cloud.vk.com/infra/database/v1.0/5aa354d05172439abcc5bfc3f682da49/instances], error message: {"badRequest": {"code": 400, "message": "The network must be routable"}}
│ Request ID: req-14a8783a-6776-4e99-ab9d-29ec42b9fdbc
│
│ with vkcs_db_instance.postgres,
│ on main.tf line 47, in resource "vkcs_db_instance" "postgres":
│ 47: resource "vkcs_db_instance" "postgres" {
│
╵
 ~/rosatom/terraform-practies
nix-shell ❌1 ❯ terraform apply -auto-approve via 💠 default on ☁️ (ru-msk)
There are some problems with the CLI configuration:
╷
│ Warning: Unable to open CLI configuration file
│
│ The CLI configuration file at
│ "/home/kirill/rosatom/terraform-demo/terraform.rc" does not exist.
╵
random_password.db_password: Refreshing state... [id=none]
local_file.db_password: Refreshing state... [id=c065a6aa96dc86bce3c11dbcfcea69ec7a6b3cb1]
data.vkcs_networking_router.main: Reading...
vkcs_networking_network.main: Refreshing state... [id=ab0c70b6-f29d-4499-85b6-e844cd3888f3]
data.vkcs_networking_router.main: Read complete after 0s [id=913bdd47-9155-45b2-b404-5c10d0086132]
vkcs_networking_subnet.main: Refreshing state... [id=6166aaf3-cedb-43b2-94e0-ef2e7c749b1f]
vkcs_networking_router_interface.main: Refreshing state... [id=1a23a315-b826-49dd-995a-ea5797af0f87]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
<= read (data resources)
Terraform will perform the following actions:
# data.vkcs_db_instance.postgres_info will be read during apply
# (config refers to values not yet known)
<= data "vkcs_db_instance" "postgres_info" {
+ id = (known after apply)
}
# vkcs_db_database.app_db will be created
+ resource "vkcs_db_database" "app_db" {
+ dbms_id = (known after apply)
+ dbms_type = (known after apply)
+ id = (known after apply)
+ name = "app_db"
}
# vkcs_db_instance.postgres will be created
+ resource "vkcs_db_instance" "postgres" {
+ availability_zone = "MS1"
+ flavor_id = "2df6e3ec-5939-4d28-a818-89558ff1b7ab"
+ floating_ip_enabled = true
+ id = (known after apply)
+ ip = (known after apply)
+ name = "terraform-postgres"
+ region = (known after apply)
+ root_password = (sensitive value)
+ size = 10
+ volume_type = "ceph-ssd"
+ datastore {
+ type = "postgresql"
+ version = "15"
}
+ disk_autoexpand (known after apply)
+ network {
+ uuid = "ab0c70b6-f29d-4499-85b6-e844cd3888f3"
}
}
# vkcs_db_user.app_user will be created
+ resource "vkcs_db_user" "app_user" {
+ databases = [
+ "app_db",
]
+ dbms_id = (known after apply)
+ dbms_type = (known after apply)
+ id = (known after apply)
+ name = "app_user"
+ password = (sensitive value)
}
Plan: 3 to add, 0 to change, 0 to destroy.
Changes to Outputs:
+ db_instance_full = (sensitive value)
vkcs_db_instance.postgres: Creating...
vkcs_db_instance.postgres: Still creating... [00m10s elapsed]
vkcs_db_instance.postgres: Still creating... [00m20s elapsed]
vkcs_db_instance.postgres: Still creating... [00m30s elapsed]
vkcs_db_instance.postgres: Still creating... [00m40s elapsed]
vkcs_db_instance.postgres: Still creating... [00m50s elapsed]
vkcs_db_instance.postgres: Still creating... [01m00s elapsed]
vkcs_db_instance.postgres: Still creating... [01m10s elapsed]
vkcs_db_instance.postgres: Still creating... [01m20s elapsed]
vkcs_db_instance.postgres: Still creating... [01m30s elapsed]
vkcs_db_instance.postgres: Still creating... [01m40s elapsed]
vkcs_db_instance.postgres: Still creating... [01m50s elapsed]
vkcs_db_instance.postgres: Still creating... [02m00s elapsed]
vkcs_db_instance.postgres: Still creating... [02m10s elapsed]
vkcs_db_instance.postgres: Still creating... [02m20s elapsed]
vkcs_db_instance.postgres: Still creating... [02m30s elapsed]
vkcs_db_instance.postgres: Creation complete after 2m39s [id=67f5bbfa-390c-4ba5-9307-76fd35db6f61]
data.vkcs_db_instance.postgres_info: Reading...
vkcs_db_database.app_db: Creating...
data.vkcs_db_instance.postgres_info: Read complete after 1s [id=67f5bbfa-390c-4ba5-9307-76fd35db6f61]
vkcs_db_database.app_db: Still creating... [00m10s elapsed]
vkcs_db_database.app_db: Creation complete after 13s [id=67f5bbfa-390c-4ba5-9307-76fd35db6f61/app_db]
vkcs_db_user.app_user: Creating...
vkcs_db_user.app_user: Still creating... [00m10s elapsed]
vkcs_db_user.app_user: Creation complete after 12s [id=67f5bbfa-390c-4ba5-9307-76fd35db6f61/app_user]
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
Outputs:
db_instance_full = <sensitive>
db_name = "app_db"
db_port = 5432
db_user = "app_user"
@@ -0,0 +1,54 @@
 ~/rosatom/terraform-practies
nix-shell ❯ # Получение списка инстансов БД via 💠 default on ☁️ (ru-msk)
openstack database instance list
# Просмотр информации о конкретном инстансе
openstack database instance show my-postgres
# Получение параметров подключения
openstack database instance show my-postgres -c hosts -c datastore
openstack: 'database instance list' is not an openstack command. See 'openstack --help'.
Did you mean one of these?
address group create
address group delete
address group list
address group set
address group show
address group unset
address scope create
address scope delete
address scope list
address scope set
address scope show
catalog list
catalog show
openstack: 'database instance show my-postgres' is not an openstack command. See 'openstack --help'.
Did you mean one of these?
address group create
address group delete
address group list
address group set
address group show
address group unset
address scope create
address scope delete
address scope list
address scope set
address scope show
catalog list
catalog show
openstack: 'database instance show my-postgres -c hosts -c datastore' is not an openstack command. See 'openstack --help'.
Did you mean one of these?
address group create
address group delete
address group list
address group set
address group show
address group unset
address scope create
address scope delete
address scope list
address scope set
address scope show
catalog list
catalog show
@@ -0,0 +1,22 @@
 ~/rosatom
nix-shell ❯ aws s3 mb s3://my-cli-bucket --endpoint-url https://s3.ru-msk.vkcs.cloud on ☁️ (ru-msk)
make_bucket failed: s3://my-cli-bucket Could not connect to the endpoint URL: "https://s3.ru-msk.vkcs.cloud/my-cli-bucket"
 ~/rosatom
nix-shell ❌1 ❯ aws s3 mb s3://my-cli-bucket --endpoint-url https://hb.vkcloud-storage.ru on ☁️ (ru-msk)
make_bucket: my-cli-bucket
 ~/rosatom
nix-shell ❯ aws s3 cp index.html s3://my-cli-bucket/ --endpoint-url https://hb.vkcloud-storage.ru on ☁️ (ru-msk)
upload: ./index.html to s3://my-cli-bucket/index.html
 ~/rosatom
nix-shell ❯ aws s3api put-object-acl \ on ☁️ (ru-msk)
--bucket my-cli-bucket \
--key index.html \
--acl public-read \
--endpoint-url https://hb.vkcloud-storage.ru
 ~/rosatom
nix-shell ❯ curl http://my-cli-bucket.hb.vkcloud-storage.ru/index.html on ☁️ (ru-msk)
<h1>CLI Upload</h1>
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

@@ -0,0 +1,84 @@
 ~/rosatom/terraform-practies
nix-shell ❯ terraform apply -auto-approve via 💠 default on ☁️ (ru-msk)
There are some problems with the CLI configuration:
╷
│ Warning: Unable to open CLI configuration file
│
│ The CLI configuration file at
│ "/home/kirill/rosatom/terraform-demo/terraform.rc" does not exist.
╵
aws_s3_bucket.static_site: Refreshing state... [id=terraform-static-site]
aws_s3_object.index: Refreshing state... [id=index.html]
aws_s3_bucket_website_configuration.static_site: Refreshing state... [id=terraform-static-site]
aws_s3_object.error: Refreshing state... [id=error.html]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
# aws_s3_bucket.static_site will be updated in-place
~ resource "aws_s3_bucket" "static_site" {
+ acl = "public-read"
id = "terraform-static-site"
tags = {}
# (14 unchanged attributes hidden)
# (3 unchanged blocks hidden)
}
# aws_s3_object.error will be updated in-place
~ resource "aws_s3_object" "error" {
+ acl = "public-read"
- content_encoding = "aws-chunked" -> null
id = "error.html"
tags = {}
+ version_id = (known after apply)
# (24 unchanged attributes hidden)
}
# aws_s3_object.index will be updated in-place
~ resource "aws_s3_object" "index" {
+ acl = "public-read"
- content_encoding = "aws-chunked" -> null
id = "index.html"
tags = {}
+ version_id = (known after apply)
# (24 unchanged attributes hidden)
}
Plan: 0 to add, 3 to change, 0 to destroy.
Changes to Outputs:
- website_url = "terraform-static-site.s3-website-us-east-1.amazonaws.com" -> null
aws_s3_bucket.static_site: Modifying... [id=terraform-static-site]
aws_s3_bucket.static_site: Modifications complete after 0s [id=terraform-static-site]
aws_s3_object.error: Modifying... [id=error.html]
aws_s3_object.index: Modifying... [id=index.html]
aws_s3_object.index: Modifications complete after 1s [id=index.html]
aws_s3_object.error: Modifications complete after 1s [id=error.html]
╷
│ Warning: Argument is deprecated
│
│ with aws_s3_bucket.static_site,
│ on main.tf line 45, in resource "aws_s3_bucket" "static_site":
│ 45: acl = "public-read" # вместо bucket policy
│
│ acl is deprecated. Use the aws_s3_bucket_acl resource instead.
│
│ (and 2 more similar warnings elsewhere)
╵
Apply complete! Resources: 0 added, 3 changed, 0 destroyed.
 ~/rosatom/terraform-practies
nix-shell ❯ curl http://terraform-static-site.hb.vkcloud-storage.ru/index.html via 💠 default on ☁️ (ru-msk)
<!DOCTYPE html>
<html>
<head><title>Terraform Site</title></head>
<body>
<h1>Deployed with Terraform!</h1>
<p>This site was created automatically.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,70 @@
 ~/rosatom
nix-shell ❯ source ./mcs3340419193-openrc.sh on ☁️ (ru-msk)
Please enter your OpenStack Password for project 5aa354d05172439abcc5bfc3f682da49 as user remizov.kirill2005@yandex.ru:
 ~/rosatom
nix-shell ❯ openstack token issue on ☁️ (ru-msk)
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2026-06-14T11:49:13+0000 |
| id | gAAAAABqLocppTSFM820tp_aqpoM5ZhfILgDRfAK2opQAnu5bBTqDkaHpKOvlSJdczgcJ8hcCpcr8dmwD8yGr5PYVmANgTPSoPndbWXhqPJOgj7oiYHrLQEQO6qmusMSB1DGBJmcc0Ooll05KrLz_hb64W6unQuQyKFcT6od6wXZ |
| | s9l_bH8RWWk |
| project_id | 5aa354d05172439abcc5bfc3f682da49 |
| user_id | a9d31b4ea75643f7b64bbeeeb297ae1f |
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 ~/rosatom
nix-shell ❯ openstack server create --flavor df3c499a-044f-41d2-8612-d303adc613cc \ on ☁️ (ru-msk)
--image "ubuntu-22-202602051629.gite7a38aaf" \
--key-name my-first-vm-ie9Ev9Cc \
--network "ec8c610e-6387-447e-83d2-d2c541e88164" \
--security-group ssh \
cli-advanced-vm
+-------------------------------------+---------------------------------------------------------------------------+
| Field | Value |
+-------------------------------------+---------------------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | None |
| OS-EXT-SRV-ATTR:host | None |
| OS-EXT-SRV-ATTR:hostname | None |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| OS-EXT-SRV-ATTR:instance_name | None |
| OS-EXT-SRV-ATTR:kernel_id | None |
| OS-EXT-SRV-ATTR:launch_index | None |
| OS-EXT-SRV-ATTR:ramdisk_id | None |
| OS-EXT-SRV-ATTR:reservation_id | None |
| OS-EXT-SRV-ATTR:root_device_name | None |
| OS-EXT-SRV-ATTR:user_data | None |
| OS-EXT-STS:power_state | N/A |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | None |
| accessIPv6 | None |
| addresses | N/A |
| adminPass | DXZwVQrnJNa5 |
| config_drive | None |
| created | 2026-06-14T10:56:53Z |
| description | None |
| flavor | Basic-1-1-10 (df3c499a-044f-41d2-8612-d303adc613cc) |
| hostId | None |
| host_status | None |
| id | f3652d89-9110-4869-8f3f-82eb38f7c664 |
| image | ubuntu-22-202602051629.gite7a38aaf (a4e699d3-a66d-45e5-bb5d-70ea7c8de62d) |
| key_name | my-first-vm-ie9Ev9Cc |
| locked | None |
| locked_reason | None |
| name | cli-advanced-vm |
| progress | None |
| project_id | 5aa354d05172439abcc5bfc3f682da49 |
| properties | None |
| security_groups | name='4ee4e402-fb2a-4697-b8ce-9435e8db6fa3' |
| server_groups | None |
| status | BUILD |
| tags | |
| trusted_image_certificates | None |
| updated | 2026-06-14T10:56:54Z |
| user_id | a9d31b4ea75643f7b64bbeeeb297ae1f |
| volumes_attached | |
+-------------------------------------+---------------------------------------------------------------------------+
@@ -0,0 +1,47 @@
 ~/rosatom
nix-shell ❌1 ❯ # Остановите ВМ для консистентност on ☁️ (ru-msk)
openstack server stop cli-advanced-vm
# Создание образа из ВМ
openstack server image create \
--name my-custom-image \
--wait \
cli-advanced-vm
# Проверка создания образа
openstack image list | grep my-custom-image
# Запуск ВМ обратно (если нужно)
openstack server start cli-advanced-vm
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum | d8f7bbc3d1cc458bc8cb4a89d2d04fe4 |
| container_format | bare |
| created_at | 2026-06-14T11:11:27Z |
| disk_format | raw |
| file | /v2/images/84104fb4-7ee8-4472-aa1d-ecfe0b7b16d6/file |
| id | 84104fb4-7ee8-4472-aa1d-ecfe0b7b16d6 |
| min_disk | 10 |
| min_ram | 0 |
| name | my-custom-image |
| owner | 5aa354d05172439abcc5bfc3f682da49 |
| properties | base_image_ref='a4e699d3-a66d-45e5-bb5d-70ea7c8de62d', direct_url='rbd://b0e441fc-c317-4acf-a606-cf74683978d2/images/84104fb4-7ee8-4472-aa1d-ecfe0b7b16d6/snap', |
| | has_local_drives='True', hw_cdrom_bus='sata', hw_disk_bus='virtio', hw_input_bus='usb', hw_machine_type='q35', hw_pointer_model='usbtablet', |
| | hw_qemu_guest_agent='yes', hw_vif_model='virtio', image_location='snapshot', image_state='available', image_type='snapshot', |
| | instance_uuid='f3652d89-9110-4869-8f3f-82eb38f7c664', is_ephemeral_root='True', locations='[{'url': |
| | 'rbd://b0e441fc-c317-4acf-a606-cf74683978d2/images/84104fb4-7ee8-4472-aa1d-ecfe0b7b16d6/snap', 'metadata': {'store': 'rbd'}}]', managed_type_net_devices='unmanaged', |
| | mcs_name='Ubuntu 22.04', mcs_os_distro='ubuntu', mcs_os_type='linux', mcs_os_version='22.04', os_admin_user='ubuntu', os_distro='ubuntu22.04', os_hidden='False', |
| | os_require_quiesce='True', os_type='linux', os_version='22.04', owner_project_name='mcs3340419193', owner_specified.openstack.md5='b56805f4106d5f6b701b589ad3d4e058', |
| | owner_specified.openstack.object='images/ubuntu-22-202602051629.gite7a38aaf', owner_specified.openstack.sha256='', owner_user_name='remizov.kirill2005@yandex.ru', |
| | stopped_at='2026-06-14T11:10:36.722329', stores='rbd', user_id='a9d31b4ea75643f7b64bbeeeb297ae1f' |
| protected | False |
| schema | /v2/schemas/image |
| size | 10737418240 |
| status | active |
| tags | |
| updated_at | 2026-06-14T11:13:27Z |
| virtual_size | 10737418240 |
| visibility | private |
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 84104fb4-7ee8-4472-aa1d-ecfe0b7b16d6 | my-custom-image | active |
Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

@@ -0,0 +1,38 @@
 ~/rosatom
nix-shell ❯ curl -i -X POST https://cloud.vk.com/identity/v3/auth/tokens \ on ☁️ (ru-msk)
-H "Content-Type: application/json" \
-d '{
"auth": {
"identity": {
"methods": ["password"],
"password": {
"user": {
"name": "remizov.kirill2005@yandex.ru",
"password": "*#Woron210105#*",
"domain": {"name": "users"}
}
}
},
"scope": {
"project": {
"id": "5aa354d05172439abcc5bfc3f682da49"
}
}
}
}'
HTTP/2 201
date: Sun, 14 Jun 2026 12:25:05 GMT
server: Apache
content-length: 34685
x-subject-token: gAAAAABqLp2hueJVBdeWrra1M4DMnQEpGmVJFJu9v4yliHJJq7h8lauGD0DYY-zX4R4ICO1BmKKGZuwmQpZcdeivjejjahJETBLHiQi-C0f3OCyMGfUGzTI0n2Izr-P0gop5q7PyEg9jE1vekbV1nKOhmJgEkGsrHwANy68uCG8MqcaCK8IVPSo
vary: X-Auth-Token
x-openstack-request-id: req-234f5362-6427-43d2-998e-a5355bd4ee8c
content-type: application/json
strict-transport-security: max-age=31536000; preload;
set-cookie: PROXYSRV_BACKEND=06250f27fe83c831|ai6dp|ai6dp; path=/; Secure
{"token": {"methods": ["password"], "project": {"id": "5aa354d05172439abcc5bfc3f682da49", "name": "mcs3340419193", "domain": {"id": "c84eb7b313904c2d911de6e89ec564dd", "name": "mcs7171191262"}}, "is_domain": false, "user": {"id": "a9d31b4ea75643f7b64bbeeeb297ae1f", "name": "remizov.kirill2005@yandex.ru", "domain": {"id": "users", "name": "users"}, "password_expires_at": null}, "roles": [{"id": "ffffffff000000000000000000000000", "name": "mcs_owner"}], "audit_ids": ["XH5GlM2PRCG3pCHimZempQ"], "catalog": [{"endpoints": [{"id": "081c6afa0fde405db2cd587e1fe03ae0", "interface": "internal", "region_id": "RegionOne", "url": "http://172.28.3.1:7610", "region": "RegionOne"}], "id": "0bd0e75dbd7b4b9798c90e79cc50c194", "type": "incidents", "name": "storagetest"}, {"endpoints": [{"id": "65fc884fcee74a01a52615d7b07c8379", "interface": "public", "region_id": "RegionOne", "url": "https://infra.mail.ru:8004/v1/5aa354d05172439abcc5bfc3f682da49", "region": "RegionOne"}, {"id": "8c7043081be942b3bf0972378492ee1a", "interface": "admin", "region_id": "RegionOne", "url": "http://admin.endpoint.compute.i:8004/v1/5aa354d05172439abcc5bfc3f682da49", "region": "RegionOne"}, {"id": "97224b4ec05c47d8be4d9592bec06939", "interface": "internal", "region_id": "RegionOne", "url": "http://internal.endpoint.compute.i:8004/v1/5aa354d05172439abcc5bfc3f682da49", "region": "RegionOne"}], "id": "0eb2d2ed8a2d46e2887f394479d11680", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "4a6c33f7a6a14935921bc99e18e2383a", "interface": "admin", "region_id": "RegionOne", "url": "http://evacuation-controller-api.ep.compute.i", "region": "RegionOne"}, {"id": "5dbcddce35de4a7ab22a24a7f68ac1e8", "interface": "internal", "region_id": "kz", "url": "http://evacuation-controller-api.ep.qaz.compute.i", "region": "kz"}, {"id": "a4b73787925d4f26a788a425d50c99c7", "interface": "internal", "region_id": "RegionOne", "url": "http://evacuation-controller-api.ep.compute.i", "region": "RegionOne"}, {"id": "e31ea275ecd44e75854573ac4e3df064", "interface": "admin", "region_id": "kz", "url": "http://evacuation-controller-api.ep.qaz.compute.i", "region": "kz"}], "id": "15e8acbde8254fc9ab2c73bbab5306ae", "type": "evacuate", "name": "evacuation"}, {"endpoints": [{"id": "ded5ea8264d842ffb9167248223a1643", "interface": "internal", "region_id": "RegionOne", "url": "https://scrooge-price-api-keystone.ep.compute.i", "region": "RegionOne"}], "id": "17149a8106ee45bf86cc95b875f2f041", "type": "scrooge-price-api-sa", "name": "scrooge-price-api-sa"}, {"endpoints": [{"id": "2042570f467f418798b543d5887afb22", "interface": "admin", "region_id": "RegionOne", "url": "http://dbaas-proxy-private.ep.compute.i/v1.0/5aa354d05172439abcc5bfc3f682da49", "region": "RegionOne"}, {"id": "2cb999a467c7448097b95bb138816157", "interface": "internal", "region_id": "RegionOne", "url": "http://dbaas-proxy-private.ep.compute.i/v1.0/5aa354d05172439abcc5bfc3f682da49", "region": "RegionOne"}, {"id": "6bb6fc34ff5b4fa79f3022067b22c287", "interface": "admin", "region_id": "kz", "url": "http://dbaas-proxy-private.ep.qaz.compute.i/v1.0/5aa354d05172439abcc5bfc3f682da49", "region": "kz"}, {"id": "7d9d1c3e1c6f408cb29c6516fc7da792", "interface": "public", "region_id": "RegionOne", "url": "https://msk.cloud.vk.com/infra/database/v1.0/5aa354d05172439abcc5bfc3f682da49", "region": "RegionOne"}, {"id": "ce9b4d04c82f4b6987fb4bc577e0ed4d", "interface": "public", "region_id": "kz", "url": "https://kz.cloud.vk.com/infra/database/v1.0/5aa354d05172439abcc5bfc3f682da49", "region": "kz"}, {"id": "d7afa31629db4611836a4e581c3e2b74", "interface": "internal", "region_id": "kz", "url": "http://dbaas-proxy-private.ep.qaz.compute.i/v1.0/5aa354d05172439abcc5bfc3f682da49", "region": "kz"}], "id": "17bc6967100b4de98e4f68ffab682116", "type": "database", "name": "trove"}, {"endpoints": [{"id": "a146596f0e934bb0816b905c8dcfac7f", "interface": "internal", "region_id": "RegionOne", "url": "http://metrics-server-s2s-api.ep.compute.i", "region": "RegionOne"}, {"id": "f5a383c44918409f9cd56c45a2296db6", "interface": "internal", "region_id": "kz", "url": "http://metrics-server-s2s-api.ep.qaz.compute.i", "region": "kz"}], "id": "1922f73588cd4976820d32233f7132f8", "type": "monitoring", "name": "monitoring-writer"}, {"endpoints": [{"id": "2c548b801b10455dbd8bb804d340dee8", "interface": "public", "region_id": "kz", "url": "https://kz.infra.mail.ru:8778", "region": "kz"}, {"id": "4163559b4998475eabb0648867fb71da", "interface": "admin", "region_id": "RegionOne", "url": "http://admin.endpoint.compute.i:8778", "region": "RegionOne"}, {"id": "5e87f1c90a0640c8b921db98a26ae9df", "interface": "internal", "region_id": "RegionOne", "url": "http://internal.endpoint.compute.i:8778", "region": "RegionOne"}, {"id": "6086296bb79d429092e7a7b272f994e6", "interface": "internal", "region_id": "kz", "url": "http://qaz-private.compute.i:8778", "region": "kz"}, {"id": "7110f250d8514deb8c97d462865373d8", "interface": "admin", "region_id": "kz", "url": "http://qaz-private.Line truncated
 ~/rosatom
nix-shell ❯ TOKEN="gAAAAABqLp2hueJVBdeWrra1M4DMnQEpGmVJFJu9v4yliHJJq7h8lauGD0DYY-zX4R4ICO1BmKKGZuwmQpZcdeivjejjahJETBLHiQi-C0f3OCyMGfUGzTI0n2Izr-P0gop5q7PyEg9jE1vekbV1nKOhmJgEkGsrHwANy68uCG8MqcaCK8IVPSo"
@@ -0,0 +1,207 @@
 ~/rosatom
nix-shell ❯ curl -s -X GET "https://infra.mail.ru:8774/v2.1/5aa354d05172439abcc5bfc3f682da49/flavors/detail" \ on ☁️ (ru-msk)
-H "X-Auth-Token: $TOKEN" | jq '.flavors[] | {name: .name, id: .id, disk: .disk} | select(.disk > 0)'
{
"name": "Basic-1-2-40",
"id": "19b38715-48cd-495b-9391-4c4e9d424518",
"disk": 40
}
{
"name": "Basic-1-2-20",
"id": "25ae869c-be29-4840-8e12-99e046d2dbd4",
"disk": 20
}
{
"name": "Advanced-8-16-100",
"id": "283fa444-8d59-4e83-b6f4-90613c52a5a4",
"disk": 100
}
{
"name": "Advanced-16-64-50",
"id": "59f7faf3-d817-4cb8-ae69-8b4b92565f94",
"disk": 50
}
{
"name": "Advanced-16-32-50",
"id": "670f9d36-d01b-4a4a-a8e5-c88cfb9ea0ec",
"disk": 50
}
{
"name": "Advanced-8-32-50",
"id": "76fd2a82-4095-49b7-acc9-80ee90284ce9",
"disk": 50
}
{
"name": "Standard-4-8-50",
"id": "77109506-bf0c-44a9-9e97-53360e9898bc",
"disk": 50
}
{
"name": "Basic-1-4-50",
"id": "7e6f3416-f74a-40b5-86e8-82d14615f329",
"disk": 50
}
{
"name": "Advanced-8-16-160",
"id": "7f04b02c-5260-4b5d-bccf-4151c5ade92d",
"disk": 160
}
{
"name": "Standard-4-8-80",
"id": "908479b5-1138-46b6-b746-48bf6c24e548",
"disk": 80
}
{
"name": "Standard-2-4-50",
"id": "b7d20f15-82f1-4ed4-a12e-e60277fe955f",
"disk": 50
}
{
"name": "Standard-2-8-50",
"id": "bf714720-78da-4271-ab7d-0cf5e2613f14",
"disk": 50
}
{
"name": "Standard-2-4-40",
"id": "d659fa16-c7fb-42cf-8a5e-9bcbe80a7538",
"disk": 40
}
{
"name": "Basic-1-1-10",
"id": "df3c499a-044f-41d2-8612-d303adc613cc",
"disk": 10
}
{
"name": "Standard-4-16-50",
"id": "ea26a8fe-5915-4bda-abdc-34b0be148e97",
"disk": 50
}
 ~/rosatom
nix-shell ❯ curl -s -X GET "https://infra.mail.ru:9696/v2.0/networks" \ on ☁️ (ru-msk)
-H "X-Auth-Token: $TOKEN" \
-H "Content-Type: application/json" | jq '.networks[] | {id, name}'
{
"id": "ec8c610e-6387-447e-83d2-d2c541e88164",
"name": "internet"
}
 ~/rosatom
nix-shell ❯ curl -s -X GET "https://infra.mail.ru:9292/v2/images" \ on ☁️ (ru-msk)
-H "X-Auth-Token: $TOKEN" \
-H "Content-Type: application/json" | jq '.images[] | {id, name}'
{
"id": "91092b96-c349-401f-bf4c-0ddeecb88f4d",
"name": "alse-1.8.4-max-vkcloud-mg16.0.0-amd64"
}
{
"id": "74b5e605-c1c0-44f8-9019-ea4e9d19177b",
"name": "opensuse-leap-15.5-202603071211.git3f834af3"
}
{
"id": "a240235f-fdac-414c-94eb-1022025158c0",
"name": "opensuse-leap-15.6-202602160742.git3f834af3"
}
{
"id": "fcbf111e-03b7-47e5-b348-59fecfc0af2c",
"name": "redos-std-73-vgpu-202602051650.gite7a38aaf"
}
{
"id": "c516abf0-0dad-4be1-b2b5-d7dae7093806",
"name": "ubuntu-24-vgpu-202602051634.gite7a38aaf"
}
{
"id": "b812255f-7b5f-4fd6-bad4-8b24265dc076",
"name": "ubuntu-24-202602051634.gite7a38aaf"
}
{
"id": "dc0f6670-ee20-425a-bda6-666d498a6aa9",
"name": "redos-std-80-202602051633.gite7a38aaf"
}
{
"id": "26534385-131c-4217-a2d3-a034a33993b0",
"name": "ubuntu-18-202602051631.gite7a38aaf"
}
{
"id": "371e0707-6700-48d1-97d8-e1a01a443fbf",
"name": "ubuntu-20-202602051631.gite7a38aaf"
}
{
"id": "a4e699d3-a66d-45e5-bb5d-70ea7c8de62d",
"name": "ubuntu-22-202602051629.gite7a38aaf"
}
{
"id": "761117e5-b607-4041-9c47-f5cce1b19c34",
"name": "ubuntu-16-202602051624.gite7a38aaf"
}
{
"id": "1c064e46-8af6-40d5-b7d0-14e17573340d",
"name": "redos-std-73-202602051633.gite7a38aaf"
}
{
"id": "501f01b0-552b-4e76-984f-f17af9ba679b",
"name": "redos-crt-73-202602051634.gite7a38aaf"
}
{
"id": "80354fe5-91e2-4aac-998c-ccd72af1d27c",
"name": "debian-13-202602051630.gite7a38aaf"
}
{
"id": "41595402-4d3a-4055-b570-bbfb5dfb4fb1",
"name": "debian-12-202602051626.gite7a38aaf"
}
{
"id": "28610469-9621-4747-a226-564f8c74a2df",
"name": "debian-12-vgpu-202602051632.gite7a38aaf"
}
{
"id": "98d4aec9-8d26-43a3-99da-0e90e1db30c0",
"name": "debian-11-202602051625.gite7a38aaf"
}
{
"id": "9080fc2f-bb27-4274-b92b-d75a3ad4e249",
"name": "centos-8-stream-202602051626.gite7a38aaf"
}
{
"id": "cb04a0bc-b0e2-4670-b46f-ecc56668214b",
"name": "debian-10-202602051625.gite7a38aaf"
}
{
"id": "7ae8f6e7-ada2-4858-8420-4dfc671b3062",
"name": "centos-8-stream-vgpu-202602051634.gite7a38aaf"
}
{
"id": "bc3782cc-c2b8-4cc4-892a-5383558e433b",
"name": "centos-7.9-202602051631.gite7a38aaf"
}
{
"id": "1c7529ce-0897-4faf-b796-ada02dde0b43",
"name": "astra-vor-1.7-vgpu-202602051632.gite7a38aaf"
}
{
"id": "e403f5c9-6c44-44a8-875c-53acbbc3031d",
"name": "astra-or-1.7-vgpu-202602051639.gite7a38aaf"
}
{
"id": "096a045c-b875-4a4e-902f-eb93bc23719a",
"name": "almalinux-9.7-202602051629.gite7a38aaf"
}
{
"id": "f0045749-fb70-4ce8-9993-8ee3287ef56f",
"name": "almalinux-10.1-202602051628.gite7a38aaf"
}
 ~/rosatom
nix-shell ❯ curl -s -X POST "https://infra.mail.ru:8774/v2.1/5aa354d05172439abcc5bfc3f682da49/servers" \ on ☁️ (ru-msk)
-H "X-Auth-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"server": {
"name": "api-created-vm",
"imageRef": "b812255f-7b5f-4fd6-bad4-8b24265dc076",
"flavorRef": "25ae869c-be29-4840-8e12-99e046d2dbd4",
"networks": [{"uuid": "ec8c610e-6387-447e-83d2-d2c541e88164"}],
"key_name": "my-first-vm-ie9Ev9Cc"
}
}'
{"server": {"security_groups": [{"name": "default"}], "OS-DCF:diskConfig": "MANUAL", "id": "8c3f3134-560c-4558-9060-c3c6731792a8", "links": [{"href": "https://infra.mail.ru:8774/v2.1/5aa354d05172439abcc5bfc3f682da49/servers/8c3f3134-560c-4558-9060-c3c6731792a8", "rel": "self"}, {"href": "https://infra.mail.ru:8774/5aa354d05172439abcc5bfc3f682da49/servers/8c3f3134-560c-4558-9060-c3c6731792a8", "rel": "bookmark"}], "adminPass": "8WwHM2JjPj62"}}%
@@ -0,0 +1,26 @@
 ~/rosatom
nix-shell ❌5 ❯ curl -s -X GET "https://infra.mail.ru:8774/v2.1/5aa354d05172439abcc5bfc3f682da49/servers" \ on ☁️ (ru-msk)
-H "X-Auth-Token: $TOKEN" \
-H "Content-Type: application/json" | jq '.servers'
[]
 ~/rosatom
nix-shell ❯ #После создания VM через API
curl -s -X GET "https://infra.mail.ru:8774/v2.1/5aa354d05172439abcc5bfc3f682da49/servers" \ on ☁️ (ru-msk)
-H "X-Auth-Token: $TOKEN" \
-H "Content-Type: application/json" | jq '.servers'
[
{
"id": "8c3f3134-560c-4558-9060-c3c6731792a8",
"links": [
{
"href": "https://infra.mail.ru:8774/v2.1/5aa354d05172439abcc5bfc3f682da49/servers/8c3f3134-560c-4558-9060-c3c6731792a8",
"rel": "self"
},
{
"href": "https://infra.mail.ru:8774/5aa354d05172439abcc5bfc3f682da49/servers/8c3f3134-560c-4558-9060-c3c6731792a8",
"rel": "bookmark"
}
],
"name": "api-created-vm"
}
]