Compare commits

..

130 Commits

Author SHA1 Message Date
Левченко Людмила Алексеевна 745d14cde5 Описание gold-образа 2026-01-21 16:36:39 +03:00
Elena Rechkina dfebbc3c45 Форматирование 2026-01-14 12:09:23 +06:00
Речкина Елена Валерьевна 37d1f1f17e Merge branch 'feature/placement-groups' into 'main'
Корректировка раздела "Группы размещения" #VEGA-6214

See merge request common/vega/beecloud-docs!77
2026-01-14 06:07:29 +00:00
Левченко Людмила Алексеевна 968dc9de10 Корректировка раздела "Группы размещения" #VEGA-6214 2026-01-14 06:07:29 +00:00
Речкина Елена Валерьевна d126d05f4d Merge branch 'feature/IP-address' into 'main'
Корректировка раздела IP-адреса #VEGA-6213

See merge request common/vega/beecloud-docs!74
2026-01-13 12:41:24 +00:00
Левченко Людмила Алексеевна 3c441310a4 Корректировка раздела IP-адреса #VEGA-6213 2026-01-13 12:41:24 +00:00
Речкина Елена Валерьевна f5d44a3f8f Merge branch 'feature/disks' into 'main'
Форматирование раздела "Диски" #VEGA-6212

See merge request common/vega/beecloud-docs!70
2026-01-13 09:50:36 +00:00
Левченко Людмила Алексеевна 386e89f8f3 Форматирование раздела "Диски" #VEGA-6212 2026-01-13 09:50:36 +00:00
Elena Rechkina ba4d5e80e2 Форматирование 2026-01-13 13:11:04 +06:00
Бурденко Алексей 8eb2c67453 up ci 2026-01-12 14:33:43 +03:00
Бурденко Алексей 36ba0c1f0a up ci 2026-01-12 12:59:52 +03:00
Бурденко Алексей Иванович a42f281613 Merge branch 'feature/fix-ib' into 'main'
fix-ib-csp-2200

See merge request common/vega/beecloud-docs!67
2026-01-12 09:53:45 +00:00
Бурденко Алексей Иванович e3cf876ccc fix-ib-csp-2200 2026-01-12 09:53:45 +00:00
Речкина Елена Валерьевна f83c928c47 Merge branch 'feature/VEGA-6262-fix-icons' into 'main'
VEGA-6262: исправление отображения иконок

See merge request common/vega/beecloud-docs!75
2025-12-25 10:23:12 +00:00
Дмитрий Захаров f17badaa68 VEGA-6262: исправление отображения иконок 2025-12-25 12:53:31 +03:00
Elena Rechkina 32731bda89 Правка ссылок 2025-12-22 19:28:23 +06:00
Elena Rechkina 4afd915f49 Форматирование 2025-12-22 19:24:21 +06:00
Elena Rechkina 54e7130488 Мелкие правки 2025-12-22 19:06:40 +06:00
Elena Rechkina f66984ced0 version 2025-12-22 19:01:32 +06:00
Elena Rechkina b3a8881074 up version 2025-12-22 16:49:21 +06:00
Elena Rechkina 96e7b4827a Подготовка к публикации 2025-12-22 16:48:37 +06:00
Речкина Елена Валерьевна 4019438a48 Merge branch 'fix/content#VEGA-4928' into 'main'
VEGA-4928 Исправление отображения контента details и размер шрифта в содержании

See merge request common/vega/beecloud-docs!73
2025-12-19 14:27:25 +00:00
Русович Виолетта Игоревна 0ad71bd579 VEGA-4928 Исправление отображения контента details и размер шрифта в содержании 2025-12-19 14:27:25 +00:00
Речкина Елена Валерьевна a7e57c575d Merge branch 'fix/search-content#VEGA-5235' into 'main'
VEGA-5235 Исправление отображения контента при поиске

See merge request common/vega/beecloud-docs!68
2025-12-19 05:34:31 +00:00
Русович Виолетта Игоревна 4270668c7c VEGA-5235 Исправление отображения контента при поиске 2025-12-19 05:34:31 +00:00
Elena Rechkina 9432e755e6 Форматирование 2025-12-18 16:11:12 +06:00
Речкина Елена Валерьевна 5e284757e7 Merge branch 'feature/admin' into 'main'
Корректировка раздела "Администрирование" #VEGA-6215

See merge request common/vega/beecloud-docs!71
2025-12-18 09:30:21 +00:00
Речкина Елена Валерьевна bd08e437b6 Корректировка раздела "Администрирование" #VEGA-6215 2025-12-18 09:30:21 +00:00
Elena Rechkina 49a7b5e0b4 Подготовка к публикации 2025-12-18 14:28:23 +06:00
Речкина Елена Валерьевна 81ee62ef52 Merge branch 'fix/content-docs#VEGA-4929' into 'main'
VEGA-5038 Адаптация контента страниц документации

See merge request common/vega/beecloud-docs!33
2025-12-18 07:42:39 +00:00
Русович Виолетта Игоревна 601bec1af2 VEGA-5038 Адаптация контента страниц документации 2025-12-18 07:42:39 +00:00
Речкина Елена Валерьевна efbdef87fa Merge branch 'feature/vdi' into 'main'
VDI_Подготовка описания сервиса #VEGA-4996

See merge request common/vega/beecloud-docs!36
2025-12-18 07:41:34 +00:00
Речкина Елена Валерьевна b794e5aebd VDI_Подготовка описания сервиса #VEGA-4996 2025-12-18 07:41:34 +00:00
Elena Rechkina 9e3bf98788 Правка инф по ограничениям 2025-12-16 13:50:27 +06:00
Elena Rechkina ef38318ce8 Форматирование после слияния 2025-12-15 17:13:35 +06:00
Речкина Елена Валерьевна 6619c5cc7f Merge branch 'feature/free-period' into 'main'
Бесплатный период #VEGA-6071

See merge request common/vega/beecloud-docs!66
2025-12-15 10:12:45 +00:00
Левченко Людмила Алексеевна 70553ded2f Бесплатный период #VEGA-6071 2025-12-15 10:12:45 +00:00
Речкина Елена Валерьевна 184fe5eb1b Merge branch 'feature/vpn' into 'main'
Документация по настройке VPN #VEGA-6073

See merge request common/vega/beecloud-docs!56
2025-12-15 10:11:41 +00:00
Анисин Александр Александрович f6111628b0 Документация по настройке VPN #VEGA-6073 2025-12-15 10:11:41 +00:00
Elena Rechkina 94bc0035d3 Опечатки 2025-12-10 19:59:15 +06:00
Elena Rechkina d2e654bf25 Опечатки 2025-12-10 19:55:40 +06:00
Elena Rechkina 36f291aba4 Форматирование, ссылки 2025-12-10 15:07:23 +06:00
Речкина Елена Валерьевна 41840e657a Merge branch 'feature/data-center' into 'main'
Внесение адреса для дата-центра #VEGA-6069

See merge request common/vega/beecloud-docs!64
2025-12-10 08:52:41 +00:00
Левченко Людмила Алексеевна 64bbd09f15 Внесение адреса для дата-центра #VEGA-6069 2025-12-10 08:52:41 +00:00
Elena Rechkina 18ad8159cd Правки РК 2025-12-10 14:51:01 +06:00
Elena Rechkina 872b9d519f Правки по резервному копированию 2025-12-09 18:06:33 +06:00
Речкина Елена Валерьевна 702190b65a Merge branch 'feature/backup' into 'main'
Резервное копирование #VEGA-4913

See merge request common/vega/beecloud-docs!40
2025-12-09 10:31:13 +00:00
Анисин Александр Александрович ee6b50cb82 Резервное копирование #VEGA-4913 2025-12-09 10:31:13 +00:00
Elena Rechkina de75b64133 Правка навигации 2025-12-09 16:27:29 +06:00
Речкина Елена Валерьевна 07052a4160 Merge branch 'feature/getting-started' into 'main'
Актуализация ссылки на ЛК при регистрации

See merge request common/vega/beecloud-docs!63
2025-12-03 11:53:02 +00:00
Левченко Людмила Алексеевна 99e30cda4a Актуализация ссылки на ЛК при регистрации 2025-12-03 11:53:02 +00:00
Речкина Елена Валерьевна 2b489b529f Merge branch 'feature/required-INN' into 'main'
Изменение ИНН как обязательное поле

See merge request common/vega/beecloud-docs!61
2025-12-03 08:15:24 +00:00
Левченко Людмила Алексеевна 4b32ec3950 Изменение ИНН как обязательное поле 2025-12-03 08:15:24 +00:00
Elena Rechkina 24116b1633 Правка навигации 2025-12-03 12:58:06 +06:00
Речкина Елена Валерьевна 6bcd90f9bc Merge branch 'feature/vdc-disks' into 'main'
Управление дисками в vDC

See merge request common/vega/beecloud-docs!53
2025-12-02 10:11:05 +00:00
Анисин Александр Александрович 46ed947331 Управление дисками в vDC 2025-12-02 10:11:05 +00:00
Речкина Елена Валерьевна 1a600b7851 Merge branch 'edits/create-network' into 'main'
VDC: упрощение 26 шагов

See merge request common/vega/beecloud-docs!48
2025-12-02 08:56:05 +00:00
Анисин Александр Александрович 64d75d9aef VDC: упрощение 26 шагов 2025-12-02 08:56:04 +00:00
Речкина Елена Валерьевна 4fdbff209f Merge branch 'edits/edit-vm' into 'main'
VDC: доработка редактирования конфигураций ВМ

See merge request common/vega/beecloud-docs!49
2025-12-02 08:40:39 +00:00
Анисин Александр Александрович 63e55b74e2 VDC: доработка редактирования конфигураций ВМ 2025-12-02 08:40:39 +00:00
Речкина Елена Валерьевна f6865fbfe4 Merge branch 'feature/technical-support' into 'main'
Техническая поддержка #VEGA-5848

See merge request common/vega/beecloud-docs!60
2025-11-28 10:19:35 +00:00
Левченко Людмила Алексеевна 8775794f64 Техническая поддержка #VEGA-5848 2025-11-28 10:19:35 +00:00
Речкина Елена Валерьевна 510114e1db Merge branch 'feature/disaster-recovery' into 'main'
Аварийное восстановление #VEGA-5976

See merge request common/vega/beecloud-docs!59
2025-11-28 09:59:48 +00:00
Левченко Людмила Алексеевна 00edb34a9d Аварийное восстановление #VEGA-5976 2025-11-28 09:59:48 +00:00
Речкина Елена Валерьевна afd3407309 Merge branch 'fix/url-logo-docs#VEGA-5928' into 'main'
VEGA-5927 Исправление url для лого

See merge request common/vega/beecloud-docs!58
2025-11-24 10:19:03 +00:00
Русович Виолетта Игоревна 81bc33a1e9 VEGA-5927 Исправление url для лого 2025-11-24 10:19:03 +00:00
Речкина Елена Валерьевна 2495d86655 Merge branch 'fix/header-logo-docs#VEGA-5928' into 'main'
VEGA-5927 Изменение логотипа

See merge request common/vega/beecloud-docs!57
2025-11-24 08:57:29 +00:00
Русович Виолетта Игоревна 712f7ddbc0 VEGA-5927 Изменение логотипа 2025-11-24 08:57:29 +00:00
Elena Rechkina d4888e088e Up version 2025-11-12 12:51:39 +06:00
Речкина Елена Валерьевна 8dbbe46636 Merge branch 'feature/update' into 'main'
Правки перед публикацией

See merge request common/vega/beecloud-docs!54
2025-11-12 06:27:28 +00:00
Речкина Елена Валерьевна 4186722ab9 Правки перед публикацией 2025-11-12 06:27:28 +00:00
Речкина Елена Валерьевна 184acc6485 Merge branch 'feature/vdc-snapshot' into 'main'
VDC: правки по снимкам виртуальных машин

See merge request common/vega/beecloud-docs!50
2025-11-11 12:04:04 +00:00
Анисин Александр Александрович 1e42c41971 VDC: правки по снимкам виртуальных машин 2025-11-11 12:04:04 +00:00
Речкина Елена Валерьевна 3331da2399 Merge branch 'fix/link-to-lk' into 'main'
Изменение ссылок на console.cloud.beeline.ru

See merge request common/vega/beecloud-docs!52
2025-11-10 08:40:12 +00:00
Анисин Александр Александрович ec841dff60 Изменение ссылок на console.cloud.beeline.ru 2025-11-10 08:40:12 +00:00
Речкина Елена Валерьевна e429ff9a47 Merge branch 'feature/vdc-users' into 'main'
VDC: правки в пользователях и ролях

See merge request common/vega/beecloud-docs!51
2025-11-06 10:35:08 +00:00
Elena Rechkina aa3a35b840 Форматирование 2025-11-06 16:33:33 +06:00
Aleksandr Anisin 4c2d28fb37 Внесение правок 2025-11-06 09:15:39 +03:00
Речкина Елена Валерьевна 322d7af231 Merge branch 'feature/vdc-create-affinity-rules' into 'main'
VDC: доработка описания групп размещения

See merge request common/vega/beecloud-docs!45
2025-11-01 07:11:45 +00:00
Речкина Елена Валерьевна 77f37ea74c VDC: доработка описания групп размещения 2025-11-01 07:11:45 +00:00
Речкина Елена Валерьевна 3194088e94 Merge branch 'feature/vm-login' into 'main'
Подключение к ВМ по логину и паролю #VEGA-5717

See merge request common/vega/beecloud-docs!47
2025-10-28 10:18:03 +00:00
Речкина Елена Валерьевна d8020505c3 Подключение к ВМ по логину и паролю #VEGA-5717 2025-10-28 10:18:03 +00:00
Elena Rechkina 57aaeae566 Правка ссылок 2025-10-14 17:38:51 +06:00
Elena Rechkina ac56186cf7 Правка ссылок 2025-10-14 16:15:19 +06:00
Elena Rechkina f6e295a3f5 Правка ссылок 2025-10-14 16:13:45 +06:00
Речкина Елена Валерьевна 09415adce2 Merge branch 'feature/search-menu#VEGA-5235' into 'main'
VEGA-5236 Адаптация результатов поиска в документации

See merge request common/vega/beecloud-docs!35
2025-10-14 08:06:15 +00:00
Русович Виолетта Игоревна 3609f446cb VEGA-5236 Адаптация результатов поиска в документации 2025-10-14 08:06:15 +00:00
Elena Rechkina 145f0c6702 Правка описания 2025-10-13 22:01:12 +06:00
Elena Rechkina 61947a5acc Правка описания 2025-10-13 21:54:48 +06:00
Речкина Елена Валерьевна 9d638839d6 Merge branch 'feature/vCD' into 'main'
Документация по виртуальным дата-центрам

See merge request common/vega/beecloud-docs!37
2025-10-13 09:27:59 +00:00
Анисин Александр Александрович 39e2370fde Документация по виртуальным дата-центрам 2025-10-13 09:27:59 +00:00
Речкина Елена Валерьевна 1c25d760e2 Merge branch 'feature/start-vm-2' into 'main'
2-start vm 2

See merge request common/vega/beecloud-docs!43
2025-10-06 15:40:37 +00:00
Речкина Елена Валерьевна a869b20d2b 2-start vm 2 2025-10-06 15:40:37 +00:00
Речкина Елена Валерьевна 4e44140183 Merge branch 'feature/start-vm-2' into 'main'
start vm 2

See merge request common/vega/beecloud-docs!42
2025-10-03 10:18:17 +00:00
Речкина Елена Валерьевна 8d36597e0e start vm 2 2025-10-03 10:18:17 +00:00
Elena Rechkina cbca88ec9d version 2025-10-02 21:14:29 +06:00
Elena Rechkina e4d89b5132 Правка ссылки 2025-10-02 21:11:21 +06:00
Речкина Елена Валерьевна 5feef83ae0 Merge branch 'feature/getting-started-vm' into 'main'
Быстрый старт ВМ

See merge request common/vega/beecloud-docs!41
2025-10-02 15:08:06 +00:00
Речкина Елена Валерьевна 123fbb3fb4 Быстрый старт ВМ 2025-10-02 15:08:06 +00:00
Речкина Елена Валерьевна 2021e92467 Edit package.json up version 2025-09-23 09:47:13 +00:00
Речкина Елена Валерьевна 26f4def6c3 Merge branch 'feature/HW' into 'main'
Техническое описание сервисов #VEGA-5488

See merge request common/vega/beecloud-docs!34
2025-09-23 09:42:50 +00:00
Речкина Елена Валерьевна ace0cba558 Техническое описание сервисов #VEGA-5488 2025-09-23 09:42:50 +00:00
Elena Rechkina b669aba0dc правка аннотации 2025-08-25 17:48:56 +06:00
Elena Rechkina 3a20198e52 Правка аннотации к админ. 2025-08-25 17:44:01 +06:00
Elena Rechkina c7e23817d6 Правка навигации, up version 2025-08-25 17:27:58 +06:00
Речкина Елена Валерьевна 8ab527e096 Merge branch 'feature/VEGA-4499-main-page' into 'main'
VEGA-4499: адаптация UI главной страницы документации

Closes VEGA-4499

See merge request common/vega/beecloud-docs!24
2025-08-25 11:21:10 +00:00
Захаров Дмитрий Анатольевич baca55494c VEGA-4499: адаптация UI главной страницы документации 2025-08-25 11:21:09 +00:00
Elena Rechkina 2ce47117e1 Исправлено подключение по ssh 2025-08-22 15:23:17 +06:00
Речкина Елена Валерьевна 398d4cc342 Merge branch 'feature/vm-openstack-flavor' into 'main'
Конфигурации CPU/RAM

See merge request common/vega/beecloud-docs!29
2025-08-22 08:30:38 +00:00
Речкина Елена Валерьевна cbbfc629eb Конфигурации CPU/RAM 2025-08-22 08:30:37 +00:00
Elena Rechkina a8d37525c3 Исправление ошибок 2025-08-22 13:45:59 +06:00
Речкина Елена Валерьевна 08f15a687f Merge branch 'vdc-getting-started' into 'main'
VDC быстрый старт

See merge request common/vega/beecloud-docs!21
2025-08-22 07:44:38 +00:00
Речкина Елена Валерьевна b3ff86ce8b VDC быстрый старт 2025-08-22 07:44:37 +00:00
Elena Rechkina 17eeec3d26 Правка навигации 2025-08-22 13:22:20 +06:00
Elena Rechkina 702c2e01da Убрала верхнее меню 2025-08-22 12:59:56 +06:00
Речкина Елена Валерьевна ff9885c5f8 Merge branch 'feature/header#VEGA-4759' into 'main'
VEGA-4759 Адаптация UI шапки портала документации

See merge request common/vega/beecloud-docs!20
2025-08-22 06:54:17 +00:00
Русович Виолетта Игоревна 021236498e VEGA-4759 Адаптация UI шапки портала документации 2025-08-22 06:54:17 +00:00
Речкина Елена Валерьевна 28e159b8bd Merge branch 'fix/99-right-nav-bar#VEGA-4856' into 'main'
VEGA-4856 Корректировка правого элемента меню

See merge request common/vega/beecloud-docs!28
2025-08-22 06:50:47 +00:00
Русович Виолетта Игоревна 022a3ad303 VEGA-4856 Корректировка правого элемента меню 2025-08-22 06:50:47 +00:00
Речкина Елена Валерьевна 71c9bcb05a Merge branch 'fix/nav-drawer#VEGA-4802' into 'main'
VEGA-4802 Адаптация бокового меню

See merge request common/vega/beecloud-docs!27
2025-08-22 06:45:33 +00:00
Русович Виолетта Игоревна 6b8bccff1d VEGA-4802 Адаптация бокового меню 2025-08-22 06:45:33 +00:00
Речкина Елена Валерьевна ea158a44b0 Merge branch 'feature/vyos-#VEGA-4844' into 'main'
vyos #VEGA-4844

Closes VEGA-4844

See merge request common/vega/beecloud-docs!30
2025-08-21 17:21:44 +00:00
Речкина Елена Валерьевна c140ec8b21 vyos #VEGA-4844 2025-08-21 17:21:44 +00:00
Речкина Елена Валерьевна be581a8757 Merge branch 'feature/VEGA-4499-lists' into 'main'
Исправление стилей списков

See merge request common/vega/beecloud-docs!25
2025-08-06 14:53:46 +00:00
Речкина Елена Валерьевна 285babb9c9 Merge branch 'feature/ssh-path' into 'main'
Подключение по ssh к ВМ

See merge request common/vega/beecloud-docs!23
2025-08-06 14:37:00 +00:00
Речкина Елена Валерьевна fa95157ab7 Подключение по ssh к ВМ 2025-08-06 14:37:00 +00:00
Дмитрий Захаров e208f23363 Исправление стилей списков 2025-08-04 16:46:55 +03:00
Elena Rechkina deab4d3df0 правка ссылки 2025-07-30 19:34:39 +06:00
Речкина Елена Валерьевна 3fffc8d2df Merge branch 'feature/pravki-docs-01.08' into 'main'
Обновление документации-01.08-31.08

See merge request common/vega/beecloud-docs!22
2025-07-30 11:11:02 +00:00
Речкина Елена Валерьевна ff41fe80c4 Обновление документации-01.08-31.08 2025-07-30 11:11:02 +00:00
169 changed files with 6306 additions and 1839 deletions
+4
View File
@@ -14,3 +14,7 @@ src/.vuepress/.cache
src/.vuepress/.temp src/.vuepress/.temp
src/.vitepress/cache src/.vitepress/cache
packages-list.json packages-list.json
/.vale
/.vscode
/.vale.ini
/.markdownlint.json
+1 -1
View File
@@ -1 +1 @@
0.0.2 0.0.2-fix1
+1 -1
View File
@@ -1,6 +1,6 @@
deploy-test-stand: deploy-test-stand:
stage: deploy stage: deploy
image: harbor.vimpelcom.ru/dockerhub/library/alpine image: harbor.vimpelcom.ru/dockerhub/library/alpine:3.21.2
variables: variables:
stand: cloud-stand.vega-dev.cloud.vimpelcom.ru stand: cloud-stand.vega-dev.cloud.vimpelcom.ru
rules: rules:
+40
View File
@@ -0,0 +1,40 @@
deploy-prod:
stage: deploy
image: harbor.vimpelcom.ru/dockerhub/library/alpine:3.21.2
variables:
stand: beecloud-docs.beecloud-docs.cloud.vimpelcom.ru
rules:
- if: $CI_COMMIT_BRANCH && $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
- if: $CI_PIPELINE_SOURCE == "push"
when: manual
before_script:
- |
sed -i s%https://dl-cdn.alpinelinux.org/%http://rhrepo.vimpelcom.ru/ext/ya/mirrors/% /etc/apk/repositories && \
apk --no-cache add tzdata ca-certificates curl openssh-client yq jq && \
rm -rf /var/cache/apk/*
- which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)
- eval $(ssh-agent -s)
- mkdir -p ~/.ssh
- echo -n "$TECH_SSH_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/id_rsa
- >
echo "stand: ${stand}"
ssh-keyscan "${stand}" >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- PRODUCT="$PRODUCT_DMZ"
script:
- >
echo -e "Connect to ${stand}..." &&
scp -o StrictHostKeyChecking=no ci/deploy/deploy.sh "dorootless@${stand}:~/deploy.sh" &&
ssh "dorootless@${stand}" "export CONTAINER_REGISTRY=$CONTAINER_REGISTRY &&
export PRODUCT=$PRODUCT &&
export PRODUCT_VERSION=$PRODUCT_VERSION &&
export IMAGE_NAME=$IMAGE_NAME &&
chmod 700 ~/deploy.sh &&
~/deploy.sh ${IMAGE_NAME} &&
rm -f ~/deploy.sh"
needs:
- job: build-image
optional: true
+1 -1
View File
@@ -23,7 +23,7 @@
# - git push origin HEAD:$CI_COMMIT_REF_NAME -o ci.skip # - git push origin HEAD:$CI_COMMIT_REF_NAME -o ci.skip
.deploy-template: .deploy-template:
image: harbor.vimpelcom.ru/dockerhub/library/alpine image: harbor.vimpelcom.ru/dockerhub/library/alpine:3.21.2
before_script: before_script:
- | - |
sed -i s%https://dl-cdn.alpinelinux.org/%http://rhrepo.vimpelcom.ru/ext/ya/mirrors/% /etc/apk/repositories && \ sed -i s%https://dl-cdn.alpinelinux.org/%http://rhrepo.vimpelcom.ru/ext/ya/mirrors/% /etc/apk/repositories && \
+699 -508
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1,7 +1,7 @@
{ {
"name": "docs", "name": "docs",
"version": "0.6.1", "version": "0.6.5-main",
"description": "Vega docs portal", "description": "Beeline Cloud docs",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"dev": "vitepress dev src", "dev": "vitepress dev src",
@@ -15,7 +15,7 @@
}, },
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@beeline/design-tokens": "^1.31.0", "@beeline/design-tokens": "1.31.0",
"vue": "3.4.7" "vue": "3.4.7"
}, },
"devDependencies": { "devDependencies": {
+196 -49
View File
@@ -42,7 +42,8 @@ console.log({ base: typeof new_version !== 'undefined' ? '/' : '/docs/' })
// https://vitepress.dev/reference/site-config // https://vitepress.dev/reference/site-config
export default defineConfig({ export default defineConfig({
title: "Beeline Cloud", srcDir: ".",
title: " ",
description: "Документация Beeline Cloud", description: "Документация Beeline Cloud",
head: [['link', { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/bee-favicon.png' }]], head: [['link', { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/bee-favicon.png' }]],
base: typeof new_version !== 'undefined' ? '/' : '/docs/', base: typeof new_version !== 'undefined' ? '/' : '/docs/',
@@ -63,7 +64,11 @@ export default defineConfig({
} }
}, },
themeConfig: { themeConfig: {
logo: '/favicon.svg', logo: {
light: '/img/logo-cloud.svg',
dark: '/img/logo-cloud.svg',
alt: '',
},
search: { search: {
provider: 'local', provider: 'local',
options: { options: {
@@ -75,14 +80,8 @@ export default defineConfig({
buttonAriaLabel: 'Поиск' buttonAriaLabel: 'Поиск'
}, },
modal: { modal: {
noResultsText: 'Нет результатов для', noResultsText: 'По вашему запросу ничего не найдено',
resetButtonTitle: 'Сбросить', resetButtonTitle: 'Сбросить',
displayDetails: 'Показать расширенный список',
footer: {
selectText: 'Выбрать',
closeText: 'Закрыть',
navigateText: 'Перейти',
}
} }
} }
} }
@@ -91,29 +90,26 @@ export default defineConfig({
}, },
// https://vitepress.dev/reference/default-theme-config // https://vitepress.dev/reference/default-theme-config
// nav: [ // nav: [
// ], // {
// text: 'Документация',
// socialLinks: [ // link: '/guide/',
// { icon: { svg: gitlab }, link: 'https://git.vimpelcom.ru/common/vega/docs' }
// ],
// editLink: {
// pattern: 'https://git.vimpelcom.ru/-/ide/project/common/vega/docs/edit/develop/-/src/:path',
// text: 'Отредактируйте эту страницу на GitLab'
// }, // },
// {
// text: 'API',
// link: '',
// },
// {
// text: 'Terraform',
// // link: '/terraform/',
// link: '',
// },
// ],
docFooter: { docFooter: {
next: 'Вперед', next: 'Вперед',
prev: 'Назад' prev: 'Назад'
}, },
// lastUpdated: {
// text: 'Обновлена',
// formatOptions: {
// dateStyle: 'long',
// }
// },
outline: { outline: {
label: 'Содержание' label: 'Содержание'
}, },
@@ -123,7 +119,7 @@ export default defineConfig({
text: 'Платформа Beeline Cloud', link: '/platform/index.md', text: 'Платформа Beeline Cloud', link: '/platform/index.md',
collapsed: true, collapsed: true,
items: [ items: [
{text: 'Сервисы', link: '/platform/services/services.md'}, {text: 'Обзор', link: '/platform/about.md'},
{text: 'Техническая поддержка', link: '/platform/support/support-overview.md'}, {text: 'Техническая поддержка', link: '/platform/support/support-overview.md'},
], ],
}, },
@@ -131,30 +127,113 @@ export default defineConfig({
'/start/': [ '/start/': [
{ {
text: 'Начало работы в Beeline Cloud', link: '/start/index.md', text: 'Начало работы в Beeline Cloud', link: '/start/index.md',
collapsed: true, },
items: [
{text: 'Начать работу', link: '/start/getting-started.md'}, {text: 'Начать работу', link: '/start/getting-started.md'},
{text: 'Бесплатный период', link: '/start/trial.md'}, {text: 'Бесплатный период', link: '/start/trial.md'},
{text: 'Платное использование', link: '/start/organization.md'}, {text: 'Платное использование', link: '/start/organization.md'},
], ],
},
],
// '/billing/': [ // '/billing/': [
// ], // ],
'/backups/': [
{
text: 'Резервное копирование', link: '/backups/index.md',
},
{
text: 'Обзор сервиса', link: '/backups/backups-overview.md',
collapsed: true,
items: [
{text: 'О сервисе', link: '/backups/about.md'},
{text: 'Квоты и лимиты', link: '/backups/backup-quatos.md'},
]
},
{text: 'Резервное копирование виртуальных машин Beeline Cloud', link: '/backups/backup-internal-infra.md'},
{text: 'Резервное копирование собственной инфраструктуры в Beeline Cloud', link: '/backups/backup-external-infra.md'},
{text: 'Каталог резервных копий', link: '/backups/view-backups.md'},
],
'/vdc/': [ '/vdc/': [
{ {
text: 'Виртуальные дата-центры на VMware', link: '/vdc/index.md', text: 'Виртуальные дата-центры на VMware', link: '/vdc/index.md',
},
{
text: 'Обзор сервиса', link: '/vdc/vdc-overview.md',
collapsed: true, collapsed: true,
items: [ items: [
{text: 'Обзор сервиса', link: '/vdc/vdc-overview.md'}, { text: 'О сервисе', link: '/vdc/vdc-about.md' },
{text: 'Быстрый старт', link: '/vdc/vdc-getting-started.md'}, { text: 'Техническое описание', link: '/vdc/vdc-tech.md' },
{text: 'Виртуальные дата-центры', link: '/vdc/vdc-how-to/vdc-index.md', { text: 'Квоты и лимиты', link: '/vdc/vdc-quatos.md' },
]
},
{
text: 'Быстрый старт', link: '/vdc/vdc-getting-started.md'
},
{ text: 'Виртуальные дата-центры', link: '/vdc/vdc-how-to/vdc-index.md',
collapsed: true, collapsed: true,
items: [ items: [
{ text: 'Создание дата-центра', link: '/vdc/vdc-how-to/vdc-create.md' }, { text: 'Создание дата-центра', link: '/vdc/vdc-how-to/vdc-create.md' },
{ text: 'Вход в дата-центр', link: '/vdc/vdc-how-to/vdc-enter.md' }, { text: 'Вход в дата-центр', link: '/vdc/vdc-how-to/vdc-enter.md' },
{ text: 'Управление дата-центром', link: '/vdc/vdc-how-to/vdc-manage.md' }, { text: 'Управление дата-центром', link: '/vdc/vdc-how-to/vdc-manage.md'},
],
},
{ text: 'Виртуальные машины', link: '/vdc/vdc-how-to/vm/vm-index.md',
collapsed: true,
items: [
{text: 'Создание ВМ', link: '/vdc/vdc-how-to/vm/create-vm.md'},
{text: 'Создание vApp', link: '/vdc/vdc-how-to/vm/create-vapp.md'},
{text: 'Управление состоянием ВМ', link: '/vdc/vdc-how-to/vm/manage-vm.md'},
{text: 'Клонирование ВМ', link: '/vdc/vdc-how-to/vm/clone-vm.md'},
{text: 'Изменение конфигурации ВМ', link: '/vdc/vdc-how-to/vm/edit-vm.md'},
{text: 'Удаление ВМ', link: '/vdc/vdc-how-to/vm/delete-vm.md'},
{text: 'Группы размещения', link: '/vdc/vdc-how-to/vm/create-affinity-rules.md'},
{text: 'Снимки ВМ', link: '/vdc/vdc-how-to/vm/create-snapshot.md'},
{text: 'VMware Tools', link: '/vdc/vdc-how-to/vm/vmware-tools.md'},
],
},
{ text: 'Диски', link: '/vdc/vdc-how-to/disks/disks-index.md',
collapsed: true,
items: [
{text: 'Обзор', link: '/vdc/vdc-how-to/disks/about.md'},
{text: 'Создание диска', link: '/vdc/vdc-how-to/disks/create-disk.md'},
{text: 'Проверка состояния диска', link: '/vdc/vdc-how-to/disks/view-disk.md'},
{text: 'Управление выделенными дисками', link: '/vdc/vdc-how-to/disks/attach-disk.md'},
{text: 'Изменение политики хранения дисков ВМ', link: '/vdc/vdc-how-to/disks/change-storage-policy-of-vm.md'},
{text: 'Редактирование параметров диска', link: '/vdc/vdc-how-to/disks/edit-disk.md'},
{text: 'Удаление диска', link: '/vdc/vdc-how-to/disks/delete-disk.md'},
],
},
{ text: 'Сети', link: '/vdc/vdc-how-to/networks/networks-index.md',
collapsed: true,
items: [
{text: 'Обзор', link: '/vdc/vdc-how-to/networks/about.md'},
{text: 'Настройка доступа к ВМ из интернета', link: '/vdc/vdc-how-to/networks/allow-external-connections-to-vm.md'},
{text: 'Подключение ВМ в vApp к сети', link: '/vdc/vdc-how-to/networks/connect-vapp-to-network.md'},
{text: 'Подключение ВМ к интернету', link: '/vdc/vdc-how-to/networks/connect-vm-to-network.md'},
{text: 'Создание сети в организации и подключение к Edge Gateway', link: '/vdc/vdc-how-to/networks/create-network.md'},
{text: 'Подключение сети к Edge Gateway', link: '/vdc/vdc-how-to/networks/connect-to-edge-gateway.md'},
{text: 'Создание Pre-Shared Key', link: '/vdc/vdc-how-to/networks/create-psk.md'},
{ text: 'Настройка site-to-site подключения с помощью IPSec', link: '/vdc/vdc-how-to/networks/how-to-setup-ipsec-vpn.md',
collapsed: true,
items: [
{text: 'Настройка IPSec VPN', link: '/vdc/vdc-how-to/networks/ipsec/setup-ipsec-vpn.md'},
{text: 'Настройка ASAv', link: '/vdc/vdc-how-to/networks/ipsec/asav.md'},
{text: 'Настройка CSR 1000v', link: '/vdc/vdc-how-to/networks/ipsec/csr1000v.md'},
{text: 'Настройка Fortigate', link: '/vdc/vdc-how-to/networks/ipsec/fortigate.md'},
{text: 'Проверить сетевую связанность', link: '/vdc/vdc-how-to/networks/ipsec/check-vpn-status.md'},
],
},
],
},
{ text: 'Пользователи и роли', link: '/vdc/vdc-how-to/users/users-index.md',
collapsed: true,
items: [
{text: 'Ролевая модель', link: '/vdc/vdc-how-to/users/roles.md'},
{text: 'Создание пользователя', link: '/vdc/vdc-how-to/users/add-user.md'},
{text: 'Изменение пароля пользователя', link: '/vdc/vdc-how-to/users/change-users-password.md'},
{text: 'Настройка квот', link: '/vdc/vdc-how-to/users/quotas.md'},
],
},
{ text: 'Двухфакторная аутентификация', link: '/vdc/vdc-how-to/vdc-2fa.md', { text: 'Двухфакторная аутентификация', link: '/vdc/vdc-how-to/vdc-2fa.md',
collapsed: true, collapsed: true,
items: [ items: [
@@ -163,40 +242,108 @@ export default defineConfig({
], ],
}, },
], ],
},
// { text: 'Тарификация', link: '/vdc/vdc-tarif.md' }, // { text: 'Тарификация', link: '/vdc/vdc-tarif.md' },
],
},
],
'/compute/': [ '/compute/': [
{ {
text: 'Виртуальные машины', link: '/compute/index.md', text: 'Виртуальные машины', link: '/compute/index.md',
},
{ text: 'Обзор сервиса', link: '/compute/compute-overview-index.md' ,
collapsed: true, collapsed: true,
items: [ items: [
{text: 'Обзор сервиса', link: '/compute/compute-overview.md'}, { text: 'Техническое описание', link: '/compute/compute-overview.md' },
// {text: 'Быстрый старт', link: '/compute/compute-getting-started.md'}, { text: 'Квоты и лимиты', link: '/compute/compute-quatos.md' },
{text: 'Виртуальные машины', link: '/compute/compute-how-to/compute-index.md', ]
},
{text: 'Быстрый старт', link: '/compute/compute-getting-started.md'},
{ text: 'Виртуальные машины', link: '/compute/compute-how-to/compute-index.md',
collapsed: true, collapsed: true,
items: [ items: [
{ text: 'Создание ВМ', link: '/compute/compute-how-to/compute-servers-create.md' }, { text: 'Создание ВМ', link: '/compute/compute-how-to/compute-servers-create.md' },
{ text: 'Подключение к ВМ', link: '/compute/compute-how-to/compute-connect.md' }, { text: 'Создание ВМ джамп-хоста', link: '/compute/compute-how-to/compute-servers-jump-create.md' },
{ text: 'Подключение к ВМ', link: '/compute/compute-how-to/compute-connect-index.md',
collapsed: true,
items: [
{ text: 'Подключение по SSH по внешнему IP-адресу с помощью ключевой пары', link: '/compute/compute-how-to/compute-connect-public.md'},
{ text: 'Подключение по SSH по внутреннему IP-адресу с помощью ключевой пары', link: '/compute/compute-how-to/compute-connect-inside.md' },
{ text: 'Подключение по SSH по логину и паролю', link: '/compute/compute-how-to/compute-connect-pwd.md' },
]
},
{ text: 'Управление ВМ', link: '/compute/compute-how-to/compute-servers-manage.md' }, { text: 'Управление ВМ', link: '/compute/compute-how-to/compute-servers-manage.md' },
], ],
}, },
{ text: 'Диски', link: '/compute/compute-how-to/compute-disks.md' }, { text: 'Диски', link: '/compute/compute-how-to/compute-disks/compute-disk-index.md',
{ text: 'IP-адреса', link: '/compute/compute-how-to/compute-ip.md' }, collapsed: true,
{ text: 'Группы размещения', link: '/compute/compute-how-to/compute-affinity.md' }, items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-disks/compute-disk-about.md' },
{ text: 'Создание диска', link: '/compute/compute-how-to/compute-disks/compute-disk-create.md' },
{ text: 'Управление дисками', link: '/compute/compute-how-to/compute-disks/compute-disk-manage.md' },
{ text: 'Удаление диска', link: '/compute/compute-how-to/compute-disks/compute-disk-del.md' },
]
},
{ text: 'IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-ip/compute-ip-about.md' },
{ text: 'Просмотр IP-адресов', link: '/compute/compute-how-to/compute-ip/compute-ip-view.md' },
{ text: 'Создание IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-create.md' },
{ text: 'Управление IP-адресами', link: '/compute/compute-how-to/compute-ip/compute-ip-manager.md' },
{ text: 'Удаление IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-del.md' },
]
},
{ text: 'Группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-about.md'},
{ text: 'Создание группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-create.md'},
{ text: 'Управление группами размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-manager.md' },
{ text: 'Удаление группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-del.md' },
]
},
{ text: 'Сети', link: '/compute/compute-how-to/compute-network/compute-network-index.md',
collapsed: true,
items: [
{ text: 'Настройка site-to-site VPN с помощью VyOS', link: '/compute/compute-how-to/compute-network/compute-vpn-vyos.md' },
{ text: 'Подключение ВМ закрытого контура к интернету', link: '/compute/compute-how-to/compute-network/compute-network-inside.md' },
], ],
}, },
], ],
'/admin/': [ '/admin/': [
{ {
text: 'Аккаунт Beeline Cloud', link: '/admin/acc-index.md', text: 'Администрирование', link: '/admin/index.md',
collapsed: true, },
items: [
{text: 'Управление ключевыми парами', link: '/admin/ssh.md'}, {text: 'Управление ключевыми парами', link: '/admin/ssh.md'},
], ],
'/vdi/': [
{
text: 'Виртуальные рабочие столы', link: '/vdi/index.md',
},
{
text: 'Обзор сервиса', link: '/vdi/vdi-overview.md',
collapsed: true,
items: [
{ text: 'О сервисе', link: '/vdi/vdi-about.md' },
{ text: 'Техническое описание', link: '/vdi/vdi-tech.md' },
{ text: 'Квоты и лимиты', link: '/vdi/vdi-quatos.md' },
{ text: 'Тарификация', link: '/vdi/vdi-tarif.md' },
]
},
{
text: 'Заказ виртуальных рабочих столов', link: '/vdi/vdi-how-to/vdi-create.md'
},
{
text: 'Настройка сервиса', link: '/vdi/vdi-how-to/vdi-nastroika.md',
collapsed: true,
items: [
{ text: 'Настройка интеграции с Active Directory', link: '/vdi/vdi-how-to/vdi-connect-to-ad.md' },
{ text: 'Настройка сети', link: '/vdi/vdi-how-to/vdi-interconnect.md' },
]
},
// {
// text: 'Gold-образ', link: '/vdi/vdi-how-to/vdi-gold.md'
// },
{
text: 'Подключение к виртуальному рабочему месту', link: '/vdi/vdi-how-to/vdi-connect.md'
}, },
], ],
}, },
+1 -1
View File
@@ -106,7 +106,7 @@ export default function(parameters: IParameters) {
// window._paq elsewhere when needed, including closure scopes. // window._paq elsewhere when needed, including closure scopes.
const _paq = window._paq; const _paq = window._paq;
// If user requests consent checking, do this before we actually track. // If user requests consent checking, do this before we actually track.
// Note: this doesn't work at the moment because the user has no way to set // tip: this doesn't work at the moment because the user has no way to set
// whether consent was given. Oops. // whether consent was given. Oops.
if (requireConsent) { if (requireConsent) {
_paq.push(['requireConsent']); _paq.push(['requireConsent']);
@@ -5,7 +5,7 @@ import { EXTERNAL_URL_RE } from 'vitepress/dist/client/shared'
interface Props { interface Props {
tag?: string tag?: string
size?: 'medium' | 'big' size?: 'medium' | 'big' | 'small'
theme?: 'brand' | 'alt' | 'sponsor' theme?: 'brand' | 'alt' | 'sponsor'
text: string text: string
href?: string href?: string
@@ -51,6 +51,15 @@ const component = computed(() => {
transition: color 0.1s, border-color 0.1s, background-color 0.1s; transition: color 0.1s, border-color 0.1s, background-color 0.1s;
} }
.VPButton.small {
border-radius: 12px;
padding: 0 16px;
line-height: 20px;
height: 40px;
font-size: 15px;
font-weight: 500;
}
.VPButton.medium { .VPButton.medium {
border-radius: 12px; border-radius: 12px;
padding: 0 20px; padding: 0 20px;
@@ -115,7 +115,7 @@ const { hasSidebar } = useSidebar()
.VPContent.has-sidebar { .VPContent.has-sidebar {
margin: var(--vp-layout-top-height, 0px) 0 0; margin: var(--vp-layout-top-height, 0px) 0 0;
padding-left: var(--vp-sidebar-width); padding-left: 320px;
} }
} }
@@ -54,10 +54,12 @@ const pageName = computed(() =>
<div class="content-container"> <div class="content-container">
<slot name="doc-before" /> <slot name="doc-before" />
<main class="main"> <main class="main">
<Content class="vp-doc" :class="[ <div class="vp-doc" :class="[
pageName, pageName,
theme.externalLinkIcon && 'external-link-icon-enabled' theme.externalLinkIcon && 'external-link-icon-enabled'
]" /> ]">
<Content />
</div>
<SectionLinkList v-if="frontmatter.section_links" :links="frontmatter.section_links" /> <SectionLinkList v-if="frontmatter.section_links" :links="frontmatter.section_links" />
</main> </main>
<VPDocFooter> <VPDocFooter>
@@ -6,6 +6,8 @@ import { usePrevNext } from 'vitepress/dist/client/theme-default/composables/pre
import VPIconEdit from 'vitepress/dist/client/theme-default/components/icons/VPIconEdit.vue' import VPIconEdit from 'vitepress/dist/client/theme-default/components/icons/VPIconEdit.vue'
import VPLink from 'vitepress/dist/client/theme-default/components/VPLink.vue' import VPLink from 'vitepress/dist/client/theme-default/components/VPLink.vue'
import VPDocFooterLastUpdated from 'vitepress/dist/client/theme-default/components/VPDocFooterLastUpdated.vue' import VPDocFooterLastUpdated from 'vitepress/dist/client/theme-default/components/VPDocFooterLastUpdated.vue'
import CustomIcon from './CustomIcon.vue'
import { Icons } from '@beeline/design-tokens/js/iconfont/icons'
const { theme, page, frontmatter } = useData() const { theme, page, frontmatter } = useData()
@@ -43,14 +45,14 @@ const showFooter = computed(() => {
<nav v-if="control.prev?.link || control.next?.link" class="prev-next"> <nav v-if="control.prev?.link || control.next?.link" class="prev-next">
<div class="pager"> <div class="pager">
<VPLink v-if="control.prev?.link" class="pager-link prev" :href="control.prev.link"> <VPLink v-if="control.prev?.link" class="pager-link prev" :href="control.prev.link">
<span class="desc" v-html="theme.docFooter?.prev || 'Previous page'"></span> <CustomIcon class="desc-prev" :icon="Icons.ArrowRight" />
<span class="title" v-html="control.prev.text"></span> <span class="title" v-html="control.prev.text"></span>
</VPLink> </VPLink>
</div> </div>
<div class="pager"> <div class="pager">
<VPLink v-if="control.next?.link" class="pager-link next" :href="control.next.link"> <VPLink v-if="control.next?.link" class="pager-link next" :href="control.next.link">
<span class="desc" v-html="theme.docFooter?.next || 'Next page'"></span>
<span class="title" v-html="control.next.text"></span> <span class="title" v-html="control.next.text"></span>
<CustomIcon class="desc-next" :icon="Icons.ArrowRight" />
</VPLink> </VPLink>
</div> </div>
</nav> </nav>
@@ -59,7 +61,7 @@ const showFooter = computed(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.VPDocFooter { .VPDocFooter {
margin-top: 64px; margin-top: 40px;
} }
.edit-info { .edit-info {
@@ -98,8 +100,6 @@ const showFooter = computed(() => {
} }
.prev-next { .prev-next {
border-top: 1px solid var(--vp-c-divider);
padding-top: 24px;
display: grid; display: grid;
grid-row-gap: 8px; grid-row-gap: 8px;
} }
@@ -115,10 +115,19 @@ const showFooter = computed(() => {
display: block; display: block;
border: 1px solid var(--vp-c-divider); border: 1px solid var(--vp-c-divider);
border-radius: 8px; border-radius: 8px;
padding: 11px 16px 13px; padding: 10px 16px 10px 12px;
width: 100%; width: 100%;
height: 100%; height: 100%;
transition: border-color 0.25s; transition: border-color 0.25s;
display: flex;
gap: 8px;
color: #1a73e8;
&.next {
padding: 10px 12px 10px 16px;
justify-content: flex-end;
}
} }
.pager-link:hover { .pager-link:hover {
@@ -136,6 +145,14 @@ const showFooter = computed(() => {
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
color: var(--vp-c-text-2); color: var(--vp-c-text-2);
&-next {
rotate: -270deg;
}
&-prev {
rotate: -90deg;
}
} }
.title { .title {
@@ -22,8 +22,7 @@ type ItemFeature = {
const style = useCssModule() const style = useCssModule()
const classes = computed(() => ({ const classes = computed(() => ({
[style.CustomFeature]: true, [style.CustomFeature]: true,
[style.CustomFeatureDisabled]: disabled || !link, [style.CustomFeatureDisabled]: disabled || !link && !scrollTo,
[style.CustomFeatureWithScroll]: scrollTo && !disabled
})) }))
const handleClick = (event: Event) => { const handleClick = (event: Event) => {
@@ -51,7 +50,11 @@ const handleClick = (event: Event) => {
</Component> </Component>
<div :class="$style.CustomFeatureContainer"> <div :class="$style.CustomFeatureContainer">
<div v-for="(item, i) in items" :key="i"> <div v-for="(item, i) in items" :key="i">
<Component :is="!disabled && item.link ? VPLink : 'article'" v-bind="{ ...(!disabled && item.link && { href: item.link }) }"> <Component
:is="!disabled && item.link ? VPLink : 'article'"
v-bind="{ ...(!disabled && item.link && { href: item.link }) }"
:class="{ [style.CustomFeatureDisabled]: disabled || !item.link }"
>
<p :class="$style.CustomFeatureSubtitle">{{ item.title }}</p> <p :class="$style.CustomFeatureSubtitle">{{ item.title }}</p>
</Component> </Component>
</div> </div>
@@ -94,16 +97,12 @@ const handleClick = (event: Event) => {
color: themes.$color-text-active; color: themes.$color-text-active;
&:hover { &:hover {
color: themes.$color-text-link !important; color: themes.$color-text-link;
} }
#{$el}Disabled & { #{$el}Disabled & {
color: themes.$color-text-disabled; color: themes.$color-text-disabled;
} }
#{$el}WithScroll & {
color: themes.$color-text-active;
}
} }
&Subtitle { &Subtitle {
@@ -20,6 +20,7 @@ import {
nextTick, nextTick,
onBeforeUnmount, onBeforeUnmount,
onMounted, onMounted,
Raw,
ref, ref,
shallowRef, shallowRef,
watch, watch,
@@ -32,6 +33,8 @@ import { escapeRegExp } from 'vitepress/dist/client/shared'
import { useData } from 'vitepress/dist/client/theme-default/composables/data' import { useData } from 'vitepress/dist/client/theme-default/composables/data'
import { LRUCache } from 'vitepress/dist/client/theme-default/support/lru' import { LRUCache } from 'vitepress/dist/client/theme-default/support/lru'
import { createSearchTranslate } from 'vitepress/dist/client/theme-default/support/translation' import { createSearchTranslate } from 'vitepress/dist/client/theme-default/support/translation'
import CustomIcon from './CustomIcon.vue';
import { Icons } from '@beeline/design-tokens/js/iconfont/icons';
const emit = defineEmits<{ const emit = defineEmits<{
(e: 'close'): void (e: 'close'): void
@@ -132,6 +135,7 @@ watchEffect(() => {
const results: Ref<(SearchResult & Result)[]> = shallowRef([]) const results: Ref<(SearchResult & Result)[]> = shallowRef([])
const enableNoResults = ref(false) const enableNoResults = ref(false)
const loadig = ref(true)
watch(filterText, () => { watch(filterText, () => {
enableNoResults.value = false enableNoResults.value = false
@@ -160,11 +164,7 @@ debouncedWatch(
if (!index) return if (!index) return
// Search // Search
results.value = index retrySearch(index, filterTextValue)
.search(filterTextValue)
.slice(0, 16) as (SearchResult & Result)[]
enableNoResults.value = true
// Highlighting // Highlighting
const mods = showDetailedListValue const mods = showDetailedListValue
? await Promise.all(results.value.map((r) => fetchExcerpt(r.id))) ? await Promise.all(results.value.map((r) => fetchExcerpt(r.id)))
@@ -268,6 +268,16 @@ function focusSearchInput(select = true) {
select && searchInput.value?.select() select && searchInput.value?.select()
} }
const retrySearch = (index: Raw<MiniSearch<Result>>, filter: string) => {
if (!index) return
results.value = index
.search(filter)
.slice(0, 16) as (SearchResult & Result)[]
enableNoResults.value = true
}
onMounted(() => { onMounted(() => {
focusSearchInput() focusSearchInput()
}) })
@@ -481,33 +491,6 @@ function formMarkRegex(terms: Set<string>) {
class="search-input" class="search-input"
/> />
<div class="search-actions"> <div class="search-actions">
<button
v-if="!disableDetailedView"
class="toggle-layout-button"
type="button"
:class="{ 'detailed-list': showDetailedList }"
:title="$t('modal.displayDetails')"
@click="
selectedIndex > -1 && (showDetailedList = !showDetailedList)
"
>
<svg
width="18"
height="18"
viewBox="0 0 24 24"
aria-hidden="true"
>
<path
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M3 14h7v7H3zM3 3h7v7H3zm11 1h7m-7 5h7m-7 6h7m-7 5h7"
/>
</svg>
</button>
<button <button
class="clear-button" class="clear-button"
type="reset" type="reset"
@@ -515,26 +498,13 @@ function formMarkRegex(terms: Set<string>) {
:title="$t('modal.resetButtonTitle')" :title="$t('modal.resetButtonTitle')"
@click="resetSearch" @click="resetSearch"
> >
<svg <CustomIcon :icon="Icons.Close" size="large" style="padding: 12px 0;" />
width="18"
height="18"
viewBox="0 0 24 24"
aria-hidden="true"
>
<path
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M20 5H9l-7 7l7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2Zm-2 4l-6 6m0-6l6 6"
/>
</svg>
</button> </button>
</div> </div>
</form> </form>
<ul <ul
v-if="!!results.length"
ref="resultsEl" ref="resultsEl"
:id="results?.length ? 'localsearch-list' : undefined" :id="results?.length ? 'localsearch-list' : undefined"
:role="results?.length ? 'listbox' : undefined" :role="results?.length ? 'listbox' : undefined"
@@ -561,29 +531,21 @@ function formMarkRegex(terms: Set<string>) {
> >
<div> <div>
<div class="titles"> <div class="titles">
<span class="title-icon">#</span>
<span <span
v-for="(t, index) in p.titles" v-for="(t, index) in p.titles"
:key="index" :key="index"
class="title" class="title"
> >
<span class="text" v-html="t" /> <span class="text" v-html="t" />
<svg width="18" height="18" viewBox="0 0 24 24"> <span class="text"> > </span>
<path
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="m9 18l6-6l-6-6"
/>
</svg>
</span> </span>
<span class="title main"> <span class="title main">
<span class="text" v-html="p.title" /> <span class="text" v-html="p.title" />
</span> </span>
</div> </div>
<span v-html="p.title" />
<div v-if="showDetailedList" class="excerpt-wrapper"> <div v-if="showDetailedList" class="excerpt-wrapper">
<div v-if="p.text" class="excerpt" inert> <div v-if="p.text" class="excerpt" inert>
<div class="vp-doc" v-html="p.text" /> <div class="vp-doc" v-html="p.text" />
@@ -594,65 +556,15 @@ function formMarkRegex(terms: Set<string>) {
</div> </div>
</a> </a>
</li> </li>
<li </ul>
v-if="filterText && !results.length && enableNoResults" <ul
v-else-if="filterText && !results.length && enableNoResults"
class="no-results" class="no-results"
> >
{{ $t('modal.noResultsText') }} "<strong>{{ filterText }}</strong <p class="no-results-text">
>" {{ $t('modal.noResultsText') }}
</li> </p>
</ul> </ul>
<div class="search-keyboard-shortcuts">
<span>
<kbd :aria-label="$t('modal.footer.navigateUpKeyAriaLabel')">
<svg width="14" height="14" viewBox="0 0 24 24">
<path
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M12 19V5m-7 7l7-7l7 7"
/>
</svg>
</kbd>
<kbd :aria-label="$t('modal.footer.navigateDownKeyAriaLabel')">
<svg width="14" height="14" viewBox="0 0 24 24">
<path
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M12 5v14m7-7l-7 7l-7-7"
/>
</svg>
</kbd>
{{ $t('modal.footer.navigateText') }}
</span>
<span>
<kbd :aria-label="$t('modal.footer.selectKeyAriaLabel')">
<svg width="14" height="14" viewBox="0 0 24 24">
<g
fill="none"
stroke="currentcolor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
>
<path d="m9 10l-5 5l5 5" />
<path d="M20 4v7a4 4 0 0 1-4 4H4" />
</g>
</svg>
</kbd>
{{ $t('modal.footer.selectText') }}
</span>
<span>
<kbd :aria-label="$t('modal.footer.closeKeyAriaLabel')">esc</kbd>
{{ $t('modal.footer.closeText') }}
</span>
</div>
</div> </div>
</div> </div>
</Teleport> </Teleport>
@@ -675,16 +587,12 @@ function formMarkRegex(terms: Set<string>) {
.shell { .shell {
position: relative; position: relative;
padding: 12px; padding: 24px;
margin: 64px auto; margin: 64px auto;
display: flex;
flex-direction: column;
gap: 16px;
background: var(--vp-local-search-bg); background: var(--vp-local-search-bg);
width: min(100vw - 60px, 900px); width: min(100vw - 60px, 900px);
height: min-content; height: min-content;
max-height: min(100vh - 128px, 900px); border-radius: 12px;
border-radius: 6px;
} }
@media (max-width: 767px) { @media (max-width: 767px) {
@@ -698,7 +606,7 @@ function formMarkRegex(terms: Set<string>) {
} }
.search-bar { .search-bar {
border: 1px solid var(--vp-c-divider); border: 1px solid rgb(32, 33, 35);
border-radius: 12px; border-radius: 12px;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -712,10 +620,6 @@ function formMarkRegex(terms: Set<string>) {
} }
} }
.search-bar:focus-within {
border-color: var(--vp-c-brand-1);
}
.search-icon { .search-icon {
margin: 8px; margin: 8px;
} }
@@ -756,7 +660,7 @@ function formMarkRegex(terms: Set<string>) {
} }
.search-actions button { .search-actions button {
padding: 8px; padding: 0px;
} }
.search-actions button:not([disabled]):hover, .search-actions button:not([disabled]):hover,
@@ -802,27 +706,31 @@ function formMarkRegex(terms: Set<string>) {
} }
.results { .results {
display: flex;
flex-direction: column;
gap: 6px;
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
overscroll-behavior: contain; overscroll-behavior: contain;
border-radius: 12px;
border: 1px solid rgba(25, 28, 52, 0.18);
padding: 8px 0;
max-height: min(100vh - 214px, 900px);
box-shadow: 0px 6px 38px rgba(0, 0, 0, 0.16), 0px 0px 10px rgba(0, 0, 0, 0.08);
li:hover {
background-color: rgba(25, 28, 52, 0.08);
}
} }
.result { .result {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 8px; gap: 8px;
border-radius: 12px;
transition: none; transition: none;
line-height: 1rem;
border: solid 2px var(--vp-local-search-result-border);
outline: none; outline: none;
min-height: 66px;
} }
.result > div { .result > div {
margin: 12px; margin: 12px 16px;
width: 100%; width: 100%;
overflow: hidden; overflow: hidden;
} }
@@ -840,6 +748,13 @@ function formMarkRegex(terms: Set<string>) {
position: relative; position: relative;
z-index: 1001; z-index: 1001;
padding: 2px 0; padding: 2px 0;
font-size: 13px !important;
line-height: 16px !important;
}
:deep(mark) {
background-color: transparent;
color: none;
} }
.title { .title {
@@ -852,21 +767,10 @@ function formMarkRegex(terms: Set<string>) {
font-weight: 500; font-weight: 500;
} }
.title-icon {
opacity: 0.5;
font-weight: 500;
color: var(--vp-c-brand-1);
}
.title svg { .title svg {
opacity: 0.5; opacity: 0.5;
} }
.result.selected {
--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);
border-color: var(--vp-local-search-result-selected-border);
}
.excerpt-wrapper { .excerpt-wrapper {
position: relative; position: relative;
} }
@@ -892,10 +796,7 @@ function formMarkRegex(terms: Set<string>) {
.titles :deep(mark), .titles :deep(mark),
.excerpt :deep(mark) { .excerpt :deep(mark) {
background-color: var(--vp-local-search-highlight-bg); background-color: transparent;
color: var(--vp-local-search-highlight-text);
border-radius: 2px;
padding: 0 2px;
} }
.excerpt :deep(.vp-code-group) .tabs { .excerpt :deep(.vp-code-group) .tabs {
@@ -932,12 +833,44 @@ function formMarkRegex(terms: Set<string>) {
} }
.no-results { .no-results {
font-size: 0.9rem; padding: 28px 0;
text-align: center; display: flex;
padding: 12px; flex-direction: column;
gap: 24px;
align-items: center;
z-index: 100;
box-shadow: 0px 6px 38px rgba(0, 0, 0, 0.16), 0px 0px 10px rgba(0, 0, 0, 0.08);
border-radius: 12px;
border: 1px solid rgba(25, 28, 52, 0.18);
background-color: rgb(255, 255, 255);
}
.no-results-text {
font-weight: 400;
font-size: 17px;
line-height: 22px;
letter-spacing: 0.2px;
color: rgba(25, 28, 52, 0.48);
}
.no-results-button {
border-radius: 12px;
border: 1px solid rgba(25, 28, 52, 0.18);
padding: 13px 20px;
font-weight: 500;
font-size: 17px;
line-height: 22px;
letter-spacing: 0.2px;
color: rgba(9, 11, 22, 0.94);
} }
svg { svg {
flex: none; flex: none;
} }
.text {
font-size: 13px !important;
line-height: 16px !important;
color: rgba(25, 28, 52, 0.48);
}
</style> </style>
@@ -12,6 +12,7 @@ import VPNavBarSearch from 'vitepress/dist/client/theme-default/components/VPNav
import VPNavBarSocialLinks from 'vitepress/dist/client/theme-default/components/VPNavBarSocialLinks.vue' import VPNavBarSocialLinks from 'vitepress/dist/client/theme-default/components/VPNavBarSocialLinks.vue'
import CustomNavBarTitle from './CustomNavBarTitle.vue' import CustomNavBarTitle from './CustomNavBarTitle.vue'
import VPNavBarTranslations from 'vitepress/dist/client/theme-default/components/VPNavBarTranslations.vue' import VPNavBarTranslations from 'vitepress/dist/client/theme-default/components/VPNavBarTranslations.vue'
import CustomButton from './CustomButton.vue'
defineProps<{ defineProps<{
isScreenOpen: boolean isScreenOpen: boolean
@@ -27,6 +28,7 @@ const { hasLocalNav } = useLocalNav()
const { frontmatter } = useData() const { frontmatter } = useData()
const classes = ref<Record<string, boolean>>({}) const classes = ref<Record<string, boolean>>({})
const loginUrl = import.meta.env.VITE_LOGIN_URL
watchPostEffect(() => { watchPostEffect(() => {
classes.value = { classes.value = {
@@ -55,14 +57,9 @@ watchPostEffect(() => {
<div class="content"> <div class="content">
<div class="content-body"> <div class="content-body">
<slot name="nav-bar-content-before" /> <slot name="nav-bar-content-before" />
<VPNavBarSearch class="search" />
<VPNavBarMenu class="menu" /> <VPNavBarMenu class="menu" />
<VPNavBarTranslations class="translations" /> <VPNavBarSearch class="search" />
<VPNavBarAppearance class="appearance" /> <!-- <CustomButton text="Войти" size="small" :href="loginUrl" /> -->
<VPNavBarSocialLinks class="social-links" />
<VPNavBarExtra class="extra" />
<slot name="nav-bar-content-after" />
<VPNavBarHamburger class="hamburger" :active="isScreenOpen" @click="$emit('toggle-screen')" />
</div> </div>
</div> </div>
</div> </div>
@@ -109,7 +106,7 @@ watchPostEffect(() => {
@media (min-width: 768px) { @media (min-width: 768px) {
.wrapper { .wrapper {
padding: 0 32px; padding: 0 24px;
} }
} }
@@ -178,7 +175,7 @@ watchPostEffect(() => {
position: relative; position: relative;
z-index: 1; z-index: 1;
padding-right: 32px; padding-right: 32px;
padding-left: var(--vp-sidebar-width); padding-left: 0px;
} }
} }
@@ -191,7 +188,7 @@ watchPostEffect(() => {
.content-body { .content-body {
display: flex; display: flex;
justify-content: flex-end; justify-content: space-between;
align-items: center; align-items: center;
height: var(--vp-nav-height); height: var(--vp-nav-height);
transition: background-color 0.5s; transition: background-color 0.5s;
@@ -225,6 +222,10 @@ watchPostEffect(() => {
height: 24px; height: 24px;
background-color: var(--vp-c-divider); background-color: var(--vp-c-divider);
content: ""; content: "";
font-weight: 500;
font-size: 15px;
line-height: 20px;
letter-spacing: 0.2px;
} }
.menu + .appearance::before, .menu + .appearance::before,
@@ -255,4 +256,9 @@ watchPostEffect(() => {
background-color: rgba(255, 255, 255, 0.2); background-color: rgba(255, 255, 255, 0.2);
} }
} }
.search {
justify-content: flex-end;
margin-right: 24px;
}
</style> </style>
@@ -3,12 +3,16 @@ import type { DefaultTheme } from 'vitepress/theme'
import { useData } from 'vitepress/dist/client/theme-default/composables/data' import { useData } from 'vitepress/dist/client/theme-default/composables/data'
import { isActive } from 'vitepress/dist/client/shared' import { isActive } from 'vitepress/dist/client/shared'
import VPLink from 'vitepress/dist/client/theme-default/components/VPLink.vue' import VPLink from 'vitepress/dist/client/theme-default/components/VPLink.vue'
import { computed, ref } from 'vue'
defineProps<{ defineProps<{
item: DefaultTheme.NavItemWithLink item: DefaultTheme.NavItemWithLink
}>() }>()
const { page } = useData() const { page } = useData()
const textRef = ref<HTMLElement | null>(null)
const wrapperWidth = computed(() => textRef.value?.offsetWidth)
</script> </script>
<template> <template>
@@ -20,22 +24,32 @@ const { page } = useData()
page.relativePath, page.relativePath,
item.activeMatch || item.link, item.activeMatch || item.link,
!!item.activeMatch !!item.activeMatch
) ),
disabled: !isActive(
page.relativePath,
item.activeMatch || item.link,
!!item.activeMatch
) && !item.link ? 'disabled' : '',
}" }"
:href="item.link" :href="item.link"
:target="item.target" :target="item.target"
:rel="item.rel" :rel="item.rel"
tabindex="0" tabindex="0"
> >
<span v-html="item.text"></span> <span
ref="textRef"
v-html="item.text"
/>
</VPLink> </VPLink>
</template> </template>
<style scoped> <style lang="scss" scoped>
@use '@beeline/design-tokens/scss/tokens/globals/colors';
.VPNavBarMenuLink { .VPNavBarMenuLink {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 0 12px; padding: 0 24px;
line-height: var(--vp-nav-height); line-height: var(--vp-nav-height);
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
@@ -45,9 +59,32 @@ const { page } = useData()
.VPNavBarMenuLink.active { .VPNavBarMenuLink.active {
color: var(--color-text-active); color: var(--color-text-active);
&::after {
position: absolute;
bottom: 0;
content: '';
height: 4px;
display: none;
width: calc(v-bind(wrapperWidth) * 1px);
border-top-left-radius: 12px;
border-top-right-radius: 12px;
background-color: colors.$color-background-brand;
}
&.active {
&::after {
display: block;
}
}
} }
.VPNavBarMenuLink:hover { .disabled {
opacity: 0.45;
pointer-events: none;
}
.VPNavBarMenuLink:hover:not(.disabled) {
color: var(--color-text-active); color: var(--color-text-active);
} }
</style> </style>
@@ -14,8 +14,6 @@ const $t = createSearchTranslate(defaultTranslations)
</script> </script>
<template> <template>
<button type="button" class="DocSearch DocSearch-Button CustomDocSearch-Button" :aria-label="$t('button.buttonAriaLabel')">
<span class="DocSearch-Button-Container">
<svg <svg
class="DocSearch-Search-Icon" class="DocSearch-Search-Icon"
width="20" width="20"
@@ -32,13 +30,6 @@ const $t = createSearchTranslate(defaultTranslations)
stroke-linejoin="round" stroke-linejoin="round"
/> />
</svg> </svg>
<span class="DocSearch-Button-Placeholder">{{ $t('button.buttonText') }}</span>
</span>
<span class="DocSearch-Button-Keys">
<kbd class="DocSearch-Button-Key"></kbd>
<kbd class="DocSearch-Button-Key">K</kbd>
</span>
</button>
</template> </template>
<style> <style>
@@ -65,156 +56,13 @@ const $t = createSearchTranslate(defaultTranslations)
--docsearch-hit-shadow: none; --docsearch-hit-shadow: none;
} }
.DocSearch-Button { .DocSearch-Search-Icon {
display: flex;
justify-content: center;
align-items: center;
border-radius: 12px;
margin: 0;
padding: 0;
width: 48px;
height: 55px;
background: transparent;
transition: border-color 0.25s;
}
.DocSearch-Button:hover {
background: transparent;
}
.DocSearch-Button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
.DocSearch-Button:focus:not(:focus-visible) {
outline: none !important;
}
@media (min-width: 768px) {
.DocSearch-Button {
justify-content: flex-start;
border: 1px solid transparent;
border-radius: 12px;
padding: 0 10px 0 12px;
width: 100%;
height: 40px;
background-color: var(--vp-c-bg-alt);
}
.DocSearch-Button:hover {
border-color: var(--vp-c-brand-1);
background: var(--vp-c-bg-alt);
}
}
.DocSearch-Button .DocSearch-Button-Container {
display: flex;
align-items: center;
}
.DocSearch-Button .DocSearch-Search-Icon {
position: relative; position: relative;
width: 16px; width: 18px;
height: 16px; height: 18px;
color: var(--vp-c-text-1); color: var(--vp-c-text-1);
fill: currentColor; fill: currentColor;
transition: color 0.5s; transition: color 0.5s;
} margin: 8px;
.DocSearch-Button:hover .DocSearch-Search-Icon {
color: var(--vp-c-text-1);
}
@media (min-width: 768px) {
.DocSearch-Button .DocSearch-Search-Icon {
top: 1px;
margin-right: 8px;
width: 14px;
height: 14px;
color: var(--vp-c-text-2);
}
}
.DocSearch-Button .DocSearch-Button-Placeholder {
display: none;
margin-top: 2px;
padding: 0 16px 0 0;
font-size: 13px;
font-weight: 500;
color: var(--vp-c-text-2);
transition: color 0.5s;
}
.DocSearch-Button:hover .DocSearch-Button-Placeholder {
color: var(--vp-c-text-1);
}
@media (min-width: 768px) {
.DocSearch-Button .DocSearch-Button-Placeholder {
display: inline-block;
}
}
.DocSearch-Button .DocSearch-Button-Keys {
/*rtl:ignore*/
direction: ltr;
display: none;
min-width: auto;
}
@media (min-width: 768px) {
.DocSearch-Button .DocSearch-Button-Keys {
display: flex;
align-items: center;
}
}
.DocSearch-Button .DocSearch-Button-Key {
display: block;
margin: 2px 0 0 0;
border: 1px solid var(--vp-c-divider);
/*rtl:begin:ignore*/
border-right: none;
border-radius: 4px 0 0 4px;
padding-left: 6px;
/*rtl:end:ignore*/
min-width: 0;
width: auto;
height: 22px;
line-height: 22px;
font-family: var(--vp-font-family-base);
font-size: 12px;
font-weight: 500;
transition: color 0.5s, border-color 0.5s;
}
.DocSearch-Button .DocSearch-Button-Key + .DocSearch-Button-Key {
/*rtl:begin:ignore*/
border-right: 1px solid var(--vp-c-divider);
border-left: none;
border-radius: 0 4px 4px 0;
padding-left: 2px;
padding-right: 6px;
/*rtl:end:ignore*/
}
.DocSearch-Button .DocSearch-Button-Key:first-child {
font-size: 0 !important;
}
.DocSearch-Button .DocSearch-Button-Key:first-child:after {
content: 'Ctrl';
font-size: 12px;
letter-spacing: normal;
color: var(--docsearch-muted-color);
}
.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after {
content: '\2318';
}
.DocSearch-Button .DocSearch-Button-Key:first-child > * {
display: none;
} }
</style> </style>
@@ -38,10 +38,10 @@ const target = computed(() =>
:target="target" :target="target"
> >
<slot name="nav-bar-title-before" /> <slot name="nav-bar-title-before" />
<VPImage v-if="theme.logo" class="logo" :image="theme.logo" />
<template v-if="theme.siteTitle">{{ theme.siteTitle }}</template> <template v-if="theme.siteTitle">{{ theme.siteTitle }}</template>
<template v-else-if="theme.siteTitle === undefined">{{ site.title }}</template> <template v-else-if="theme.siteTitle === undefined">{{ site.title }}</template>
<slot name="nav-bar-title-after" /> <slot name="nav-bar-title-after" />
<VPImage v-if="theme.logo" class="logo" :image="theme.logo" />
</a> </a>
</div> </div>
</template> </template>
@@ -53,10 +53,13 @@ const target = computed(() =>
border-bottom: 1px solid transparent; border-bottom: 1px solid transparent;
width: 100%; width: 100%;
height: var(--vp-nav-height); height: var(--vp-nav-height);
font-size: 16px; font-size: 25px;
font-weight: 600; font-weight: 500;
color: var(--vp-c-text-1); line-height: 28px;
color: var(--color-text-inactive);
transition: opacity 0.25s; transition: opacity 0.25s;
gap: 20px;
margin-right: 24px;
} }
@media (min-width: 960px) { @media (min-width: 960px) {
@@ -72,7 +75,6 @@ const target = computed(() =>
} }
:deep(.logo) { :deep(.logo) {
margin-right: 8px;
height: var(--vp-nav-logo-height); height: var(--vp-nav-logo-height);
} }
</style> </style>
@@ -60,9 +60,8 @@ watch(
bottom: 0; bottom: 0;
left: 0; left: 0;
z-index: var(--vp-z-index-sidebar); z-index: var(--vp-z-index-sidebar);
padding: 32px 32px 96px 32px; padding: 0px 0px 96px 0px;
width: 256px; width: 320px;
max-width: 320px;
background-color: var(--vp-sidebar-bg-color); background-color: var(--vp-sidebar-bg-color);
opacity: 0; opacity: 0;
box-shadow: var(--vp-c-shadow-3); box-shadow: var(--vp-c-shadow-3);
@@ -88,8 +87,6 @@ watch(
@media (min-width: 960px) { @media (min-width: 960px) {
.VPSidebar { .VPSidebar {
padding-top: var(--vp-nav-height); padding-top: var(--vp-nav-height);
// width: var(--vp-sidebar-width);
// max-width: 100%;
background-color: var(--vp-sidebar-bg-color); background-color: var(--vp-sidebar-bg-color);
opacity: 1; opacity: 1;
visibility: visible; visibility: visible;
@@ -98,13 +95,6 @@ watch(
} }
} }
@media (min-width: 1440px) {
.VPSidebar {
// padding-left: max(32px, calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));
// width: calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px);
}
}
@media (min-width: 960px) { @media (min-width: 960px) {
.curtain { .curtain {
position: sticky; position: sticky;
@@ -121,17 +111,14 @@ watch(
.nav { .nav {
outline: 0; outline: 0;
} padding-top: 24px;
width: 100%;
.group + .group {
border-top: 1px solid var(--vp-c-divider);
padding-top: 10px;
} }
@media (min-width: 960px) { @media (min-width: 960px) {
.group { .group {
padding-top: 10px; width: 100%;
width: calc(var(--vp-sidebar-width) - 64px);
} }
} }
</style> </style>
@@ -1,11 +1,329 @@
@use "@beeline/design-tokens/scss/tokens/globals/colors";
@use "@beeline/design-tokens/scss/tokens/themes";
@use '@beeline/design-tokens/scss/tokens/themes/theme-variables' as *;
.custom-block { .custom-block {
padding: 24px; padding: 24px;
&-title { &-title {
font-size: 18px; font-size: 17px !important;
line-height: 22px; line-height: 22px !important;
font-weight: 500; font-weight: 700 !important;
letter-spacing: .2px; letter-spacing: .2px !important;
margin-bottom: 12px; margin-bottom: 12px;
} }
&.tip a {
color: #1a73e8;
&:hover {
color: #1a73e8;
}
}
} }
.custom-block {
border: 1px solid transparent;
border-radius: 8px;
padding: 24px 24px 24px 64px;
line-height: 24px;
font-size: var(--vp-custom-block-font-size);
color: var(--vp-c-text-2);
&.custom-block.details {
padding: 0px;
}
}
.custom-block.info {
border-color: var(--vp-custom-block-info-border);
color: var(--vp-custom-block-info-text);
background-color: var(--vp-custom-block-info-bg);
}
.custom-block.info a,
.custom-block.info code {
color: var(--vp-c-brand-1);
}
.custom-block.info a:hover,
.custom-block.info a:hover > code {
color: var(--vp-c-brand-2);
}
.custom-block.info code {
background-color: var(--vp-custom-block-info-code-bg);
}
.custom-block.note {
border-color: var(--vp-custom-block-note-border);
color: var(--vp-custom-block-note-text);
background-color: var(--vp-custom-block-note-bg);
}
.custom-block.note a,
.custom-block.note code {
color: var(--vp-c-brand-1);
}
.custom-block.note a:hover,
.custom-block.note a:hover > code {
color: var(--vp-c-brand-2);
}
.custom-block.note code {
background-color: var(--vp-custom-block-note-code-bg);
}
.custom-block.tip {
border-color: var(--vp-custom-block-tip-border);
color: var(--vp-custom-block-tip-text);
background-color: var(--vp-custom-block-tip-bg);
&::before {
height: 24px;
width: 24px;
background-image: var(--vp-icon-clock);
position: absolute;
left: 24px;
content: '';
}
}
.custom-block.tip a,
.custom-block.tip code {
color: var(--vp-c-tip-1);
}
.custom-block.tip a:hover,
.custom-block.tip a:hover > code {
color: var(--vp-c-tip-2);
}
.custom-block.tip code {
background-color: var(--vp-custom-block-tip-code-bg);
}
.custom-block.important {
border-color: var(--vp-custom-block-important-border);
color: var(--vp-custom-block-important-text);
background-color: var(--vp-custom-block-important-bg);
}
.custom-block.important a,
.custom-block.important code {
color: var(--vp-c-important-1);
}
.custom-block.important a:hover,
.custom-block.important a:hover > code {
color: var(--vp-c-important-2);
}
.custom-block.important code {
background-color: var(--vp-custom-block-important-code-bg);
}
.custom-block.warning {
border-color: var(--vp-custom-block-warning-border);
color: var(--vp-custom-block-warning-text);
background-color: var(--vp-custom-block-warning-bg);
&::before {
height: 24px;
width: 24px;
background-image: var(--vp-icon-info-circled);
position: absolute;
left: 24px;
content: '';
}
}
.custom-block.warning a,
.custom-block.warning code {
color: $color-text-link;
}
.custom-block.warning a:hover,
.custom-block.warning a:hover > code {
color: $color-text-link;
}
.custom-block.warning code {
background-color: var(--vp-custom-block-warning-code-bg);
}
.custom-block.danger {
border-color: var(--vp-custom-block-danger-border);
color: var(--vp-custom-block-danger-text);
background-color: var(--vp-custom-block-danger-bg);
&::before {
height: 24px;
width: 24px;
background-image: var(--vp-icon-warning-triangle);
content: '';
position: absolute;
left: 24px;
}
}
.custom-block.danger a,
.custom-block.danger code {
color: var(--vp-c-danger-1);
}
.custom-block.danger a:hover,
.custom-block.danger a:hover > code {
color: var(--vp-c-danger-2);
}
.custom-block.danger code {
background-color: var(--vp-custom-block-danger-code-bg);
}
.custom-block.caution {
border-color: var(--vp-custom-block-caution-border);
color: var(--vp-custom-block-caution-text);
background-color: var(--vp-custom-block-caution-bg);
}
.custom-block.caution a,
.custom-block.caution code {
color: var(--vp-c-caution-1);
}
.custom-block.caution a:hover,
.custom-block.caution a:hover > code {
color: var(--vp-c-caution-2);
}
.custom-block.caution code {
background-color: var(--vp-custom-block-caution-code-bg);
}
.custom-block.details {
border-color: var(--vp-custom-block-details-border);
color: var(--vp-custom-block-details-text);
background-color: transparent;
border-radius: 12px;
border: 1px solid $color-border;
pre {
border: none !important;
}
div {
margin: 0 !important;
}
&:open {
&.custom-block.details summary {
background-color: $color-background-base-hover;
border-top-left-radius: 12px;
border-top-right-radius: 12px;
&::before {
background-image: var(--vp-icon-nav-arrow-up);
}
}
}
}
.custom-block.details a {
color: var(--vp-c-brand-1);
}
.custom-block.details a:hover,
.custom-block.details a:hover > code {
color: var(--vp-c-brand-2);
}
.custom-block.details code {
background-color: var(--vp-custom-block-details-code-bg);
}
.custom-block-title {
font-weight: 600;
}
.custom-block p + p {
margin: 8px 0;
}
.custom-block.details summary {
margin: 0;
padding: 24px;
font-weight: 500;
cursor: pointer;
user-select: none;
font-size: 19px;
line-height: 24px;
letter-spacing: 0.2px;
display: block;
&::before {
position: absolute;
right: 24px;
content: '';
background-image: var(--vp-icon-nav-arrow-down);
height: 24px;
width: 24px;
}
}
.custom-block.details {
h1, h2, h3, h4, h5, ul, p {
margin: 0 24px;
&:last-child {
margin-bottom: 24px !important;
}
&:first-child {
margin-top: 24px !important;
}
}
ol {
padding: 0 24px;
&:last-child {
margin-bottom: 24px !important;
}
&:first-child {
margin-top: 24px !important;
}
}
}
.custom-block.details summary + p {
padding: 24px;
margin: 0;
}
.custom-block a {
color: inherit;
font-weight: 600;
text-decoration: underline;
text-underline-offset: 2px;
transition: opacity 0.25s;
}
.custom-block a:hover {
opacity: 0.75;
}
.custom-block code {
font-size: var(--vp-custom-block-code-font-size);
}
.custom-block.custom-block th,
.custom-block.custom-block blockquote > p {
font-size: var(--vp-custom-block-font-size);
color: inherit;
}
@@ -1,10 +1,53 @@
@use '@beeline/design-tokens/scss/tokens/components/navigationDrawer';
@use "@beeline/design-tokens/scss/tokens/globals/colors";
.VPDocAside { .VPDocAside {
.outline-link { .outline-link {
font-size: 16px; font-weight: 400;
font-size: 15px;
line-height: 18px;
letter-spacing: 0.2px;
padding-top: 8px;
padding-bottom: 8px;
white-space: unset;
color: colors.$color-text-grey-inactive;
}
.outline-link.active {
font-weight: 500 !important;
color: colors.$color-text-black-active;
} }
.outline-title { .outline-title {
font-size: 17px; font-size: 15px;
font-weight: 500; font-weight: 500;
line-height: 18px;
padding-bottom: 16px;
color: colors.$color-text-black-active;
}
.content {
padding-left: 0px !important;
border-left: 0px !important;
nav {
border-left: 1px solid var(--vp-c-divider) !important;
.outline-link {
padding-left: 20px !important;
&.active {
padding-left: 16px !important;
position: relative !important;
left: -1px !important;
border-left: navigationDrawer.$navigation-drawer-item-indicator-width solid
navigationDrawer.$navigation-drawer-item-activated-indicator-color !important;
border-top-right-radius: navigationDrawer.$navigation-drawer-item-indicator-border-radius-topright !important;
border-bottom-right-radius: navigationDrawer.$navigation-drawer-item-indicator-border-radius-bottomright !important;
}
}
}
} }
} }
+443 -15
View File
@@ -1,3 +1,7 @@
@use "@beeline/design-tokens/scss/tokens/globals/colors";
@use "@beeline/design-tokens/scss/tokens/themes";
@use '@beeline/design-tokens/scss/tokens/themes/theme-variables' as *;
@mixin font_style($fontSize, $fontWeight, $lineHeight, $letterSpacing) { @mixin font_style($fontSize, $fontWeight, $lineHeight, $letterSpacing) {
font-size: $fontSize; font-size: $fontSize;
font-weight: $fontWeight; font-weight: $fontWeight;
@@ -20,13 +24,13 @@
// Titles // Titles
h1 { h1 {
@include font_style(44px, 500, 46px, 0.3px); @include font_style(44px, 500, 56px, 0.3px);
margin-bottom: 24px; margin-bottom: 24px;
} }
h2 { h2 {
@include font_style(34px, 400, 36px, 0.3px); @include font_style(26px, 500, 32px, 0.2px);
margin-bottom: 12px; margin: 40px 0 24px;
} }
h3 { h3 {
@@ -49,8 +53,8 @@
list-style-type: none; list-style-type: none;
counter-reset: list; counter-reset: list;
margin: 0 0 0 50px; margin: 0 0 0 50px;
padding: 0 0 5px 0; padding: 0;
font-size: 16px; font-size: 15px;
& > * + * { & > * + * {
margin-top: 50px; margin-top: 50px;
@@ -61,18 +65,19 @@
ol li { ol li {
position: relative; position: relative;
padding: 5px 0 0 0; padding: 8px 0 0 0;
line-height: 1.4; line-height: 18px;
} }
li + li { li + li {
margin-top: 50px; margin-top: 30px;
} }
ul li { ul li {
padding-bottom: 0; padding-bottom: 0;
padding-top: 0; padding-top: 0;
margin-top: 8px; margin-top: 8px;
@include font_style(15px, 400, 18px, 0.2px);
} }
ol li:nth-last-of-type(n+2)::after { ol li:nth-last-of-type(n+2)::after {
@@ -82,7 +87,7 @@
line-height: 100%; line-height: 100%;
left: -30px; left: -30px;
top: 43px; top: 43px;
bottom: -30px; bottom: -25px;
} }
ol li::before { ol li::before {
@@ -94,11 +99,9 @@
left: -48px; left: -48px;
width: 35px; width: 35px;
height: 35px; height: 35px;
background-color: #7e00ed; background-color: colors.$color-background-brand;
color: #fff; color: themes.$color-text-active;
text-align: center; @include font_style(15px, 400, 18px, 0.2px);
line-height: 25px;
font-size: 16px;
border-radius: 50%; border-radius: 50%;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@@ -115,17 +118,27 @@
padding: 0; padding: 0;
} }
ol li:last-child {
margin-bottom: 40px;
}
ul li:last-child {
margin-bottom: 20px;
}
ol li p { ol li p {
margin-top: 0; margin-top: 0;
} }
p { p {
line-height: 22px; @include font_style(15px, 400, 18px, 0.2px);
margin: 24px 0;
} }
// Links // Links
a { a {
color: #1a73e8; color: #1a73e8;
text-decoration: none;
&:hover, &:focus-visible, &:focus, &:active { &:hover, &:focus-visible, &:focus, &:active {
color: #1a73e8; color: #1a73e8;
@@ -136,3 +149,418 @@
} }
} }
} }
// Tabs
.plugin-tabs {
border-radius: 12px;
border: 1px solid $color-border;
background-color: revert-layer !important;
&--tab {
border-bottom: 1px solid transparent;
}
&--content {
padding: 24px !important;
.language- {
border: none;
padding: 0px !important;
overflow-y: hidden !important;
overflow-x: hidden !important;
}
}
}
// Code
.vp-doc :not(pre, h1, h2, h3, h4, h5, h6) > code {
font-size: var(--vp-code-font-size);
color: var(--vp-code-color);
}
.vp-doc :not(pre) > code {
border-radius: 4px;
padding: 3px 6px;
background-color: var(--vp-code-bg);
transition:
color 0.25s,
background-color 0.5s;
}
.vp-doc a > code {
color: var(--vp-code-link-color);
}
.vp-doc a:hover > code {
color: var(--vp-code-link-hover-color);
}
.vp-doc h1 > code,
.vp-doc h2 > code,
.vp-doc h3 > code {
font-size: 0.9em;
}
.vp-doc div[class*='language-'],
.vp-block {
position: relative;
margin: 16px -24px;
background-color: transparent;
overflow-x: auto;
transition: background-color 0.5s;
}
@media (min-width: 640px) {
.vp-doc div[class*='language-'],
.vp-block {
border-radius: 12px;
margin: 16px 0;
}
}
@media (max-width: 639px) {
.vp-doc li div[class*='language-'] {
border-radius: 8px 0 0 8px;
}
}
.vp-doc div[class*='language-'] + div[class*='language-'],
.vp-doc div[class$='-api'] + div[class*='language-'],
.vp-doc div[class*='language-'] + div[class$='-api'] > div[class*='language-'] {
margin-top: -8px;
}
.vp-doc [class*='language-'] pre,
.vp-doc [class*='language-'] code {
/*rtl:ignore*/
direction: ltr;
/*rtl:ignore*/
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
.vp-doc [class*='language-'] pre {
position: relative;
z-index: 1;
margin: 0;
padding: 24px;
overflow-x: auto;
border-radius: 12px;
border: 1px solid $color-border;
}
.vp-doc [class*='language-'] code {
display: block;
padding: 0px;
width: fit-content;
min-width: 100%;
line-height: var(--vp-code-line-height);
font-size: var(--vp-code-font-size);
color: var(--vp-code-color);
transition: color 0.5s;
}
.vp-doc [class*='language-'] code .highlighted {
background-color: var(--vp-code-line-highlight-color);
transition: background-color 0.5s;
margin: 0 -24px;
padding: 0 24px;
width: calc(100% + 2 * 24px);
display: inline-block;
}
.vp-doc [class*='language-'] code .highlighted.error {
background-color: var(--vp-code-line-error-color);
}
.vp-doc [class*='language-'] code .highlighted.warning {
background-color: var(--vp-code-line-warning-color);
}
.vp-doc [class*='language-'] code .diff {
transition: background-color 0.5s;
margin: 0 -24px;
padding: 0 24px;
width: calc(100% + 2 * 24px);
display: inline-block;
}
.vp-doc [class*='language-'] code .diff::before {
position: absolute;
left: 10px;
}
.vp-doc [class*='language-'] .has-focused-lines .line:not(.has-focus) {
filter: blur(0.095rem);
opacity: 0.4;
transition:
filter 0.35s,
opacity 0.35s;
}
.vp-doc [class*='language-'] .has-focused-lines .line:not(.has-focus) {
opacity: 0.7;
transition:
filter 0.35s,
opacity 0.35s;
}
.vp-doc [class*='language-']:hover .has-focused-lines .line:not(.has-focus) {
filter: blur(0);
opacity: 1;
}
.vp-doc [class*='language-'] code .diff.remove {
background-color: var(--vp-code-line-diff-remove-color);
opacity: 0.7;
}
.vp-doc [class*='language-'] code .diff.remove::before {
content: '-';
color: var(--vp-code-line-diff-remove-symbol-color);
}
.vp-doc [class*='language-'] code .diff.add {
background-color: var(--vp-code-line-diff-add-color);
}
.vp-doc [class*='language-'] code .diff.add::before {
content: '+';
color: var(--vp-code-line-diff-add-symbol-color);
}
.vp-doc div[class*='language-'].line-numbers-mode {
/*rtl:ignore*/
padding-left: 32px;
}
.vp-doc .line-numbers-wrapper {
position: absolute;
top: 0;
bottom: 0;
/*rtl:ignore*/
left: 0;
z-index: 3;
/*rtl:ignore*/
border-right: 1px solid var(--vp-code-block-divider-color);
padding-top: 20px;
width: 32px;
text-align: center;
font-family: var(--vp-font-family-mono);
line-height: var(--vp-code-line-height);
font-size: var(--vp-code-font-size);
color: var(--vp-code-line-number-color);
transition:
border-color 0.5s,
color 0.5s;
}
.vp-doc [class*='language-'] > button.copy {
/*rtl:ignore*/
direction: ltr;
position: absolute;
top: 12px;
/*rtl:ignore*/
right: 12px;
z-index: 3;
border: none;
width: 40px;
height: 40px;
background-color: transparent;
opacity: 1;
cursor: pointer;
background-image: var(--vp-icon-copy);
background-position: 50%;
background-size: 20px;
background-repeat: no-repeat;
transition:
border-color 0.25s,
background-color 0.25s,
opacity 0.25s;
}
.vp-doc [class*='language-']:hover > button.copy,
.vp-doc [class*='language-'] > button.copy:focus {
opacity: 1;
}
.vp-doc [class*='language-'] > button.copy:hover,
.vp-doc [class*='language-'] > button.copy.copied {
border: none;
background-color: transparent;
}
.vp-doc [class*='language-'] > button.copy.copied,
.vp-doc [class*='language-'] > button.copy:hover.copied {
/*rtl:ignore*/
background-color: transparent;
background-image: none;
}
.vp-doc [class*='language-'] > button.copy.copied::before,
.vp-doc [class*='language-'] > button.copy:hover.copied::before {
position: relative;
top: -1px;
/*rtl:ignore*/
transform: translateX(calc(-100% - 1px));
display: flex;
justify-content: center;
align-items: center;
border: none;
/*rtl:ignore*/
border-right: 0;
padding: 0 10px;
width: fit-content;
height: 40px;
text-align: center;
font-size: 12px;
font-weight: 500;
color: var(--vp-code-copy-code-active-text);
white-space: nowrap;
content: '';
}
.vp-doc [class*='language-'] > span.lang {
position: absolute;
top: 2px;
/*rtl:ignore*/
right: 8px;
z-index: 2;
font-size: 12px;
font-weight: 500;
color: var(--vp-code-lang-color);
transition:
color 0.4s,
opacity 0.4s;
}
.vp-doc [class*='language-']:hover > button.copy + span.lang,
.vp-doc [class*='language-'] > button.copy:focus + span.lang {
opacity: 0;
}
// Banner
.vp-doc .custom-block {
margin: 40px 0;
}
.vp-doc .custom-block p {
margin: 8px 0;
line-height: 18px;
}
.vp-doc .custom-block p:first-child {
margin: 0;
}
.vp-doc .custom-block div[class*='language-'] {
margin: 8px 0;
border-radius: 12px;
}
.vp-doc .custom-block div[class*='language-'] code {
font-weight: 400;
background-color: transparent;
}
.vp-doc .custom-block .vp-code-group .tabs {
margin: 0;
border-radius: 8px 8px 0 0;
}
// Table
.vp-doc table {
display: block;
border-collapse: collapse;
overflow-x: auto;
border-radius: 12px;
border: 1px solid $color-border;
// width: 100%;
margin: 24px 0;
}
.vp-doc tr {
border-top: hidden;
transition: background-color 0.5s;
}
.vp-doc tr:nth-child(2n) {
background-color: var(--vp-c-bg-soft);
}
.vp-doc th,
.vp-doc td {
padding: 18px 16px;
padding: 18px 16px;
width: 100vh;
background-color: var(--vp-c-bg);
border: none;
}
.vp-doc tbody tr {
border-top: 1px solid $color-border;
&:last-child{
border-bottom: hidden;
}
}
.vp-doc th {
@include font_style(15px, 500, 20px, 0.2px);
color: $color-text-active;
background-color: var(--vp-c-bg);
border-top: 1px solid $color-border;
}
.vp-doc td {
@include font_style(15px, 400, 18px, 0.2px);
padding: 18px 16px;
background-color: var(--vp-c-bg);
border-right: hidden;
border-left: hidden;
color: $color-text-active;
}
// Block
.vp-doc .custom-block {
margin: 16px 0;
}
.vp-doc .custom-block p {
margin: 8px 0;
line-height: 24px;
}
.vp-doc .custom-block p:first-child {
margin: 0;
}
.vp-doc .custom-block div[class*='language-'] {
margin: 40px 0;
border-radius: 12px;
&.vp-doc .custom-block {
margin: 0;
border: none;
}
}
.vp-doc .custom-block div[class*='language-'] code {
font-weight: 400;
background-color: transparent;
}
.vp-doc .custom-block .vp-code-group .tabs {
margin: 0;
border-radius: 8px 8px 0 0;
}
@@ -1,7 +1,116 @@
@use '@beeline/design-tokens/scss/tokens/components/navigationDrawer';
@use '@beeline/design-tokens/scss/tokens/themes/theme-variables' as theme;
@use 'src/assets/scss/app/helpers/media';
.VPSidebar { .VPSidebar {
&Item { --vp-sidebar-bg-color: var(--vp-c-bg);
}
.VPSidebar .VPSidebarItem .item {
margin: 4px 0;
}
.VPSidebar .VPSidebarItem .link {
display: flex;
align-items: center;
}
.indicator {
border-top-right-radius: navigationDrawer.$navigation-drawer-item-indicator-border-radius-topright !important;
border-bottom-right-radius: navigationDrawer.$navigation-drawer-item-indicator-border-radius-bottomright !important;
position: absolute !important;
left: 0 !important;
}
.VPSidebarItem.is-active > .item .link > .text {
color: theme.$color-text-active !important;
font-weight: 500 !important;
line-height: 20px !important;
}
.VPSidebarItem {
.item {
padding: 12px 32px !important;
border-top-right-radius: 12px !important;
border-bottom-right-radius: 12px !important;
color: theme.$color-text-inactive;
&:hover {
background-color: navigationDrawer.$navigation-drawer-item-hover-background-color !important;
color: theme.$color-text-inactive;
}
}
&.is-active > .item > .indicator {
border-left: navigationDrawer.$navigation-drawer-item-indicator-width solid
navigationDrawer.$navigation-drawer-item-activated-indicator-color !important;
}
}
.VPSidebarItem.collapsible {
.items {
margin-left: 16px;
.item {
padding: 12px 16px 12px 56px !important;
border-top-left-radius: 12px !important;
border-bottom-left-radius: 12px !important;
}
}
&.is-active,
&.has-active {
> .item {
.indicator {
display: block !important;
border-left: navigationDrawer.$navigation-drawer-item-indicator-width solid
navigationDrawer.$navigation-drawer-item-activated-indicator-color !important;
}
.text { .text {
font-size: 15px; color: theme.$color-text-active !important;
font-weight: 500 !important;
}
}
}
.items .VPSidebarItem.is-active > .item {
background-color: navigationDrawer.$navigation-drawer-item-hover-background-color !important;
.text {
color: theme.$color-text-active !important;
font-weight: 500 !important;
} }
} }
} }
.VPSidebarItem.collapsible .items .item .indicator {
display: none !important;
}
.text {
padding: 0px !important;
font-weight: 400 !important;
font-size: 15px !important;
line-height: 18px !important;
letter-spacing: 0.2px !important;
transition-property: all;
transition-duration: 150ms;
transition-timing-function: ease-in-out;
color: theme.$color-text-inactive !important;
}
.VPSidebarItem .items {
border-left: 0px !important;
}
.VPSidebarItem {
padding-bottom: 0px !important;
}
.VPLocalNav.has-sidebar {
@include media.max(sm) {
padding-left: 0px;
}
}
+17 -6
View File
@@ -111,7 +111,7 @@
:root { :root {
--vp-font-family-base: 'Beeline Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; --vp-font-family-base: 'Beeline Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
--vp-font-family-mono: 'Roboto Mono', monospace; --vp-font-family-mono: 'JetBrains Mono', monospace;
// Code // Code
// --vp-code-font-size: ; // --vp-code-font-size: ;
@@ -183,16 +183,18 @@
--vp-custom-block-code-font-size: 17px; --vp-custom-block-code-font-size: 17px;
--vp-custom-block-tip-border: transparent; --vp-custom-block-tip-border: transparent;
--vp-custom-block-tip-text: var(--vp-c-text-1); --vp-custom-block-tip-text: var(--vp-c-text-1);
--vp-custom-block-tip-bg: #f1f1f3; --vp-custom-block-tip-bg: #f9f9f9;
--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft); --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);
--vp-custom-block-warning-bg: #fff4e1; --vp-custom-block-warning-bg: #e3f2ff;
--vp-custom-block-danger-bg: #ffecef; --vp-custom-block-warning-icon: #1a73e8;
--vp-custom-block-danger-bg: #fff4e1;
--vp-custom-block-danger-icon: #ff9419;
} }
.dark { .dark {
--vp-custom-block-warning-bg: #3d392a; --vp-custom-block-warning-bg: #132338;
--vp-custom-block-tip-bg: #36383c; --vp-custom-block-tip-bg: #36383c;
--vp-custom-block-danger-bg: #371313; --vp-custom-block-danger-bg: #3d392a;
} }
/** /**
@@ -203,3 +205,12 @@
--docsearch-primary-color: var(--vp-c-brand-1) !important; --docsearch-primary-color: var(--vp-c-brand-1) !important;
} }
:root {
--vp-icon-copy: url('../../../public/icons/copy.svg');
--vp-icon-clock: url('../../../public/icons/clock.svg');
--vp-icon-info-circled: url('../../../public/icons/info_circled.svg');
--vp-icon-warning-triangle: url('../../../public/icons/warning_triangle.svg');
--vp-icon-nav-arrow-down: url('../../../public/icons/nav_arrow_down.svg');
--vp-icon-nav-arrow-up: url('../../../public/icons/nav_arrow_up.svg');
--vp-sidebar-width: 320px;
}
-10
View File
@@ -1,10 +0,0 @@
---
section_links:
- title: Управление ключевыми парами
link: /admin/ssh.md
description: Добавление SSH-ключей для подключения к виртуальным машинам
---
# Аккаунт Beeline Cloud
Аккаунт Beeline Cloud создается при [регистрации пользователя](../start/getting-started.md#1-регистрация-в-beeline-cloud) в Beeline Cloud. С помощью аккаунта можно управлять профилем пользователя.
-13
View File
@@ -1,13 +0,0 @@
# Матрица региональной доступности
Регион доступности — это один или несколько центров обработки данных (ЦОД), в которых могут быть размещены компоненты облачной инфраструктуры.
| Регион | Статус | Гипервизор | Процессор | HDD| SSD | NVME|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| **ДатаФорт 1** | Доступен | OpenStack | Intel® Xeon® Gold 6248R | &#10008; | &#10008; | ✅ |
Условные обозначения:
✅ — есть возможность выдачи ресурсов.
&#10008; — нет возможности выдачи ресурсов.
+12
View File
@@ -0,0 +1,12 @@
---
section_links:
- title: Управление ключевыми парами
link: /admin/ssh.md
description: Добавление SSH-ключей для подключения к виртуальным машинам
---
# Администрирование
При [регистрации пользователя](../start/getting-started.md#1-регистрация-в-beeline-cloud) в Beeline Cloud создается аккаунт и проект в Beeline Cloud.
С помощью аккаунта можно управлять профилем пользователя - добавлять SSH-ключи, чтобы подключаться к виртуальным машинам без ввода пароля.
-40
View File
@@ -1,40 +0,0 @@
# Квоты и лимиты
Ограничения включают в себя лимиты и квоты на потребление ресурсов в проекте.
Квоты ограничивают потребление ресурсов в проекте. В проекте на каждый ресурс выделяется квота, не превышающая лимит.
После создания проекту становятся доступны базовые квоты. Для них установлены значения по умолчанию.
**Базовые квоты**
| Название квоты | Количество |
|---------------------|------------|
| Количество виртуальных ВМов | 3 штуки|
| ЦПУ | 200 |
| ОЗУ | 200 Гбайт |
| Хранилище NVME | 5000 Гбайт |
| Объектное хранилище | 100 Гбайт |
## Просмотр квот проекта
1. Перейдите в консоль управления.
2. В шапке выберите **Проекты**.
3. Откроется список проектов, в которых вы являетесь участником.
4. Нажмите на имя нужного проекта.
5. Откройте раздел **Обзор**.
## Редактирование квот проекта
::: tip Информация
Изменить квоты проекта может пользователь с ролью **Владелец проекта**.
:::
1. Перейдите в консоль управления.
2. В шапке выберите **Проекты**.
3. Откроется список проектов, в которых вы являетесь участником.
4. Нажмите на имя нужного проекта.
5. Откройте раздел **Обзор**.
6. В правом верхнем углу нажмите **Изменить квоты**.
7. Увеличите или уменьшите квоты для ресурсов.
8. Нажмите **Сохранить**.
-49
View File
@@ -1,49 +0,0 @@
# Управление проектами
Проект — это структурная единица публичного облака, в которой содержатся ресурсы: виртуальные машины, хранилища, IP-адреса и др.
Ресурсы могут быть вычислительными и аппаратными.
Вычислительные ресурсы:
- оперативная память (ОЗУ);
- ядра процессора (ЦПУ);
- локальные диски;
- сетевые диски;
- IP-адреса.
Аппаратные ресурсы (ВМы, сети, диски) размещены в центрах обработки данных (ЦОД). Каждый дата-центр разделен на модули. Модули оснащены независимыми системами электропитания и охлаждения.
При получении доступа в публичное облако текущий пользователь становится менеджера проектов. Менеджер проектов может создавать новые проекты, в которых он получает роль владельца проекта. Владелец проекта может добавлять пользователей в проект, назначая им роли.
Доступ к проекту осуществляется из консоли управления.
## Создать проект
1. Перейдите в консоль управления.
2. Нажмите кнопку **Создать → Проект** в правом верхнем углу.
3. Заполните информацию о проекте:
- **Название**: введите наименование проекта.
- **Идентификатор**: введите идентификатор проекта:
- допустимы строчные и прописные буквы латинского алфавита, цифры и дефис;
- длина не более 64 символов;
- не должно начинаться или заканчиваться дефисом.
- **Описание**: введите краткое описание проекта.
4. Нажмите **Создать**.
## Изменить имя проекта
::: tip Информация
Изменить имя и описание проекта может только пользователь с ролью **Владелец проекта**.
:::
1. Перейдите в консоль управления.
2. В шапке выберите **Проекты**.
3. Откроется список проектов, в которых вы являетесь участником.
4. Нажмите на имя нужного проекта.
5. Откройте раздел **Настройки → Основное**.
6. Измените имя, описание проекта.
7. Нажмите **Сохранить**.
## Удаление проекта
Функциональность не предусмотрена в публичном облаке.
-49
View File
@@ -1,49 +0,0 @@
# Ролевая модель
Управление проектом основано на ролевой модели.
**Базовые роли**
В проекте предусмотрен базовый набор ролей:
- **Владелец продукта** — управление пользователями проекта, просмотр ресурсов.
- **DevOps-инженер** — управление инфраструктурой, стандартное администрирование ОС UNIX по протоколу ssh и права управления виртуальными ВМами и дисками в консоли управления.
## Матрица ролей
| Действие | Владелец проекта | DevOps-инженер |
|---|---|---|
| Обзор проекта<br> (квоты и количество использованных ресурсов)| &#9989; | &#9989; |
| ВМы: обзор | &#9989; | &#9989; |
| ВМы: мониторинг | &#9989; | &#9989; |
| ВМы: создать ВМ |&#10008; | &#9989; |
| ВМы: подключить диск | &#10008; | &#9989; |
| ВМы: отключить диск | &#10008; | &#9989; |
| ВМы: добавить диск | &#10008; | &#9989; |
| ВМы: теги | &#10008; |&#9989; |
| ВМы: масштабирование ВМа | &#10008; | &#9989; |
| ВМы: выключить ВМ | &#10008; | &#9989; |
| ВМы: включить ВМ | &#10008; | &#9989; |
| ВМы: перезагрузить ВМ | &#10008; | &#9989; |
| ВМы: принудительно перезагрузить ВМ | &#10008; | &#9989; |
| ВМы: удалить ВМ | &#10008; | &#9989; |
| ВМы: группы размещения | &#10008; | &#9989; |
| ВМы: IP-адреса | &#10008; | &#9989; |
| Диски: просмотр дисков | &#9989; | &#9989; |
| Диски: добавление дискового пространства | &#10008; | &#9989; |
| Диски: удалить диск| &#10008; | &#9989; |
| Объектное хранилище: просмотр| &#9989; | &#9989; |
| Объектное хранилище: добавить хранилище | &#10008; | &#9989; |
| Объектное хранилище: удалить хранилище | &#10008; | &#9989;|
| DNS: добавить зону | &#10008; | &#9989; |
| DNS: редактировать зону | &#10008; | &#9989; |
| DNS: удалить зону |&#10008; | &#9989; |
| Настройки проекта: просмотр| &#9989; | &#9989; |
| Настройки проекта: изменить описание проекта |&#9989; | &#10008; |
| Участники: просмотр | &#9989; | &#9989; |
| Участники: добавить участника | &#9989; | &#10008; |
| Участники: удалить участника | &#9989; | &#10008; |
| Участники: назначить роль | &#9989;| &#10008; |
| Квоты: просмотр | &#9989; | &#9989; |
| Веб-обработчики | &#10008; | &#9989; |
| Наблюдаемость | &#9989; | &#9989; |
+4 -4
View File
@@ -10,7 +10,7 @@ SSH-ключ добавляется на этапе [создания вирту
## Добавить SSH-ключ ## Добавить SSH-ключ
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Перейдите в профиль пользователя в правом верхнем углу. 2. Перейдите в профиль пользователя в правом верхнем углу.
3. Перейдите в раздел **SSH-ключи**. 3. Перейдите в раздел **SSH-ключи**.
4. Нажмите **Добавить ключ**. 4. Нажмите **Добавить ключ**.
@@ -31,14 +31,14 @@ SSH-ключ добавляется на этапе [создания вирту
## Посмотреть SSH-ключи ## Посмотреть SSH-ключи
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Перейдите в профиль пользователя в правом верхнем углу. 2. Перейдите в профиль пользователя в правом верхнем углу.
3. Перейдите в раздел **SSH-ключи**. 3. Перейдите в раздел **SSH-ключи**.
4. В таблице показаны SSH-ключи пользователя. 4. В таблице показаны SSH-ключи пользователя.
## Изменить название SSH-ключа ## Изменить название SSH-ключа
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Перейдите в профиль пользователя в правом верхнем углу. 2. Перейдите в профиль пользователя в правом верхнем углу.
3. Перейдите в раздел **SSH-ключи**. 3. Перейдите в раздел **SSH-ключи**.
4. Выберите нужный ключ. 4. Выберите нужный ключ.
@@ -48,7 +48,7 @@ SSH-ключ добавляется на этапе [создания вирту
## Удалить SSH-ключ ## Удалить SSH-ключ
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Перейдите в профиль пользователя в правом верхнем углу. 2. Перейдите в профиль пользователя в правом верхнем углу.
3. Перейдите в раздел **SSH-ключи**. 3. Перейдите в раздел **SSH-ключи**.
4. Выберите нужный ключ. 4. Выберите нужный ключ.
-47
View File
@@ -1,47 +0,0 @@
# Управление пользователями в проекте
В консоли управления можно добавлять пользователей, управлять ролями пользователей в проекте. Один пользователей может участвовать в нескольких проектах и иметь в них разные роли.
::: tip Информация
Добавлять и удалять пользователей, изменять права пользователей в проекте может только владелец проекта.
:::
## Добавить пользователя
1. Перейдите в консоль управления.
2. Откройте **Настройки → Участники**.
3. Нажмите **Добавить пользователя**.
4. Найдите пользователя по ФИО или email.
5. Назначьте [роль](../admin/roles.md) пользователю.
6. Нажмите **Добавить**.
## Назначить права пользователю
Каждому пользователю проекта должна быть выдана хотя бы одна роль. У пользователя может быть несколько ролей в одном проекте.
1. Перейдите в консоль управления.
2. Откройте **Настройки → Участники**.
3. Найдите пользователя.
4. Нажмите &#10247; в строке с именем пользователя и выберите **Редактировать**.
5. Назначьте [роль](../admin/roles.md) пользователю: установите флажок напротив роли.
6. Нажмите **Сохранить**.
Права на существующие ОС применятся в течение 10 минут.
## Отозвать права у пользователя
1. Перейдите в консоль управления.
2. Откройте **Настройки → Участники**.
3. Найдите пользователя.
4. Нажмите &#10247; в строке с именем пользователя и выберите **Редактировать**.
5. Отзовите роль у пользователя: уберите флажок напротив роли. Оставьте пользователю хотя бы одну роль в проекте.
6. Нажмите кнопку **Сохранить**.
## Удалить пользователя
1. Перейдите в консоль управления.
2. Откройте **Настройки → Участники**.
3. Найдите пользователя.
4. Нажмите &#10247; в строке с именем пользователя и выберите **Удалить**.
Пользователь будет удален из списка участников проекта. Ресурсы проекта станут недоступны пользователю.
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 347 KiB

After

Width:  |  Height:  |  Size: 347 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 325 KiB

After

Width:  |  Height:  |  Size: 325 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 199 KiB

+8
View File
@@ -0,0 +1,8 @@
# О сервисе
Сервиса **Резервное копирование** — это сервис для сохранения данных и конфигураций виртуальных машин с возможностью последующего восстановления. В облачной среде резервные копии позволяют вернуть систему в рабочее состояние после сбоя и поддерживать доступность сервисов.
Резервное копирование подключается:
- для [виртуальных машин, развернутых в Beeline Cloud](./backup-internal-infra.md);
- для [собственной инфраструктуры](./backup-external-infra.md).
+54
View File
@@ -0,0 +1,54 @@
# Резервное копирование собственной инфраструктуры в Beeline Cloud
## Перед началом работы
- Зарегистрируйтесь в [личном кабинете Beeline Cloud](https://console.cloud.beeline.ru/).
- [Создайте](../vdc/vdc-how-to/vdc-create.md#создание-дата-центра) виртуальный дата-центр.
- [Создайте](../vdc/vdc-how-to/vm/create-vm.md) виртуальную машину в виртуальном дата-центре.
## Подключить резервное копирование
1. Войдите в [личный кабинет Beeline Cloud](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню перейдите в **Сервисы****Резервное копирование**.
4. Нажмите кнопку **Создать хранилище**.
5. В разделе **Инфраструктура для копирования** выберите опцию **Локальная**.
6. В разделе **Тип подключения** выберите способ резервного копирования:
- **Veeam Agent**: резервное копирование в beeline cloud при помощи Veeam Agent.
- **Veeam Cloud Connect**: подключение Veeam к облачному репозиторию beeline cloud.
- **Киберпроект**: резервное копирование в beeline cloud при помощи Киберпротект.
:::tabs
== Veeam Agent / Veeam Cloud Connect
- В разделе **Сетевые подключения** выберите тип подключения:
- **Интернет**: интернет-соединение.
- **L2 или L3 канал**: выделенное интернет-соединение.
- для **L2 или L3 канал** укажите способ связи с вами и удобное время для консультации с менеджером Beeline Cloud.
- В разделе **Параметры** укажите:
- **Количество ВМ**: количество виртуальных машин, которое нужно подключить к сервису.
- **Объем хранилища**: объем хранилища для резервных копий.
== Киберпроект
- В разделе **Общее** выберите [дата-центр](../vdc/vdc-how-to/vdc-create.md#создание-дата-центра), к которому нужно подключить резервное копирование.
- В разделе **Параметры** укажите:
- **ВМ**: количество виртуальных машин, которое нужно подключить к сервису.
- **Базы данных**: количество баз данных, которое нужно подключить к сервису.
- **Серверы**: количество серверов, которое нужно подключить к сервису.
- **Устройства**: количество рабочих столов (VDI), которое нужно подключить к сервису.
- **Объем хранилища**: объем хранилища для резервных копий.
:::
7. Нажмите кнопку **Создать хранилище**.
Подключение резервного копирования занимает до 3 дней. Статус подключения сервиса отображается в личном кабинете Beeline Cloud.
Данные для доступа к ПО для настройки резервного копирования будут отправлены на электронную почту, указанную в личном кабинете Beeline Cloud.
+58
View File
@@ -0,0 +1,58 @@
# Резервное копирование виртуальных машин Beeline Cloud
## Перед началом работы
- Зарегистрируйтесь в [личном кабинете Beeline Cloud](https://console.cloud.beeline.ru/).
- [Создайте](../vdc/vdc-how-to/vdc-create.md#создание-дата-центра) виртуальный дата-центр.
- [Создайте](../vdc/vdc-how-to/vm/create-vm.md) виртуальную машину в виртуальном дата-центре.
## Подключить резервное копирование
1. Войдите в [личный кабинет Beeline Cloud](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню перейдите в **Сервисы****Резервное копирование**.
4. Нажмите кнопку **Создать хранилище**.
5. В разделе **Инфраструктура для копирования** выберите опцию **В облаке**.
6. В разделе **Управление** выберите способ резервного копирования:
- **Самостоятельно**.
- **Провайдером**.
:::: tabs
== Провайдером
- В разделе **Общее** выберите [дата-центр](../vdc/vdc-how-to/vdc-create.md#создание-дата-центра), к которому нужно подключить резервное копирование.
- В разделе **Политика резервного копирования** укажите настройки резервного копирования:
- **Глубина хранения**: время хранения резервных копий.
- **Полное резервное копирование**: количество полных копий в день.
- **Инкрементальное резервное копирование**: количество инкрементальных копий в день.
- **Окно резервного копирования**: выберите время запуска резервного копирования.
::: details Чем полная копия отличается от инкрементной?
Полное резервное копирование — это создание копии всех данных виртуальной машины за одну операцию. Полная копия подходит для восстановления без зависимости от других сохранений.
Инкрементное резервное копирование — это сохранение только измененных данных относительно предыдущей копии. Это уменьшает объем хранения и ускоряет процесс при регулярном копировании.
:::
- В разделе **Параметры** укажите:
- **Количество ВМ**: количество виртуальных машин, которое нужно подключить к сервису.
- **Объем хранилища**: объем хранилища для резервных копий.
== Самостоятельно
- В разделе **Общее** выберите [дата-центр](../vdc/vdc-how-to/vdc-create.md#создание-дата-центра), к которому нужно подключить резервное копирование.
- В разделе **Параметры** укажите:
- **Количество ВМ**: количество виртуальных машин, которое нужно подключить к сервису.
- **Объем хранилища**: объем хранилища для резервных копий.
::::
1. Нажмите кнопку **Создать хранилище**.
Подключение резервного копирования занимает до 3 дней. Статус подключения сервиса отображается в личном кабинете Beeline Cloud.
Данные для доступа к ПО для настройки резервного копирования будут отправлены на электронную почту, указанную в личном кабинете Beeline Cloud.
+27
View File
@@ -0,0 +1,27 @@
# Квоты и лимиты
Квоты — это организационные ограничения на количество доступных ресурсов в сервисе. В некоторых случаях квоты могут быть увеличены или уменьшены по запросу.
Лимиты — это технические ограничения на количество доступных ресурсов в сервисе. Ограничения, обычно, связаны с характеристиками оборудования и особенностями архитектуры.
## Квоты
### Бесплатный период
В [бесплатном периоде](../start/trial.md) использования Beeline Cloud установлены квоты на ресурсы сервиса:
| Вид ограничения | Значение |
| ------------------- | -------- |
| Количество хранилищ | 1 |
| Количество виртуальных машин | 5 |
| Объем хранилища | 1 ПБ |
### Платное использование
| Вид ограничения | Значение |
| ------------------- | ------------- |
| Количество хранилищ | Неограниченно |
| Количество виртуальных машин | 999 |
| Объем хранилища | 1 ПБ |
Если вы заключили договор с Beeline Cloud, то объем хранилища и количество ВМ можно увеличить. Для этого обратитесь в [техническую поддержку](../platform/support/support-overview.md).
+11
View File
@@ -0,0 +1,11 @@
---
section_links:
- title: О сервисе
link: /backups/about.md
description: Назначение сервиса
- title: Квоты и лимиты
link: /backups/backup-quatos.md
description: Ограничения на количество ресурсов в сервисе
---
# Обзор сервиса
+17
View File
@@ -0,0 +1,17 @@
---
section_links:
- title: Обзор сервиса
link: /backups/about.md
description: Обзор сервиса, квоты и лимиты
- title: Резервное копирование виртуальных машин Beeline Cloud
link: /backups/backup-internal-infra.md
description: Резервное копирование инфраструктуры, расположенной в контуре Beeline Cloud
- title: Резервное копирование собственной инфраструктуры в Beeline Cloud
link: /backups/backup-external-infra.md
description: Резервное копирование вашей инфраструктуры в облако Beeline Cloud
- title: Каталог резервных копий
link: /backups/view-backups.md
description: Просмотр ресурсов, к которым подключено резервное копирование
---
# Резервное копирование
+30
View File
@@ -0,0 +1,30 @@
# Каталог резервных копий
## Посмотреть каталог резервных копий
Чтобы посмотреть, к каким ресурсам у подключено резервное копирование:
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Резервное копирование**.
4. Откроется каталог резервных копий.
## Посмотреть детали подключенного резервного копирования
1. Выберите из каталога резервную копию.
2. Откроется карточка услуги резервного копирования. В карточке отображаются:
- Цена услуги,
- Подключенная инфраструктура,
- Тип управления,
- ПО, используемое для резервного копирования,
- Тенант,
- Объем хранилища.
:::tip Информация
В карточке услуги отображаются только параметры, выбранные при первичном подключении резервного копирования.
Если изменить параметры резервного копирования в ПО Киберпротект, Veeam Cloud Connect или Veeam Agent, данные в консоли Beeline Cloud не обновятся. Но стоимость услуг формируется согласно объему использованных ресурсов в ПО Киберпротект, Veeam Cloud Connect или Veeam Agent.
:::
+21
View File
@@ -0,0 +1,21 @@
# Биллинг
Биллинг предназначен для управления финансовыми операциями в Beeline Cloud. В биллинге вы можете:
- контролировать счета;
- отслеживать платежи;
- анализировать потребление ресурсов.
## Разделы биллинга
### Счета
В этом разделе отображаются все выставленные счета, их статусы и суммы. Вы можете посмотреть детали каждого счета и скачать документы для бухгалтерии.
### Финансовый мониторинг
В этом разделе вы можете отслеживать движение средств, контролировать платежи и задолженности.
### Аналитика потребления
В этом разделе вы можете создавать отчеты и строить графики, чтобы отследить использование ресурсов за выбранный период.
View File
View File
-1
View File
@@ -1 +0,0 @@
# Биллинг
+17
View File
@@ -0,0 +1,17 @@
# Аналитика потребления
В этом разделе вы можете отследить использование ресурсов в проектах. Это может помочь вам контролировать расходы на сервисы.
Вы можете:
- Узнать какие проекты потребляют больше всего ресурсов.
- Сравнить использование за разные периоды.
## Как пользоваться
1. В поле **Проект** выберите один или `все проекты`.
2. В поле **Сервис** укажите нужный сервис, например, **Виртуальные дата-центры на VMware**.
3. В поле Ресурсы выберите «Все ресурсы» или конкретный тип.
4. Установите период с помощью календаря.
После этого появится отчет. Если данных нет, попробуйте изменить период, выбрать другой проект или ресурс.
+114 -23
View File
@@ -1,38 +1,129 @@
# Быстрый старт # Быстрый старт
В этой инструкции рассмотрен процесс создания виртуального ВМа UNIX и подключение к нему по протоколу SSH. В этой инструкции рассмотрен процесс создания ресурсов, настройки связанности ,.
## Создать виртуальный ВМ ## Перед началом работы
1. Отк - [Зарегистрируйтесь](../start/getting-started.md#1-регистрация-в-beeline-cloud) в личном кабинете Beeline Cloud.
2. Выбрать проект.
3. На странице **Обзор** убедитесь в наличии свободных ресурсов.
4. Нажмите **Создать ВМ**.
5. Выберите образ ОС UNIX.
6.
7. Нажмите **Cоздать ВМ**.
Виртуальный ВМ отобразится на странице **Облачные вычисления → ВМы**. Выполняется сборка виртуального ВМа. После окончания сборки ВМ перейдет в статус `Включен`. ## 1. Создать ВМ-шлюз
## Подключиться к ВМу по SSH На первом шаге создайте виртуальную машину-шлюз, которая будет являться точкой управления. Чтобы ВМ была доступна из интернета и имела выход в интернет, ВМ создается:
Для подключения к виртуальному ВМу по SSH выполните команду в терминале: - в [зоне доступности](compute-overview.md#зоны-доступности) `DMZ`;
- с внешним IP-адресом, который сопоставлен с внутренним IP-адресом `10.0.0.10`;
- с образом операционной системы:
- Linux для реализации базовой сетевой функциональности;
- VyOS для реализации расширенной сетевой функциональности.
- по IP-адресу ВМа: 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. На странице **Мой проект** нажмите кнопку **Создать ресурс → Виртуальная машина**.
3. В блоке **Имя и расположение** укажите имя и расположение ВМ:
- **Имя машины**: введите название ВМ.
- **Зона доступности**: выберите зону доступности, содержащую в названии `DMZ`.
4. В блоке **Выбор образа** выберите тип и версию операционной системы:
- выберите образ операционной системы Linux для реализации базовой сетевой функциональности;
- выберите образ операционной системы VyOS для реализации расширенной сетевой функциональности.
5. В блоке **Конфигурация** выберите количество vCPU и RAM.
6. В блоке **Диски** настройте загрузочный диск:
- **Загрузочный диск**: выберите тип диска и укажите размер загрузочного диска.
7. Нажмите [создать ключ](../admin/ssh.md#добавить-ssh-ключ) для создания SSH-ключа для подключения к ВМ.
8. В блоке **Доступ** укажите логин пользователя для подключения к ВМ:
- **Логин**: введите логин пользователя латинскими символами в нижнем регистре.
9. В блоке **Настройки сети** выберите:
- **IPv4-адрес**: выберите внешний IP-адрес.
10. Нажмите **Создать виртуальную машину**.
Виртуальная машина отобразится на странице **Виртуальные машины**. Выполняется сборка виртуальной машины. После окончания сборки виртуальная машина перейдет в статус `Включена`.
## 2. Создать ВМ
На втором шаге в проекте Beeline Cloud создайте виртуальные машины в [зонах доступности](compute-overview.md#зоны-доступности) `Inside` или `DMZ` и присвойте им внутренние IP-адреса.
1. На странице **Виртуальные машины** нажмите кнопку **Создать виртуальную машину**.
2. [Заполните](./compute-how-to/compute-servers-create.md#создать-виртуальную-машину) параметры ВМ.
3. Нажмите **Создать виртуальную машину**.
Виртуальная машина отобразится на странице **Виртуальные машины**. Выполняется сборка виртуальной машины. После окончания сборки виртуальная машина перейдет в статус `Включена`.
## 3. Подключиться к ВМ
:::: tabs
= по внешнему IP-адресу
Если ВМ создана в зоне `DMZ` и ей присвоен внешний IP-адрес, то подключитесь к ВМ по SSH:
``` ```
ssh -l <логин пользователя> -i <путь до приватного ключа> <IP-адрес ВМа> ssh <логин>@<внешний_IP>
```
- по полному доменному имени ВМа (FQDN):
```
ssh -l <логин пользователя> -i <путь до приватного ключа> <FQDN ВМа>
``` ```
Пример команды подключения к ВМу по IP-адресу: где:
``` - `логин`: имя пользователя для входа на ВМ, указанное при создании ВМ;
$ ssh -l ivanov -i /home/user/.ssh/id_rsa 10.0.0.1 - `внешний_IP`: внешний IP-адрес виртуальной машины.
= по внутреннему IP-адресу
Если ВМ создана в зоне `Inside` или `DMZ` и ей присвоен внутренний IP-адрес, то для подключения к ВМ используйте один из вариантов:
- [через промежуточную виртуальную машину (джамп-хост)](https://docs.cloud.dfcloud.ru/compute/compute-how-to/compute-connect-inside.html#_3-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F-ssh);
- [настроить site-to-site VPN c помощью VyOS](./compute-how-to/compute-network/compute-vpn-vyos.md).
::::
## 4. Проверить сетевую доступность ВМ проекта
Возможность подключения из внешних сетей присутствует только для ВМ, созданных в зоне доступности `DMZ`. ВМ, созданные в зоне `Inside` не подразумевают доступа в интернет без [дополнительной настройки](././compute-how-to/compute-network/compute-network-inside.md#подключение-вм-закрытого-контура-к-интернету).
Перед проверкой доступности из ВМ проекта убедитесь:
- протокол ICMP разрешен на всех Firewall, в т.ч. и в самой ОС;
- [site-to-site VPN](././compute-how-to/compute-network/compute-vpn-vyos.md) организации настроен, используется частный диапазон сетей RFC 1918;
- из VPN-туннеля настроена маршрутизация в сеть интернет.
Для проверки доступности из ВМ проекта и установки ПО на ВМ:
1. Выполните команду на ВМ проекта:
```sh
curl ifconfig.me
``` ```
## Далее 2. В результате команды отобразится внешний IP-адрес ВМ, с которого осуществляется выход в интернет.
3. Установите ПО на ВМ:
:::: tabs
= ВМ в зоне доступности DMZ
Рассмотрим установку веб-сервера Nginx на ВМ, созданной в зоне доступности `DMZ`.
- Установите докер:
```sh
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
```
- Запустите Nginx:
```sh
docker run -d --rm --name nginx -p80:80 nginx
```
- Проверьте, что Nginx запустился:
```sh
curl localhost
```
- Остановите контейнер Nginx:
```sh
docker rm -f nginx
```
= ВМ в зоне доступности Inside
Установка ПО на ВМ, созданных в зоне доступности `Inside`, рассмотрена в [инструкции](././compute-how-to/compute-network/compute-network-inside.md#подключение-вм-закрытого-контура-к-интернету).
::::
@@ -1,64 +0,0 @@
# Группы размещения
Группы размещения — это правила размещения виртуальных машин на физических хостах. Правила размещения позволяют создавать виртуальные машины на разных или на одном хосте. Политика размещения виртуальных машин действует в рамках одной зоны доступности.
- Правило `Affinity` размещает ВМ обязательно на одном физическом хосте.
- Правило `Soft-Affinity` размещает ВМ по возможности на одном физическом хосте.
- Правило `Anti-Affinity` размещает ВМ обязательно на разных физических хостах. Такое размещение повышает производительность и предотвращает недоступность ВМ при отказе хоста.
- Правило `Soft-Anti-Affinity` размещает ВМ по возможности на разных физических хостах.
::: warning Важно
В группу размещения можно добавить новую ВМ. Во время создания ВМ укажите группу размещения, к которой будет принадлежать ВМ.
Существующая ВМ не может быть добавлена в группу размещения.
ВМ может быть создана в группе размещения, если для выполнения правила есть ресурсы в зоне доступности. Если ресурсов нет, то ВМ не будет создан.
:::
## Создать группу размещения
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Группы размещения**.
5. Нажмите **Создать группу**.
6. Введите параметры группы размещения:
- **Имя группы размещения**: введите имя группы размещения.
- выберите правило размещения.
- **Зона доступности**: выберите зону доступности, в которой будут создаваться виртуальные машины по правилу размещения.
- добавьте тег группе размещения при необходимости.
7. Нажмите **Создать группу**.
## Добавить виртуальную машину в группу размещения
Принадлежность виртуальной машины к группе размещения указывается во время [создания ВМ](../compute-how-to/compute-servers-create.md#создать-виртуальную-машину). Уже созданную виртуальную машину нельзя добавить в группу размещения.
## Редактировать группу размещения
В группе размещения можно изменить название группы и редактировать теги.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Группы размещения**.
5. Переименовать группу размещения:
- Нажмите на название группы в списке групп.
- Нажмите на &hellip; и выберите **Переименовать**.
- Введите новое имя группы размещения.
- Нажмите &#10003;.
6. Редактировать теги группы размещения:
- Нажмите на название группы в списке групп.
- Нажмите **Редактировать теги**.
- Добавьте или удалите теги.
- Нажмите **Сохранить**.
## Удалить группу размещения
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Группы размещения**.
5. Справа от названия группы размещения нажмите кнопку ![del](../compute-how-to/image/delete.png).
@@ -0,0 +1,14 @@
---
section_links:
- title: Подключение по SSH по внешнему IP-адресу с помощью ключевой пары
link: /compute/compute-how-to/compute-connect-public.md
description: Подключиться к виртуальной машине по SSH с помощью ключевой пары по внешнему IP-адресу
- title: Подключение по SSH по внутреннему IP-адресу с помощью ключевой пары
link: /compute/compute-how-to/compute-connect-inside.md
description: Подключиться к виртуальной машине по SSH с помощью ключевой пары по внутреннему IP-адресу через джамп-хост
- title: Подключение по SSH по логину и паролю
link: /compute/compute-how-to/compute-connect-inside.md
description: Подключиться к виртуальной машине по SSH с помощью логина и пароля
---
# Подключение к ВМ
@@ -0,0 +1,70 @@
# Подключение по SSH по внутреннему IP-адресу с помощью ключевой пары
Виртуальные машины, созданные в [зоне доступности `Inside` или `DMZ`](../compute-overview.md#зоны-доступности), с внутренним IP-адресом недоступны из интернета. Чтобы подключиться по SSH к ВМ по внутреннему IP-адресу из интернета, используйте промежуточную виртуальную машину (джамп-хост) с [внешним IP-адресом (FIP)](../compute-how-to/compute-ip/compute-ip-about.md#внешние-ip-адреса).
## Перед началом работы
Перед подключением проверьте выполнение условий и наличие данных:
- Статус виртуальной машины — `Включена`.
- [Создана промежуточная ВМ](compute-servers-jump-create.md), через которую будет выполняться подключение к ВМ.
- Виртуальной машине [назначен](../compute-how-to/compute-ip/compute-ip-about.md#внутренние-ip-адреса) внутренний IP-адрес.
- Имя пользователя для входа на ВМ.
- Подготовлена ключевая пара для подключения к ВМ по SSH:
- приватный ключ сохранен на компьютере, с которого выполняется подключение;
- публичный ключ [добавлен](../../admin/ssh.md#добавить-ssh-ключ) в профиль пользователя в личном кабинете Beeline Cloud.
- На компьютере, с которого выполняется подключение к ВМ:
- разрешен удаленный доступ по протоколу SSH (TCP-порт 22);
- есть доступ в интернет, протокол ICMP не заблокирован на Firewall-ах;
- VPN сети организации позволяет осуществлять соединение в интернет.
Если вы используете разные SSH-ключи для подключения к ВМ по внутреннему IP-адресу и к промежуточной ВМ с внешним IP-адресом, то добавьте оба публичных ключа в профиль пользователя в личном кабинете Beeline Cloud.
## 1. Конфигурация SSH
1. Откройте конфигурационный файл SSH `~/.ssh/config` для ОС Linux или `C:\users\имя_пользователя\.ssh\config` для ОС Windows.
2. Добавьте в конфигурационный файл сведения о виртуальных машинах:
```
host jumphost
hostname <jumphost>
user <jump_login>
IdentityFile <jump-secret-file-path>
host myhost
hostname <myhost>
user <myhost-login>
IdentityFile <myhost-secret-file-path>
ProxyJump jumphost
```
где:
- `jumphost`: внешний IP-адрес джамп-хоста;
- `jump_login`: имя пользователя для входа на джамп-хост, указанное при создании ВМ;
- `jump-secret-file-path`: путь к приватному ключу джамп-хоста;
- `myhost`: внутренний IP-адрес ВМ, к которой требуется подключиться;
- `myhost-login`: имя пользователя для входа на ВМ, указанное при создании ВМ;
- `myhost-secret-file-path`: путь к приватному ключу ВМ, к которой требуется подключиться.
### Пример содержимого файла ~/.ssh/config
```
host jumphost
hostname 77.41.188.88
user admin
IdentityFile ~/.ssh/id_ed25519
host myhost
hostname 10.0.0.12
user ivanov
IdentityFile ~/.ssh/id_ed25519
ProxyJump jumphost
```
## 2. Подключиться к ВМ по внутреннему IP-адресу
1. Откройте терминал.
2. Выполните команду:
```
ssh myhost
```
@@ -0,0 +1,49 @@
# Подключение по SSH по внешнему IP-адресу с помощью ключевой пары
Подключение к ВМ выполняется по протоколу SSH с [помощью ключевой пары](../../admin/ssh.md).
:::tip Информация
Чтобы подключаться к виртуальной машине по SSH, [добавьте](../../admin/ssh.md#добавить-ssh-ключ) публичную часть ключа в профиль пользователя перед созданием виртуальной машины. Для существующих виртуальных машин добавление SSH-ключа невозможно.
:::
## Перед началом работы
Перед подключением проверьте выполнение условий и наличие данных:
- Статус виртуальной машины — `Включена`.
- Виртуальной машине [назначен](../compute-how-to/compute-ip/compute-ip-manager.md#назначить-вм-внешний-ip-адрес) внешний IP-адрес.
- Узнайте имя пользователя для входа на ВМ.
- Приватная часть SSH-ключа сохранена на компьютере, с которого выполняется подключение.
## Подключиться к ВМ
1. Откройте терминал.
2. Выполните команду в терминале:
```
ssh <логин>@<внешний_IP>
```
где:
- `логин`: [имя пользователя ОС по умолчанию](./../compute-overview.md#операционная-система);
- `внешний_IP`: внешний IP-адрес виртуальной машины.
- Если на вашем устройстве есть несколько приватных ключей или вы переместили приватный ключ из каталога по умолчанию, то дополнительно укажите путь к приватному ключу:
```
ssh -o IdentityFile=<путь_к_приватному_ключу> <логин>@<внешний_IP>
```
3. Подтвердите подключение.
## Пример команды для подключения к ВМ
::::tabs
= Linux/macOS
```
ssh -o IdentityFile=~/.ssh/id_ed25519 debian@<внешний_IP>
```
= Windows 10/11
```
ssh -o IdentityFile=%USERPROFILE%\.ssh\id_ed25519 debian@<внешний_IP>
```
::::
@@ -0,0 +1,44 @@
# Подключение по SSH по логину и паролю
Подключиться к ВМ можно по протоколу SSH с помощью логина и пароля.
## Перед началом работы
Перед подключением проверьте выполнение условий:
- Статус виртуальной машины — `Включена`.
## 1. Подготовить учетные данные
Для подключения узнайте логин и пароль пользователя:
| Учетные данные | Значение |
|---|---|
| Логин | Логин задается при [создании](compute-servers-create.md#создать-виртуальную-машину) виртуальной машины. Логин пользователя [указан](compute-servers-manage.md#посмотреть-свойства-вм) в свойствах ВМ в поле **Логин** |
| Пароль | Пароль задается при [создании](compute-servers-create.md#создать-виртуальную-машину) виртуальной машины. Если вы забыли пароль, то восстановить его не получится |
## 2. Подключиться к ВМ
:::: tabs
= по внешнему IP-адресу
Если ВМ создана в зоне `DMZ` и ей присвоен [внешний IP-адрес](./compute-ip/compute-ip-about.md#внешние-ip-адреса), то для подключения к ВМ выполните:
1. Откройте терминал.
2. Выполните команду в терминале:
```
ssh <логин>@<внешний_IP>
```
3. Подтвердите подключение.
4. Введите пароль и подтвердите подключение.
= по внутреннему IP-адресу
Если ВМ создана в зоне `Inside` или `DMZ` и ей присвоен внутренний IP-адрес, то для подключения к ВМ используйте один из вариантов:
- [через промежуточную виртуальную машину (джамп-хост)](https://docs.cloud.dfcloud.ru/compute/compute-how-to/compute-connect-inside.html#_3-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F-ssh);
- [настроить site-to-site VPN c помощью VyOS](./../compute-how-to/compute-network/compute-vpn-vyos.md).
::::
@@ -1,36 +0,0 @@
# Подключение к ВМ
Подключение к ВМ выполняется по протоколу SSH с [помощью ключевой пары](../../admin/ssh.md).
## Перед началом работы
- Статус ВМ `Включен`.
## Подключиться к ВМ
1. Откройте терминал.
2. Выполните команду в терминале:
- **подключиться из интернета к ВМ, созданной в зоне `DMZ`**:
```
ssh -l <имя пользователя> <публичный IP-адрес ВМ>
```
где:
- `имя пользователя`: имя пользователя ВМ соответствует [названию операционной системы ВМ](./../compute-overview.md#операционная-система), но с маленькой буквы и без указания версии ОС;
- `публичный IP-адрес ВМ`: публичный IP-адрес ВМ можно узнать на странице сервиса **Виртуальные машины** в разделе **Виртуальные машины**, нажмите на имя ВМ и скопируйте IP-адрес.
- **подключиться из интернета к ВМ, созданной в зоне `Inside`**:
```
ssh -o ProxyJump=<имя пользователя1>@<публичный IP-адрес ВМ> <имя пользователя2>@<приватный IP-адрес ВМ>
```
где:
- `имя пользователя1`: имя пользователя ВМ, через которую будет выполнено подключение к ВМ `Inside`-зоны, соответствует [названию операционной системы ВМ](./../compute-overview.md#операционная-система), но с маленькой буквы и без указания версии ОС;
- `имя пользователя2`: имя пользователя ВМ `Inside`-зоны, соответствует [названию операционной системы ВМ](./../compute-overview.md#операционная-система), но с маленькой буквы и без указания версии ОС;
- `публичный IP-адрес ВМ`: публичный IP-адрес ВМ, через которую будет выполнено подключение к ВМ `Inside`-зоны;
- `приватный IP-адрес ВМ`: приватный IP-адрес ВМ `Inside`-зоны, к которой нужно подключиться из интернета;
- IP-адреса ВМ можно узнать на странице сервиса **Виртуальные машины** в разделе **Виртуальные машины**, нажмите на имя ВМ и скопируйте IP-адрес.
3. Подтвердите подключение.
@@ -0,0 +1,7 @@
# Диски
Хранение данных организовано с использованием сетевых дисков. Диск создается в определенной зоне доступности. Каждый диск автоматически реплицируется внутри своей зоны доступности, что обеспечивает надежное хранение данных.
Загрузочный диск создается вместе с виртуальным ВМом. Конфигурация загрузочного диска задается на этапе [создания ВМ](../compute-servers-create.md#создать-виртуальную-машину). При [удалении ВМ](../compute-servers-manage.md#удалить-ВМ) загрузочный диск удалится вместе с ВМ.
[Дополнительные диски можно добавить](../compute-servers-create.md#добавить-диск) на этапе создания ВМ или [создать диск позже и подключить к нужной ВМ](../compute-disks/compute-disk-create.md). При [удалении ВМ](../compute-servers-manage.md#удалить-ВМ) дополнительные диски (не загрузочные) останутся в проекте в списке дисков.
@@ -0,0 +1,21 @@
# Создание диска
Создание диска позволяет добавить новое блочное хранилище. В процессе создания можно выбрать тип диска, размер и зону доступности, а также настроить дополнительные параметры для оптимального соотношения производительности и стоимости.
## Создать диск
Создать диск дополнительный (не загрузочный):
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Диски**.
5. Нажмите **Создать диск**.
6. Введите параметры добавляемого диска:
- **Имя диска**: введите название диска
- **Зона доступности**: выберите из списка зону доступности, в которой будет создан диск.
- **Тип**: выберите из списка тип хранения.
- **Размер диска**: введите размер добавляемого диска в Гб.
7. Нажмите **Создать диск**.
На странице **Диски** будет добавлен новый диск, но не подключен к какой-либо виртуальной машине. Диск можно [подключить к ВМ](../compute-disks/compute-disk-manage.md#подключить-диск-к-вм).
@@ -0,0 +1,19 @@
# Удаление диска
Удаление диска позволяет освободить ресурсы хранилища после завершения работы с данными. Перед удалением необходимо убедиться, что диск [отключен](../compute-disks/compute-disk-manage.md#отключить-диск-от-вм) от всех виртуальных машин и не содержит критически важных данных без резервных копий.
## Удалить диск
::: danger Предупреждение
Удаление диска необратимо. Все данные будут удалены без возможности восстановления.
:::
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Диски**.
5. Нажмите на имя диска.
6. Нажмите на &hellip; и выберите **Удалить**.
7. В открывшемся окне подтвердите операцию:
- Введите имя удаляемого диска.
- Нажмите **Удалить**.
@@ -0,0 +1,17 @@
---
section_links:
- title: Обзор
link: /compute/compute-how-to/compute-disks/compute-disk-about.md
description: Основные понятия о дисках
- title: Создание диска
link: /compute/compute-how-to/compute-disks/compute-disk-create.md
description: Создание нового диска
- title: Управление дисками
link: /compute/compute-how-to/compute-disks/compute-disk-manage.md
description: Просмотр списка параметров и операций с дисками
- title: Удаление диска
link: /compute/compute-how-to/compute-disks/compute-disk-del.md
description: Удаление диска
---
# Диски
@@ -1,21 +1,17 @@
# Диски # Управление дисками
Хранение данных организовано с использованием сетевых дисков. Диск создается в определенной зоне доступности. Каждый диск автоматически реплицируется внутри своей зоны доступности, что обеспечивает надежное хранение данных. Управление дисками позволяет выполнять операции с существующими хранилищами. Доступно управление списками и информацией о дисках, изменение размера дискового пространства, а также подключение и отключение дисков от виртуальных машин.
Загрузочный диск создается вместе с виртуальным ВМом. Конфигурация загрузочного диска задается на этапе [создания ВМ](compute-servers-create.md#создать-виртуальную-машину). При [удалении ВМ](compute-servers-manage.md#удалить-ВМ) загрузочный диск удалится вместе с ВМ.
[Дополнительные диски можно добавить](compute-servers-create.md#добавить-диск) на этапе создания ВМ или [создать диск позже и подключить к нужной ВМ](#создать-диск). При [удалении ВМ](compute-servers-manage.md#удалить-ВМ) дополнительные диски (не загрузочные) останутся в проекте в списке дисков.
## Посмотреть список дисков ## Посмотреть список дисков
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Диски**. 4. В левом меню откройте раздел **Диски**.
## Посмотреть информацию о диске ## Посмотреть информацию о диске
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Диски**. 4. В левом меню откройте раздел **Диски**.
@@ -28,31 +24,13 @@
- **Подключен к**: виртуальный ВМ, к которому подключен диск. - **Подключен к**: виртуальный ВМ, к которому подключен диск.
- **Имя устройства**: имя устройства в файловой системе. - **Имя устройства**: имя устройства в файловой системе.
## Создать диск
Создать диск дополнительный (не загрузочный):
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Диски**.
5. Нажмите **Создать диск**.
6. Введите параметры добавляемого диска:
- **Имя диска**: введите название диска
- **Зона доступности**: выберите из списка зону доступности, в которой будет создан диск.
- **Тип**: выберите из списка тип хранения.
- **Размер диска**: введите размер добавляемого диска в Гб.
7. Нажмите **Создать диск**.
На странице **Диски** будет добавлен новый диск, но не подключен к како-либо ВМ. Диск можно [подключить к ВМ](#подключить-диск-к-вм).
## Увеличить размер дискового пространства ## Увеличить размер дискового пространства
::: warning Важно ::: warning Важно
Изменение размера дискового пространства возможно только в большую сторону. Изменение размера дискового пространства возможно только в большую сторону.
::: :::
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Диски**. 4. В левом меню откройте раздел **Диски**.
@@ -68,10 +46,10 @@
При подключении диск и ВМ должны быть созданы в одной зоне доступности. При подключении диск и ВМ должны быть созданы в одной зоне доступности.
::: warning Важно ::: warning Важно
К ВМ можно подключить максимально 28 дисков, включая системный. К ВМ можно подключить максимально 28 дисков, включая загрузочный.
::: :::
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
@@ -85,7 +63,7 @@
Отключить от ВМ можно только дополнительный диск. Отключение загрузочного диска невозможно. Отключить от ВМ можно только дополнительный диск. Отключение загрузочного диска невозможно.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
@@ -95,21 +73,3 @@
8. В открывшемся окне подтвердите операцию: 8. В открывшемся окне подтвердите операцию:
- Введите имя ВМ, от которого отключаете диск. - Введите имя ВМ, от которого отключаете диск.
- Нажмите **Отключить диск**. - Нажмите **Отключить диск**.
## Удалить диск
Перед удалением отключите диск от ВМ.
::: danger Предупреждение
Удаление диска необратимо. Все данные будут удалены без возможности восстановления.
:::
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Диски**.
5. Нажмите на имя диска.
6. Нажмите на &hellip; и выберите **Удалить**.
7. В открывшемся окне подтвердите операцию:
- Введите имя удаляемого диска.
- Нажмите **Удалить**.
+6 -5
View File
@@ -2,15 +2,16 @@
section_links: section_links:
- title: Создание ВМ - title: Создание ВМ
link: /compute/compute-how-to/compute-servers-create.md link: /compute/compute-how-to/compute-servers-create.md
description: Создание виртуальной машины description: Создать виртуальную машину
- title: Создание ВМ джамп-хоста
link: /compute/compute-how-to/compute-servers-jump-create.md
description: Создать виртуальную машину с внешним IP-адресом с доступом из интернета и выходом в интернет
- title: Подключение к ВМ - title: Подключение к ВМ
link: /compute/compute-how-to/compute-connect.md link: /compute/compute-how-to/compute-connect-index.md
description: Подключиться к созданной виртуальной машине description: Подключиться к созданной виртуальной машине по SSH
- title: Управление ВМ - title: Управление ВМ
link: /compute/compute-how-to/compute-servers-manage.md link: /compute/compute-how-to/compute-servers-manage.md
description: Управление состоянием виртуальной машины, удаление виртуальной машины description: Управление состоянием виртуальной машины, удаление виртуальной машины
--- ---
# Виртуальные машины # Виртуальные машины
Создание виртуальных машин с операционной системой семейства Linux и подключение к ней. Управление состоянием ВМ.
-102
View File
@@ -1,102 +0,0 @@
# IP-адрес
IP-адрес — это вычислительный ресурс облака. В облачных сервисах используются внутренние IPv4-адреса.
Внутренние IP-адреса назначаются автоматически или выбираются из списка зарезервированных адресов при создании ВМ.
Список зарезервированных адресов формируется из:
- IP-адресов, [созданных вручную](#создать-ip-адрес);
- IP-адресов, [сохраненных в проекте](#сохранить-ip-адрес-в-проекте).
::: warning Важно
Привязка и отвязка IP-адресов возможна внутри одной [зоны доступности](../compute-overview.md#зоны-доступности).
:::
## Типы IP-адресов
`Публичный` — IP-адрес, по которому ВМ доступна из интернета.
`Приватный` — IP-адрес, по которому ВМ доступна в [зоне `Inside`](../compute-overview.md#зоны-доступности).
::: warning Важно
Один публичный IP-адрес предоставляется одной организации. Не удаляйте публичный IP-адрес из списка IP-адресов. В случае удаления IP-адреса пропадет возможность создания ВМ с доступом в интернет.
Публичный IP-адрес можно отвязать от ВМ и назначить другой ВМ.
:::
## Статусы IP-адресов
`Используется` — IP-адрес зарезервирован и назначен ВМ.
`Зарезервирован` — IP-адрес зарезервирован и не назначен ВМ, доступен для назначения.
## Посмотреть список IP-адресов
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Отобразится список всех IP-адресов проекта.
## Создать IP-адрес
Вы можете зарезервировать IP-адрес из диапазона IP-адресов и назначить этот адрес новой ВМ.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Нажмите **Создать IP-адрес**.
6. Введите параметры адреса:
- **Имя**: введите имя IP-адреса.
- **Зона доступности**: выберите зону доступности, в которой будут доступен адрес.
- добавьте тег адресу при необходимости.
7. Нажмите **Создать**.
На странице **Облачные вычисления → IP-адреса** появится новый IP-адрес со статусом `Зарезервирован`.
## Сохранить IP-адрес в проекте
При удалении ВМ его IP-адрес освобождается и не может быть повторно использован в проекте. Если вам требуется сохранить IP-адрес ВМ и привязать этот адрес новой ВМ, то отключите автоудаление адреса. IP-адрес сохранится в вашем проекте и может быть назначен новой ВМ.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Нажмите на имя адреса в списке IP-адресов.
6. На странице адреса нажмите кнопку **Изменить**, расположенную ниже флажка **Автоудаление**.
7. Снимите флажок **Автоудаление**, если он установлен.
8. Нажмите **Сохранить**.
## Присвоить имя IP-адресу
Имя IP-адреса отображается только на странице **Облачные вычисления → IP-адреса**. На странице ВМ отображается значение IP-адреса.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Нажмите на имя адреса в списке IP-адресов.
6. Нажмите на &hellip; и выберите **Переименовать**.
7. Введите новое имя IP-адреса.
8. Нажмите &#10003;.
## Удалить IP-адрес
Если для IP-адреса установлено автоудаление, то адрес удалится во время удаления ВМ.
Если для IP-адреса не установлено автоудаление, то адрес удаляется вручную:
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Удалите адрес одним из способов:
- В разделе **IP-адреса**:
- В списке адресов найдите IP-адрес, который необходимо удалить.
- Cправа от имени IP-адреса нажмите кнопку ![del](../compute-how-to/image/delete.png).
- Подтвердите действие.
- На странице IP-адреса:
- Нажмите на имя адреса в списке IP-адресов, который необходимо удалить.
- Нажмите на &hellip; в правом углу страницы и выберите **Удалить**.
- Подтвердите действие.
@@ -0,0 +1,31 @@
# IP-адрес
Раздел содержит описание типов IP-адресов в Beeline Cloud: внутренние и внешние адреса, их назначение и возможные статусы.
:::tip Информация
Каждая виртуальная машина при создании получает IP-адрес. В сервисе поддерживаются только IPv4-адреса.
:::
## Внутренние IP-адреса
Внутренний IP-адрес используется для взаимодействия между ВМ внутри одной сети. Внутренний IP-адрес не виден из интернета.
Внутренний IP-адрес назначается виртуальной машине автоматически или выбираются из списка зарезервированных адресов при ее создании.
:::tip Информация
Виртуальная машина доступна из интернета только через внешний IP-адрес. Для доступа из интернета к виртуальной машине по внутреннему IP-адресу используйте виртуальную машину с внешним IP-адресом как джамп-хост.
:::
## Внешние IP-адреса
Внешний IP-адрес — это IP-адрес, который доступен из интернета. Внешний IP-адрес выдается организации при регистрации аккаунта Beeline Cloud.
В сервисе **Виртуальные машины** предусмотрен один внешний IP-адрес (Floating IP или FIP), сопоставленный с внутренним IP-адрес **10.0.0.10**. Значение внешнего IP-адреса можно [посмотреть](../compute-ip/compute-ip-view#посмотреть-внешний-ip-адрес) в разделе **Виртуальные машины → IP-адреса**.
Чтобы ВМ без ограничений была доступна из интернета и получала доступ к ресурсам интернета, ей должен быть присвоен внешний IP-адрес. Внешний IP-адрес [назначается](../compute-ip/compute-ip-manager#назначить-вм-внешний-ip-адрес) виртуальной машине при ее создании. Существующей ВМ назначить внешний IP-адрес нельзя.
## Статусы IP-адресов
**Используется** — IP-адрес зарезервирован и назначен ВМ.
**Зарезервирован** — IP-адрес зарезервирован и не назначен ВМ, доступен для назначения.
@@ -0,0 +1,20 @@
# Создание IP-адреса
Раздел описывает процедуру создания нового IP-адреса в проекте с выбором типа и параметров.
## Создать IP-адрес
Вы можете зарезервировать IP-адрес из диапазона IP-адресов и назначить этот адрес новой ВМ.
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Нажмите **Создать IP-адрес**.
6. Введите параметры адреса:
- **Имя**: введите имя IP-адреса.
- **Зона доступности**: выберите зону доступности, в которой будут доступен адрес.
- добавьте тег адресу при необходимости.
7. Нажмите **Создать**.
На странице **Виртуальные машины → IP-адреса** появится новый IP-адрес со статусом **Зарезервирован**.
@@ -0,0 +1,27 @@
# Удаление IP-адреса
Раздел описывает процедуру удаления IP-адреса с проверкой зависимостей и освобождением ресурсов.
## Удалить IP-адрес
:::warning Важно
Не удаляйте внешний IP-адрес из списка IP-адресов. В случае удаления IP-адреса пропадет возможность создания ВМ с доступом в интернет.
:::
Если для IP-адреса установлено автоудаление, то адрес удалится во время удаления ВМ.
Если для IP-адреса не установлено автоудаление, то адрес удаляется вручную:
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Удалите адрес одним из способов:
- В разделе **IP-адреса**:
- В списке адресов найдите IP-адрес, который необходимо удалить.
- Cправа от имени IP-адреса нажмите кнопку ![del](../image/delete.png).
- Подтвердите действие.
- На странице IP-адреса:
- Нажмите на имя адреса в списке IP-адресов, который необходимо удалить.
- Нажмите на &hellip; в правом углу страницы и выберите **Удалить**.
- Подтвердите действие.
@@ -0,0 +1,20 @@
---
section_links:
- title: Обзор
link: /compute/compute-how-to/compute-ip/compute-ip-about.md
description: Описание типов IP-адресов
- title: Просмотр IP-адресов
link: /compute/compute-how-to/compute-ip/compute-ip-view.md
description: Инструкция по просмотру списка адресов и их параметров
- title: Создание IP-адреса
link: /compute/compute-how-to/compute-ip/compute-ip-create.md
description: Процедура создания нового IP-адреса в проекте
- title: Управление IP-адресами
link: /compute/compute-how-to/compute-ip/compute-ip-manager.md
description: Операции сохранения и переименования IP-адресов
- title: Удаление IP-адреса
link: /compute/compute-how-to/compute-ip/compute-ip-del.md
description: Удаление IP-адреса и освобождение ресурсов
---
# IP-адреса
@@ -0,0 +1,44 @@
# Управление IP-адресами
Раздел содержит инструкции по управлению IP-адресами: назначение виртуальным машинам, сохранение в проекте и присвоение имен.
## Назначить ВМ внешний IP-адрес
Внешний IP-адрес можно привязать ВМ при условиях:
- IP-адрес находится в статусе **Зарезервирован**;
- виртуальная машина и внешний IP-адрес находятся в одной [зоне доступности](../../compute-overview.md#зоны-доступности);
- внешний IP-адрес можно назначить только новой ВМ, существующей ВМ привязать внешний IP-адрес не получится.
Чтобы привязать внешний IP-адрес новой ВМ, то при создании ВМ в поле **IPv4-адрес** выберите внешний IP-адрес.
Если вам требуется отвязать внешний IP-адрес от существующей ВМ:
- убедитесь, что для IP-адреса не указан признак ****Автоудаление**, при необходимости [снимите признак **Автоудаление**](#сохранить-ip-адрес-в-проекте) у IP-адреса;
- [удалите ВМ](../compute-servers-manage.md#удалить-вм).
## Сохранить IP-адрес в проекте
При удалении ВМ её IP-адрес удаляется и не может быть повторно использован в проекте. Если вам требуется сохранить IP-адрес и использовать его для другой ВМ, то отключите автоудаление адреса. IP-адрес сохранится в вашем проекте и может быть назначен новой ВМ.
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Нажмите на имя адреса в списке IP-адресов.
6. На странице адреса нажмите кнопку **Изменить**, расположенную ниже флажка **Автоудаление**.
7. Снимите флажок **Автоудаление**, если он установлен.
8. Нажмите **Сохранить**.
## Присвоить имя IP-адресу
Имя IP-адреса отображается только на странице **Виртуальные машины → IP-адреса**. На параметрах виртуальной машины отображается значение IP-адреса.
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Нажмите на имя адреса в списке IP-адресов.
6. Нажмите на &hellip; и выберите **Переименовать**.
7. Введите новое имя IP-адреса.
8. Нажмите &#10003;.
@@ -0,0 +1,21 @@
# Просмотр IP-адресов
Раздел содержит инструкции по просмотру списка IP-адресов в проекте.
## Посмотреть список IP-адресов
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Отобразится список всех IP-адресов проекта.
## Посмотреть внешний IP-адрес
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. Отобразится список всех IP-адресов проекта.
6. Внешний IP-адрес сопоставлен с внутренним IP-адресом **10.0.0.10** и отмечен тегом **Внешний IP**. Значение внешнего IP-адреса указано в поле **Имя**.
7. Если для внешнего IP-адреса отображается статус **Зарезервирован**, то внешний IP-адрес [доступен для назначения](../compute-ip/compute-ip-manager#назначить-вм-внешний-ip-адрес).
@@ -0,0 +1,12 @@
---
section_links:
- title: Настройка site-to-site VPN с помощью VyOS
link: /compute/compute-how-to/compute-network/compute-vpn-vyos.md
description: Создание IPSEC-туннеля между частной сетью и Beeline Cloud с использованием VyOS 1.4.0
- title: Подключение ВМ закрытого контура к интернету
link: /compute/compute-how-to/compute-network/compute-network-inside.md
description: Настройка доступа в интернет для ВМ, созданных в зоне доступности Inside, и установка ПО на ВМ
---
# Сети
@@ -0,0 +1,122 @@
# Подключение ВМ закрытого контура к интернету
В зависимости от доступов ВМ в Интернет или VPN настройте DNS, NTP и другие службы (пакетный менеджер) для начала установки ПО.
## Пример конфигурации для службы обновления пакетов
1. Настройте сервис веб-прокси один из способов:
:::: tabs
= VyOS
1. Перейдите в режим конфигурирования:
```
configure
```
2. Включите слушание запросов (по умолчанию используется порт 3128):
```
set service webproxy listen-address 10.0.0.10 disable-transparent
```
3. Проверьте корректность конфигурации:
```
show service webproxy
```
4. Сохраните конфигурацию:
```
save
```
5. Примените конфигурацию:
```
commit
```
= Ubuntu
1. Обновление списка пакетов:
```
sudo apt update
```
2. Установка Tinyproxy:
```
sudo apt install tinyproxy
```
3. По умолчанию Tinyproxy может разрешать доступ только с локальной машины (127.0.0.1). Необходимо разрешить доступ устройствам из вашей локальной сети.
- откройте конфигурационный файл:
```
sudo nano /etc/tinyproxy/tinyproxy.conf
```
- настройте разрешение доступа с необходимых вам сетей, закомментировав (#) все остальные строки:
```
Allow 10.0.0.5/24
Allow 0.0.0.0/0 - разрешает доступ из любой сети
```
- установите порт (по умолчанию 8888):
```
Port 3128
```
- сохраните конфигурационный файл (Ctrl+O, Enter) и выйдите (Ctrl+X).
4. Запуск и проверка сервиса:
перезапустите сервис для применения новых настроек:
```
sudo systemctl restart tinyproxy
```
включите автозапуск (чтобы сервис прокси запускался после перезагрузки сервера):
```
sudo systemctl enable tinyproxy
```
проверьте статус (убедитесь, что он active (running)):
```
sudo systemctl status tinyproxy
```
::::
2. Настройка конфигурации (клиентская часть) на ВМ с ОС Ubuntu в зоне Inside:
- Создайте или отредактируйте конфигурационный файл для apt:
```
sudo nano /etc/apt/apt.conf.d/proxy.conf
```
- Добавьте следующие строки. Обратите внимание на синтаксис, который отличается от синтаксиса переменных окружения:
```
Acquire::http::Proxy "http://10.0.0.10:3128/";
Acquire::https::Proxy "http://10.0.0.10:3128/";
```
3. Сохраните и закройте файл. Теперь `sudo apt update` будет работать через прокси.
## Пример конфигурации для использования стороннего DNS-сервера на ВМ c ОС Ubuntu в Inside
Если вы измените DNS-серверы через конфигурационный файл Netplan (sudo nano/etc/netplan/*.yaml), эти настройки СОХРАНЯТСЯ после перезагрузки.
1. Отредактируйте файл *.yaml и добавьте блоки dhcp4-overrides и nameservers:
```
network:
version: 2
ethernets:
enp3s0:
dhcp4: true
set-name: "enp3s0"
dhcp4-overrides: # <--- Добавьте этот блок
use-dns: false # <--- Клиент не будет использовать DNS-сервера, полученные от DHCP-сервера
nameservers:
addresses: [CORP_DNS_IP] # <--- укажите IP-адрес требуемого DNS-сервера
```
2. Примените настройки:
```
sudo netplan apply
```
3. Проверьте корректность конфигурации:
```
resolvectl status
```
@@ -0,0 +1,290 @@
# Настройка site-to-site VPN с помощью VyOS
В этом руководстве рассмотрено создание VPN-туннеля site-to-site между частной сетью и Beeline Cloud с использованием VyOS версии 1.4.0.
В процессе выполнения этого руководства вы:
- настроите VPN-сервер IKEv2 на виртуальной машине с VyOS, расположенной в Beeline Cloud;
- подключитесь к VPN-серверу из частной сети;
- настроите маршрутизацию для беспрепятсвенного хождения трафика между частной сетью и Beeline Cloud.
Виртуальная частная сеть (VPN) позволяет надежно шифровать трафик, проходящий через ненадежные сети, например в кафе, на конференции или в аэропорту.
Internet Key Exchange v2 (IKEv2) — это протокол, обеспечивающий прямое туннелирование IPSEC между сервером и клиентом. В реализациях VPN IKEv2 IPSEC обеспечивает шифрование сетевого трафика. IKEv2 изначально поддерживается на некоторых платформах (OS X 10.11+, iOS 9.1+ и Windows 10) без необходимости установки дополнительных приложений и довольно плавно справляется с перебоями в работе клиентов.
## Перед началом работы
Условные обозначения:
- **customer site**: локальное защищенное пространство;
- **beeline cloud**: изолированное пространство в Beeline Cloud, в котором создаются ресурсы.
Для настройки site-to-site VPN понадобится:
- одна виртуальная машина с ОС VyOS версии 1.4.0 в **beeline cloud** в качестве [промежуточной ВМ (джамп-хоста)](./../compute-servers-jump-create.md);
- одна виртуальная машина с ОС VyOS версии 1.4.0, созданная в **customer site** с доступом в интернет с постоянным публичным IP-адресом `client real ip`.
- если в сети **customer site** используется ISO-образ VyOS, то установите OC VyOS на виртуальную машину согласно официальной документации.
![Схема](./image/ipsec.svg)
## 1. Посмотреть IP-адреса
Для настройки VPN-туннеля необходимо узнать публичный и внутренний IP-адреса виртуальных машин, на которых конфигурируется маршрутизатор VyOS.
В руководстве используются следующие значения IP-адресов виртуальных машин с ОС VyOS:
| IP-адрес | **beeline cloud** | **customer site** |
|---|---|---|
| публичный IP | 77.41.188.88 | 77.41.188.163 |
| внутренний IP | 10.0.0.10 | 172.16.0.10 |
### Узнать публичный IP-адрес маршрутизатора
Для маршрутизатора на стороне **customer site** IP-адреса можно узнать c помощью команд:
- для публичного IP-адреса:
```
curl ifconfig.me
```
- для внутреннего IP-адреса:
```
ip a
```
Для маршрутизатора на стороне **beeline cloud** публичный IP-адрес можно узнать на странице сервиса **Виртуальные машины** в разделе **IP-адреса**.
IP-адрес `10.0.0.10` является внутренним и сопоставляется с публичным IP-адресом (Floating IP или FIP). Значение публичного IP-адреса указано в поле **Имя** в разделе **IP-адреса**. По публичному IP-адресу можно подключиться к маршрутизатору VyOS по SSH.
## 2. Сгенерировать ключевые пары
1. Выполните команды для генерации ключевых пар на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
:::: tabs
= beeline cloud
- Откройте терминал и подключитесь к маршрутизатору VyOS сети **beeline cloud** по публичному IP-адресу:
```
ssh vyos@77.41.188.88
```
- Перейдите в режим конфигурирования:
```
configure
```
- Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав `Enter`:
```
run generate pki key-pair install 'beeline-cloud'
show pki key-pair 'beeline-cloud' public
```
Результатом команды будет публичный ключ.
= customer site
- Откройте еще один терминал и подключитесь к ВМ с VyOS **customer site** по внутреннему IP-адресу:
```
ssh vyos@172.16.0.10
```
- Перейдите в режим конфигурирования:
```
configure
```
- Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав `Enter`:
```
run generate pki key-pair install 'customer-site'
show pki key-pair 'customer-site' public
```
Результатом команды будет публичный ключ.
::::
2. Публичные ключи, полученные на шаге 1, необходимо перекрестно добавить на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
:::: tabs
= beeline cloud
```
set pki key-pair 'customer-site' public key 'FAAOCAQ8AMII...' # - ключ из customer site
```
= customer site
```
set pki key-pair 'beeline-cloud' public key 'MIIBIjANBgkqh...' # - ключ из beeline cloud
```
::::
## 3. Настроить IPSEC
1. Выберите сетевой интерфейс, на котором будет настраиваться IPSEC-туннель, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
:::: tabs
= beeline cloud
```
set vpn ipsec interface eth1
```
= customer site
- Узнайте имя сетевого интерфейса на маршрутизаторе, на котором будет настраиваться IPSEC:
```
show interfaces
```
- Настройте интерфейс IPSEC:
```
set vpn ipsec interface <имя_сетевого_интерфейса>
```
::::
2. Для настройки IPSEC-туннеля используется протокол IKE набора протоколов IPSEC, который имеет две фазы.
- для настройки первой фазы выполните команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
```
set vpn ipsec ike-group aes256-sha256 dead-peer-detection action 'restart'
set vpn ipsec ike-group aes256-sha256 dead-peer-detection interval '30'
set vpn ipsec ike-group aes256-sha256 dead-peer-detection timeout '120'
set vpn ipsec ike-group aes256-sha256 key-exchange 'ikev2'
set vpn ipsec ike-group aes256-sha256 lifetime '3600'
set vpn ipsec ike-group aes256-sha256 proposal 1 dh-group '19'
```
- для настройки второй фазы выполните команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
```
set vpn ipsec esp-group aes256-sha256 proposal 1 encryption aes256
set vpn ipsec esp-group aes256-sha256 proposal 1 hash sha256
set vpn ipsec esp-group aes256-sha256 lifetime '28800'
set vpn ipsec esp-group aes256-sha256 mode 'tunnel'
set vpn ipsec esp-group aes256-sha256 pfs 'dh-group19'
```
3. Настройте пиры и аутентификацию с использованием [публичных ключевых пар](#2-сгенерировать-ключевые-пары), выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
:::: tabs
= beeline cloud
```
set vpn ipsec site-to-site peer CUSTOMER-SITE authentication mode 'rsa'
set vpn ipsec site-to-site peer CUSTOMER-SITE authentication rsa local-key 'beeline-cloud'
set vpn ipsec site-to-site peer CUSTOMER-SITE authentication rsa remote-key 'customer-site'
```
= customer site
```
set vpn ipsec site-to-site peer BEELINE-CLOUD authentication mode 'rsa'
set vpn ipsec site-to-site peer BEELINE-CLOUD authentication rsa local-key 'customer-site'
set vpn ipsec site-to-site peer BEELINE-CLOUD authentication rsa remote-key 'beeline-cloud'
```
::::
4. Настройте для пиров адреса подключения, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
На этом шаге [укажите ваши значения IP-адресов](#1-посмотреть-ip-адреса) виртуальных машин с VyOS.
:::: tabs
= beeline cloud
```
set vpn ipsec site-to-site peer CUSTOMER-SITE ike-group 'aes256-sha256'
set vpn ipsec site-to-site peer CUSTOMER-SITE local-address '10.0.0.10'
set vpn ipsec site-to-site peer CUSTOMER-SITE remote-address '77.41.188.163'
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 esp-group 'aes256-sha256'
set vpn ipsec site-to-site peer CUSTOMER-SITE default-esp-group 'aes256-sha256'
```
= customer site
```
set vpn ipsec site-to-site peer BEELINE-CLOUD ike-group 'aes256-sha256'
set vpn ipsec site-to-site peer BEELINE-CLOUD local-address '172.16.0.10'
set vpn ipsec site-to-site peer BEELINE-CLOUD remote-address '77.41.188.88'
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 esp-group 'aes256-sha256'
set vpn ipsec site-to-site peer BEELINE-CLOUD default-esp-group 'aes256-sha256'
```
::::
5. Настройте статические маршруты, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
Для примера, в **customer site** используется сеть с адресом `172.16/16`, в **beeline cloud** — две сети: `10/8` и `192.168/16`.
:::: tabs
= beeline cloud
```
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 local prefix '10.0.0.0/8'
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 local prefix '192.168.0.0/16'
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 remote prefix '172.16.0.0/16'
```
= customer site
```
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 local prefix '172.16.0.0/16'
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 remote prefix '10.0.0.0/8'
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 remote prefix '192.168.0.0/16'
```
::::
6. Укажите *инициатора* и *ответчика*, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
:::: tabs
= beeline cloud
```
set vpn ipsec site-to-site peer CUSTOMER-SITE connection-type respond
```
= customer site
```
set vpn ipsec site-to-site peer BEELINE-CLOUD connection-type initiate
```
::::
7. Сохраните конфигурации, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
```
save
```
8. Примените конфигурации, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
```
commit
```
## 4. Проверить соединение
Выполните команду на любом из маршрутизаторов в сети **beeline cloud** или в сети **customer site**:
```
run show vpn ipsec status
ping -c 3 172.16.0.10
ping -c 3 10.0.0.10
```
## Диагностика неисправностей
Если во время применения конфигурации команда `commit` завершится с ошибкой, то попробуйте выполнить команды для диагностики неисправностей.
Основные команды для диагностики проблем:
- `run show vpn ipsec status`
- `run show vpn ipsec state`
- `run show vpn ipsec sa`
- `run show vpn ipsec policy`
- `run show log vpn`
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 46 KiB

@@ -0,0 +1,19 @@
# Группы размещения
Группы размещения — это правила размещения виртуальных машин на физических хостах. Правила размещения позволяют создавать виртуальные машины на разных или на одном хосте. Политика размещения виртуальных машин действует в рамках одной зоны доступности.
- Правило `Affinity` размещает ВМ обязательно на одном физическом хосте.
- Правило `Soft-Affinity` размещает ВМ по возможности на одном физическом хосте.
- Правило `Anti-Affinity` размещает ВМ обязательно на разных физических хостах. Такое размещение повышает производительность и предотвращает недоступность ВМ при отказе хоста.
- Правило `Soft-Anti-Affinity` размещает ВМ по возможности на разных физических хостах.
::: warning Важно
В группу размещения можно добавить новую ВМ. Во время создания ВМ укажите группу размещения, к которой будет принадлежать ВМ.
Существующая ВМ не может быть добавлена в группу размещения.
ВМ может быть создана в группе размещения, если для выполнения правила есть ресурсы в зоне доступности. Если ресурсов нет, то ВМ не будет создан.
:::
@@ -0,0 +1,17 @@
# Создание группы размещения
Раздел описывает процедуру создания новой группы размещения. Вы можете настроить параметры размещения виртуальных машин, выбрать имя и определить правила распределения на физических хостах.
## Создать группу размещения
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Группы размещения**.
5. Нажмите **Создать группу**.
6. Введите параметры группы размещения:
- **Имя группы размещения**: введите имя группы размещения.
- выберите правило размещения.
- **Зона доступности**: выберите зону доступности, в которой будут создаваться виртуальные машины по правилу размещения.
- добавьте тег группе размещения при необходимости.
7. Нажмите **Создать группу**.
@@ -0,0 +1,11 @@
# Удаление группы размещения
Раздел описывает процедуру удаления группы размещения.
## Удалить группу размещения
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Группы размещения**.
5. Справа от названия группы размещения нажмите кнопку ![del](../image/delete.png).
@@ -0,0 +1,18 @@
---
section_links:
- title: Обзор
link: /compute/compute-how-to/compute-placement-groups/compute-placement-groups-about.md
description: Типы групп размещения и правила распределения ВМ на физических хостах
- title: Создание группы размещения
link: /compute/compute-how-to/compute-placement-groups/compute-placement-groups-create.md
description: Создание новой группы размещения
- title: Управление группами размещения
link: /compute/compute-how-to/compute-placement-groups/compute-placement-groups-manager.md
description: Добавление ВМ в группы и редактирование параметров размещения
- title: Удаление группы размещения
link: /compute/compute-how-to/compute-placement-groups/compute-placement-groups-del.md
description: Удаление группы размещения
---
# Группы размещения
@@ -0,0 +1,26 @@
# Управление группами размещения
Раздел позволяет управлять существующими группами размещения. Доступны операции добавления виртуальных машин в группах, а также редактирование параметров размещения.
## Добавить виртуальную машину в группу размещения
Принадлежность виртуальной машины к группе размещения указывается во время [создания ВМ](../compute-servers-create.md#создать-виртуальную-машину). Уже созданную виртуальную машину нельзя добавить в группу размещения.
## Редактировать группу размещения
В группе размещения можно изменить название группы и редактировать теги.
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Группы размещения**.
5. Переименовать группу размещения:
- Нажмите на название группы в списке групп.
- Нажмите на &hellip; и выберите **Переименовать**.
- Введите новое имя группы размещения.
- Нажмите &#10003;.
6. Редактировать теги группы размещения:
- Нажмите на название группы в списке групп.
- Нажмите **Редактировать теги**.
- Добавьте или удалите теги.
- Нажмите **Сохранить**.
@@ -1,44 +1,48 @@
# Создание виртуальные машины # Создание виртуальной машины
## Создать виртуальную машину ## Создать виртуальную машину
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
5. Нажмите **Создать виртуальную машину**. 5. Нажмите **Создать виртуальную машину**.
6. В блоке **Имя и расположение** укажите имя и расположение ВМ: 6. В блоке **Имя и расположение** укажите имя и расположение ВМ:
- **Имя машины**: введите название ВМ: - **Имя машины**: введите название ВМ по правилам:
- допустимая длина 63 символа с учетом зоны DNS проекта; - длина от 3 до 63 символов;
- используйте только строчные латинские буквы, цифры и дефис;
- не используйте дефис в начале или в конце имени.
- **Зона доступности**: выберите подходящую [зону доступности](../compute-overview.md#зоны-доступности). - **Зона доступности**: выберите подходящую [зону доступности](../compute-overview.md#зоны-доступности).
- Укажите количество создаваемых ВМ. 7. В блоке **Образ загрузочного диска** выберите [тип и версию операционной системы](./../compute-overview.md#операционная-система).
7. В блоке **Выбор образа** выберите [тип и версию операционной системы](./../compute-overview.md#операционная-система). 8. В блоке **Конфигурация** выберите количество vCPU и RAM. Наборы ресурсов заранее скомпонованы по оптимальным параметрам.
8. В блоке **Конфигурация** выберите количество ОЗУ и ЦПУ. Наборы ресурсов заранее скомпонованы по оптимальным параметрам.
::: tip Информация ::: tip Информация
При выборе ресурсов рекомендуется в первую очередь ориентироваться на требуемое количество ОЗУ. При выборе ресурсов рекомендуется в первую очередь ориентироваться на требуемое количество RAM.
::: :::
9. В блоке **Диски** настройте загрузочный диск и, при необходимости, добавьте дополнительные диски: 9. В блоке **Диски** настройте загрузочный диск и, при необходимости, добавьте дополнительные диски:
- **Загрузочный диск**: выберите тип хранения и укажите размер загрузочного диска. - **Загрузочный диск**: выберите [тип диска](../compute-overview.md#диски) и укажите размер загрузочного диска.
- Рекомендуется создать дополнительный диск для размещения ваших данных: нажмите **Добавьте диск** и настройте дополнительный диск. [Дополнительный диск можно создать](#добавить-диск) позже. - Рекомендуется создать дополнительный диск для размещения ваших данных: нажмите **Добавить диск** и настройте дополнительный диск. [Дополнительный диск можно создать](#добавить-диск) позже.
10. В блоке **Доступ** укажите логин пользователя для подключения к ВМ:
- **Логин**: введите логин пользователя по правилам:
- длина от 1 до 32 символов;
- используйте только строчные латинские буквы, цифры и символы: дефис, подчеркивание и точку;
- не используйте дефис и точку в начале;
- не используйте дефис в конце имени.
- выберите один из способов подключения к ВМ:
- **SSH-ключ**: выберите SSH-ключи, с помощью которых вы можете подключаться к ВМ по SSH. Если подходящий SSH-ключ отсутствует, то нажмите [**Создать ключ**](../../admin/ssh.md#создать-ssh-ключ).
- **Пароль**: придумайте пароль для подключения к ВМ.
::: warning Важно ::: warning Важно
К ВМ можно подключить не более 28 дисков, включая загрузочный. Обязательно сохранить пароль. В дальнейшем сменить и восстановить пароль невозможно.
:::
10. Выберите SSH-ключи, с помощью которых вы можете подключаться к ВМ по SSH. Если подходящий SSH-ключ отсутствует, то нажмите [**Создать ключ**](../../admin/ssh.md#создать-ssh-ключ).
11. В блоке **Настройки сети** выберите:
- **IPv4-адрес**: выберите способ получения внутреннего IP-адреса для ВМ:
- выберите **Автоматически**, чтобы получить IP-адрес автоматически;
- выберите адрес из списка. В списке адресов отображаются [созданные вручную IP-адреса](compute-ip.md#создать-ip-адрес) и [сохраненные IP-адреса](compute-ip.md#сохранить-ip-адрес-в-проекте), которые доступны для переиспользования.
::: warning Важно
Вашей организации предоставлен один [публичный IP-адрес](compute-ip.md#типы-адресов). Назначьте публичный IP-адрес ВМ, создаваемой в DMZ-зоне, и получите доступ из интернета к виртуальным машинам.
::: :::
11. В блоке **Настройка сети** выберите:
- **IPv4-адрес**: выберите способ получения IP-адреса для ВМ:
- выберите **Внутренний (назначится автоматически)**, чтобы получить IP-адрес автоматически, автоматически назначаются [внутренние IP-адреса](../compute-how-to/compute-ip/compute-ip-about.md#внутренние-ip-адреса);
- выберите адрес из списка. В списке адресов отображается [зарезервированные IP-адреса](../compute-how-to/compute-ip/compute-ip-about.md#статусы-ip-адресов).
12. В блоке **Размещения** выберите: 12. В блоке **Размещения** выберите:
- **Группа размещения**: выберите правило размещения ВМ на физическом хосте. [Группу размещения](compute-affinity.md) создайте заранее. - **Группа размещения**: выберите правило размещения ВМ на физическом хосте. [Группу размещения](./compute-placement-groups/compute-placement-groups-about.md) создайте заранее.
13. Установите флажок **Расширенные параметры**, чтобы использовать [cloud-init](https://cloudinit.readthedocs.io/en/latest/) для настройки ВМ. 13. Включите опцию **Расширенные параметры**, чтобы использовать [cloud-init](https://cloudinit.readthedocs.io/en/latest/) для настройки ВМ.
14. Нажмите **Создать виртуальную машину**. 14. Нажмите **Создать виртуальную машину**.
ВМ появится на странице сервиса **Виртуальные машины** в разделе **Виртуальные машины** в статусе `Cоздается`. Выполняется сборка виртуального ВМ, назначается [IP-адрес](compute-ip.md) и полное доменное имя (FQDN). После окончания сборки ВМ перейдет в статус `Включена`. ВМ появится на странице сервиса **Виртуальные машины** в разделе **Виртуальные машины** в статусе `Cоздается`. Выполняется сборка виртуального ВМ, назначается [IP-адрес](../compute-how-to/compute-ip/compute-ip-manager.md) и полное доменное имя (FQDN). После окончания сборки ВМ перейдет в статус `Включена`.
Виртуальная машина будет создана с `root`-правами.
## Добавить диск ## Добавить диск
@@ -0,0 +1,51 @@
# Создание ВМ джамп-хоста
Промежуточная ВМ (джамп-хост) — это виртуальная машина с внешним IP-адресом, созданная в специальной приграничной зоне доступности `DMZ` и имеющая доступ к внутренней сети. Джамп-хост является шлюзом между интернетом и внутренней сетью. Через джамп-хост можно подключиться к ВМ по SSH по внутреннему IP-адресу.
## 1. Посмотреть внешний IP-адрес и его статус
Для создания промежуточной ВМ с доступом в/из интернета понадобится внешний IP-адрес.
Перед созданием промежуточной ВМ посмотрите статус и значение внешнего IP-адреса:
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **IP-адреса**.
5. В списке найдите IP-адрес, который сопоставлен с IP-адресом `10.0.0.10`.
6. Значение внешнего IP-адреса указано в поле **Имя**.
7. Убедитесь, что IP-адрес, который сопоставлен с IP-адресом `10.0.0.10`, находится в статусе `Зарезервирован`.
Внешний IP-адрес может быть занят другой виртуальной машиной. Если вы не планируете использовать эту ВМ в качестве джамп-хоста, то [отвяжите внешний IP-адрес](../compute-how-to/compute-ip/compute-ip-manager.md#назначить-вм-внешний-ip-адрес) от этой ВМ и [создайте новую промежуточную ВМ с FIP](#2-создать-промежуточную-вм).
## 2. Создать промежуточную ВМ
Чтобы ВМ была доступна из интернета и имела выход в интернет, ВМ создается:
- в [зоне доступности](./../compute-overview.md#зоны-доступности) `DMZ`;
- с внешним IP-адресом, который сопоставлен с внутренним IP-адресом `10.0.0.10`;
- с образом операционной системы:
- Linux для реализации базовой сетевой функциональности;
- VyOS для реализации расширенной сетевой функциональности.
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**.
5. Нажмите **Создать виртуальную машину**.
6. В блоке **Имя и расположение** укажите имя и расположение ВМ:
- **Имя машины**: введите название ВМ.
- **Зона доступности**: выберите зону доступности, содержащую в названии `DMZ`.
:::warning Важно
Джамп-хост и внешний IP-адрес должны находиться в одной [зоне доступности `DMZ`](./../compute-overview.md#зоны-доступности) для связанности из интернета.
:::
7. В блоке **Выбор образа** выберите [тип и версию операционной системы](./../compute-overview.md#операционная-система).
8. В блоке **Конфигурация** выберите количество vCPU и RAM.
9. В блоке **Диски** настройте загрузочный диск:
- **Загрузочный диск**: выберите [тип диска](./../compute-overview.md#диски) и укажите размер загрузочного диска.
10. Выберите SSH-ключ для подключения к ВМ по SSH.
11. В блоке **Доступ** укажите логин пользователя для подключения к ВМ:
- **Логин**: введите логин пользователя латинскими символами в нижнем регистре.
12. В блоке **Настройки сети** выберите:
- **IPv4-адрес**: выберите из списка внешний IP-адрес.
13. Нажмите **Создать виртуальную машину**.
@@ -2,22 +2,24 @@
## Посмотреть список ВМ ## Посмотреть список ВМ
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
## Посмотреть свойства ВМ ## Посмотреть свойства ВМ
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
5. Нажмите на имя ВМ. 5. Нажмите на имя ВМ.
6. На вкладке **Общая информация** показана информация о ВМ: 6. На вкладке **Общая информация** показана информация о ВМ:
- **Логин**: логин пользователя для подключения к ВМ.
- **Зона доступности**: [зона доступности](./../compute-overview.md#зоны-доступности) ВМ.
- **Идентификатор**: уникальный идентификатор ВМ. - **Идентификатор**: уникальный идентификатор ВМ.
- **Внутренний FQDN**: полное доменное имя ВМ. - **Внутренний FQDN**: полное доменное имя ВМ.
- **IPv4 адрес**:внутренний IP-адрес, присвоенный ВМ. - **Внутренний IP-адрес**:внутренний IP-адрес, присвоенный ВМ.
- **Образ**: операционная система, установленная на ВМ. - **Образ**: операционная система, установленная на ВМ.
- **Конфигурация**: конфигурация ЦПУ и ОЗУ. - **Конфигурация**: конфигурация ЦПУ и ОЗУ.
- **Группа размещения**: группа размещения ВМ. - **Группа размещения**: группа размещения ВМ.
@@ -30,7 +32,7 @@
У ВМ можно изменить конфигурацию ЦПУ и ОЗУ: увеличить или уменьшить количество вычислительных ресурсов. Выбор конфигурации предоставляется из линейки доступных тарифов. У ВМ можно изменить конфигурацию ЦПУ и ОЗУ: увеличить или уменьшить количество вычислительных ресурсов. Выбор конфигурации предоставляется из линейки доступных тарифов.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
@@ -46,7 +48,7 @@
Выключение ВМ не предполагает освобождение вычислительных ресурсов, зарезервированных за этим ВМ. Выключение ВМ не предполагает освобождение вычислительных ресурсов, зарезервированных за этим ВМ.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
@@ -65,7 +67,7 @@
## Включить ВМ ## Включить ВМ
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
@@ -84,7 +86,7 @@
Перезагрузка ВМ предполагает корректное завершение работы операционный системы без отключения питания. Перезагрузка ВМ предполагает корректное завершение работы операционный системы без отключения питания.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
@@ -105,7 +107,7 @@
Принудительная перезагрузка ВМ предполагает аппаратное выключение и включение. Несохраненные данные могут быть потеряны. Принудительная перезагрузка ВМ предполагает аппаратное выключение и включение. Несохраненные данные могут быть потеряны.
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
@@ -124,7 +126,7 @@
## Назначить ВМ IP-адрес ## Назначить ВМ IP-адрес
Если вам необходимо переиспользовать IP-адрес, то перед удалением ВМ [сохраните IP-адрес](compute-ip.md#сохранить-ip-адрес-в-проекте). При создании ВМ этот IP-адрес будет доступен для назначения. Если вам необходимо переиспользовать IP-адрес, то перед удалением ВМ [сохраните IP-адрес](../compute-how-to/compute-ip/compute-ip-manager.md#сохранить-ip-адрес-в-проекте). При создании ВМ этот IP-адрес будет доступен для назначения.
::: warning Важно ::: warning Важно
IP-адрес можно назначить новой ВМ. Назначение IP-адреса существующей ВМ не предусмотрено. IP-адрес можно назначить новой ВМ. Назначение IP-адреса существующей ВМ не предусмотрено.
@@ -136,13 +138,13 @@ IP-адрес можно назначить новой ВМ. Назначени
Системный диск будет удален вместе с ВМ. Если к ВМ подключены дополнительные диски, то при удалении ВМ диски будут отключены. В дальнейшем эти диски можно подключить к другой ВМ. Системный диск будет удален вместе с ВМ. Если к ВМ подключены дополнительные диски, то при удалении ВМ диски будут отключены. В дальнейшем эти диски можно подключить к другой ВМ.
IP-адрес будет удален вместе с ВМ. Чтобы оставить IP-адрес, перед удалением ВМ [сохраните IP-адрес в проекте](../compute-how-to/compute-ip.md#сохранить-ip-адрес-в-проекте). Сохраненный IP-адрес после удаления ВМ остается в вашем проекте и будет доступен для назначения новой ВМ. IP-адрес будет удален вместе с ВМ. Чтобы оставить IP-адрес, перед удалением ВМ [сохраните IP-адрес в проекте](../compute-how-to/compute-ip/compute-ip-manager.md#сохранить-ip-адрес-в-проекте). Сохраненный IP-адрес после удаления ВМ остается в вашем проекте и будет доступен для назначения новой ВМ.
::: danger Предупреждение ::: danger Предупреждение
Удаление ВМ необратимо. Все данные будут удалены без возможности восстановления. Удаление ВМ необратимо. Все данные будут удалены без возможности восстановления.
::: :::
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/). 1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Выберите нужный проект в верхнем меню **Проекты**. 2. Выберите нужный проект в верхнем меню **Проекты**.
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**. 3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
4. В левом меню откройте раздел **Виртуальные машины**. 4. В левом меню откройте раздел **Виртуальные машины**.
+11
View File
@@ -0,0 +1,11 @@
---
section_links:
- title: Техническое описание
link: /compute/compute-overview.md
description: Информация о зонах доступности, физических платформах сервиса
- title: Квоты и лимиты
link: /compute/compute-quatos.md
description: Ограничения на количество ресурсов в сервисе
---
# Обзор сервиса
+54 -66
View File
@@ -1,6 +1,4 @@
# Обзор сервиса # Техническое описание
Виртуальные машины — сервис для создания и управления виртуальными машинами.
## Виртуальная машина ## Виртуальная машина
@@ -10,24 +8,67 @@
- количество CPU; - количество CPU;
- объем RAM; - объем RAM;
- тип и размер диска; - тип и размер диска;
- регион доступности. - зона доступности.
## Зоны доступности ## Зоны доступности
Виртуальную машину можно создать в одной из зон доступности: Зона доступности — это один или несколько центров обработки данных (ЦОД), в которых могут быть размещены компоненты облачной инфраструктуры.
- `Inside` — внутренняя зона не подразумевает доступ из интернета к виртуальным машинам. | Зона доступности |Дата-центр | Сетевой периметр |
- `DMZ` — демилитаризованная зона подразумевает доступ из интернета к виртуальным машинам. |---|---|---|
|`msk-dc-1`|[Останкино](https://dc.ostankino.ru/)|`Inside`, `DMZ`|
<!--|`msk-dc-3`|[Oxygen](https://o2dc.ru/)|
|`msk-dc-5`|[Филанко](https://datahouse.ru/datacenter/nagornaya/)|
|`ytc-dc-1`|[ЯТЦ Модуль 3](../platform/zones.md#доступные-центры-обработки-данных)|
|`ytc-dc-2`|[ЯТЦ Модуль 5](../platform/zones.md#доступные-центры-обработки-данных)|
|`ytc-dc-3`|[ЯТЦ Модуль 6](../platform/zones.md#доступные-центры-обработки-данных)|-->
К виртуальной машине, созданной в зоне `DMZ`, можно подключиться из интернета по SSH. Доступны сетевые периметры:
Доступ из интернета к виртуальным машинам, созданным в зоне `Inside` осуществляется: - `Inside` — закрытый контур, не подразумевает доступ в/из интернета к виртуальным машинам. По умолчанию все ВМ в зоне `Inside` имеют маршруты до сетей `Inside` и `DMZ`.
- `DMZ` — демилитаризованная зона, подразумевает доступ из интернета к виртуальным машинам. По умолчанию все ВМ в зоне `DMZ` с внутренним IP-адресом имеют доступ в интернет через служебный внешний IP-организации организации, недоступный пользователям для управления.
- создайте ВМ в зоне `DMZ`; ## Шаблоны конфигурации ВМ
- назначьте ВM публичный IP-адрес;
- [подключитесь к ВМ](./compute-how-to/compute-connect.md#подключиться-к-вм) `Inside`-зоны через виртуальную машину `DMZ`-зоны.
## Размещение виртуальных машин При создании виртуальной машины доступны готовые конфигурации CPU и RAM. Произвольные конфигурации недоступны.
## Физические платформы
Сервис предоставляет различные виды физических процессоров. Выбор платформы гарантирует тип физического процессора в дата-центре и определяет набор допустимых конфигураций CPU и RAM.
| Платформа | Процессор |Частота, ГГц | Кол-во физических CPU на сервере | RAM, ГБ | Зона доступности (*)|Характеристики на 1 ВМ (**)|
|---|---|---|---|---|---|---|
| Intel Ice Lake | Intel Xeon Platinum 8358 | 2,6 | 2x32 |1536|[Доступна во всех зонах](#зоны-доступности)|**Кол-во vCPU:** до 32<br> **Объем RAM:** до 256 ГБ|
| Intel Ice Lake | Intel Xeon Platinum 8378A | 3 | 2x32 |1536|[Доступна во всех зонах](#зоны-доступности)|**Кол-во vCPU:** до 32<br> **Объем RAM:** до 256 ГБ|
- (*) — возможно изменение платформы на аналогичную.
- (**) — индивидуальные конфигурации vCPU и RAM — по запросу.
## Диски
Хранение данных организовано с использованием сетевых дисков. Диск создается в определенной зоне доступности. Каждый диск автоматически реплицируется внутри своей зоны доступности, что обеспечивает надежное хранение данных.
Система хранения построена на платформе Ceph. Используются блочные устройства хранения данных — `NBD (network block device)`. Доступен тип диска — `SSD`.
## Операционная система
Для виртуальных машин подготовлены образы операционных систем Linux.
В операционных системах доступен `root`-пользователь. Для подключения к ВМ используется имя пользователя, заданное при создании ВМ.
| Операционная система | Версия | Размер загрузочного диска |
|---|---|---|
| AstraLinux | 1.8.2 | 3 ГБ |
| CentOS | 9 | 10 ГБ |
| CentOS | 10 | 10 ГБ |
| Debian | 12 | 5 ГБ |
| Rocky Linux | 9 | 10 ГБ |
| Ubuntu | 20.04 | 5 ГБ |
| Ubuntu | 22.04 | 5 ГБ |
| VyOS | 13 | 2 ГБ |
| VyOS | 14 | 2 ГБ |
## Группы виртуальных машин
Группу виртуальных машин внутри одной зоны доступности можно объединить в соответствии с определенной политикой размещения. Доступны политики: Группу виртуальных машин внутри одной зоны доступности можно объединить в соответствии с определенной политикой размещения. Доступны политики:
@@ -38,56 +79,3 @@
- Правило `Anti-Affinity` размещает ВМ обязательно на разных физических хостах. Такое размещение повышает производительность и предотвращает недоступность ВМ при отказе хоста. - Правило `Anti-Affinity` размещает ВМ обязательно на разных физических хостах. Такое размещение повышает производительность и предотвращает недоступность ВМ при отказе хоста.
- Правило `Soft-Anti-Affinity` размещает ВМ по возможности на разных физических хостах. - Правило `Soft-Anti-Affinity` размещает ВМ по возможности на разных физических хостах.
## CPU и RAM
### Тарифы
При создании виртуальной машины доступны готовые конфигурации CPU и RAM.
| Группа | slug | ЦПУ | ОЗУ Гбайт |
|:------------|:------------|:----|:----------|
| маленькие | cpu2ram2 | 2 | 2 |
| маленькие | cpu2ram4 | 2 | 4 |
| маленькие | cpu2ram8 | 2 | 8 |
| маленькие | cpu2ram16 | 2 | 16 |
| маленькие | cpu4ram4 | 4 | 4 |
| маленькие | cpu4ram8 | 4 | 8 |
| маленькие | cpu4ram16 | 4 | 16 |
| маленькие | cpu4ram32 | 4 | 32 |
| средние | cpu8ram16 | 8 | 16 |
| средние | cpu8ram32 | 8 | 32 |
| средние | cpu8ram64 | 8 | 64 |
| средние | cpu8ram128 | 8 | 128 |
| средние | cpu16ram4 | 16 | 4 |
| средние | cpu16ram8 | 16 | 8 |
| средние | cpu16ram16 | 16 | 16 |
| средние | cpu16ram32 | 16 | 32 |
| средние | cpu16ram64 | 16 | 64 |
| средние | cpu16ram128 | 16 | 128 |
| большие | cpu24ram48 | 24 | 48 |
| большие | cpu24ram96 | 24 | 96 |
## Диски
Хранение данных организовано с использованием сетевых дисков. Диск создается в определенной зоне доступности. Каждый диск автоматически реплицируется внутри своей зоны доступности, что обеспечивает надежное хранение данных.
Доступны типы дисков:
- NBD.
## Операционная система
Для виртуальных машин подготовлены образы операционных систем.
| Операционная система | Версия | Размер загрузочного диска | Имя пользователя |
|---|---|---|---|
| AstraLinux | 1.8.2 | 3 Гб | astra|
| CentOS | 9 | 10 Гб | centos|
| CentOS | 10 | 10 Гб | centos|
| Debian | 12 | 5 Гб | debian|
| Ubuntu | 20.04 | 5 Гб | ubuntu |
| Ubuntu | 22.04 | 5 Гб | ubuntu |
| VyOS | 13 | 2 Гб | vyos |
| VyOS | 14 | 2 Гб | vyos |
<!--| Rocky Linux | 9 | 10 Гб | rockylinux |-->
+37
View File
@@ -0,0 +1,37 @@
# Квоты и лимиты
Квоты — это организационные ограничения на количество доступных ресурсов в сервисе. В некоторых случаях квоты могут быть увеличены или уменьшены по запросу.
Лимиты — это технические ограничения на количество доступных ресурсов в сервисе. Ограничения, обычно, связаны с характеристиками оборудования и особенностями архитектуры.
## Квоты
| Вид ограничения | Значение |
|---|---|
|Количество публичных IP-адресов | 1 |
|Суммарное количество vCPU для всех виртуальных машин |32|
|Суммарный объем RAM для всех виртуальных машин | 256 ГБ|
|Суммарный объем дисков, включая [образы загрузочных дисков](../compute/compute-overview.md#операционная-система) | 200 ГБ |
Доступные шаблоны конфигураций vCPU и RAM виртуальных машин:
| Конфигурация | vCPU | RAM, ГБ |
|:------------|:----|:----------|
| cpu2ram2 | 2 | 2 |
| cpu2ram4 | 2 | 4 |
| cpu2ram8 | 2 | 8 |
| cpu2ram16 | 2 | 16 |
| cpu4ram4 | 4 | 4 |
| cpu4ram8 | 4 | 8 |
| cpu4ram16 | 4 | 16 |
| cpu4ram32 | 4 | 32 |
| cpu8ram16 | 8 | 16 |
| cpu8ram32 | 8 | 32 |
| cpu8ram64 | 8 | 64 |
| cpu8ram128 | 8 | 128 |
| cpu16ram4 | 16 | 4 |
| cpu16ram8 | 16 | 8 |
| cpu16ram16 | 16 | 16 |
| cpu16ram32 | 16 | 32 |
| cpu16ram64 | 16 | 64 |
| cpu16ram128 | 16 | 128 |
+2 -2
View File
@@ -1,10 +1,10 @@
--- ---
section_links: section_links:
- title: Обзор сервиса - title: Обзор сервиса
link: /compute/compute-overview.md link: /compute/compute-overview-index.md
description: Обзор сервиса, решаемые задачи, характеристики оборудования description: Обзор сервиса, решаемые задачи, характеристики оборудования
- title: Виртуальные машины - title: Виртуальные машины
link: /compute/compute-how-to/compute-Index.md link: /compute/compute-how-to/compute-index.md
description: Создание виртуальной машины и подключение к ней, управление виртуальной машиной description: Создание виртуальной машины и подключение к ней, управление виртуальной машиной
- title: Диски - title: Диски
link: /compute/compute-how-to/compute-disks.md link: /compute/compute-how-to/compute-disks.md
+39
View File
@@ -0,0 +1,39 @@
# DNS в виртуальном дата-центре
DNS (Domain Name System) преобразует доменные имена в IP-адреса. Виртуальный дата-центр использует DNS для:
- доступа к внешним ресурсам.
- корректной работы приложений, которые обращаются по доменным именам.
- разрешения имен серверов и сервисов внутри сети.
## Публичные DNS-серверы
Вы можете использовать любой из DNS-серверов для настройки работы виртуального дата-центра. Выбор зависит от ваших требований к скорости, надежности и политике конфиденциальности.
### Российские
- Яндекс.DNS:
`77.88.8.8`
`77.88.8.1`
- Ростелеком DNS:
`77.88.8.2`
`77.88.8.3`
### Международные
- Google Public DNS:
`8.8.8.8`
`8.8.4.4`
- Quad9 DNS:
`9.9.9.9`
`49.112.112.112`
- OpenDNS (Cisco):
`208.67.222.222`
`208.67.220.220`
## Важная информация
Компания не несет ответственности за работу и конфиденциальность публичных DNS-сервисов. Политику конфиденциальности и обработки данных вы найдете на сайте выбранного провайдера DNS.
+8 -10
View File
@@ -12,14 +12,14 @@ features:
- title: Начало работы - title: Начало работы
icon: coffee icon: coffee
link: /start/index link: /start/index
- title: Обзор платформы - title: Облачная платформа
icon: tv_modern icon: tv_modern
link: /platform/index link: /platform/index
- title: Сервисы - title: Сервисы
scroll_to: "#home-services-section-title" scroll_to: "#home-services-section-title"
icon: cloud icon: cloud
- title: Администрирование - title: Администрирование
link: '' link: /admin/index
icon: profile_circled icon: profile_circled
items: [ items: [
{ title: Пользователи }, { title: Пользователи },
@@ -34,12 +34,11 @@ features:
{ title: API } { title: API }
] ]
- title: Мониторинг - title: Мониторинг
scroll_to: ""
icon: graph_up icon: graph_up
link:
- title: Биллинг - title: Биллинг
icon: wallet icon: wallet
link: /billing/index link:
disabled: true
- title: Безопасность и стандарты - title: Безопасность и стандарты
icon: security icon: security
link: '' link: ''
@@ -87,14 +86,12 @@ services:
- title: SD-WAN. Распределенные сети - title: SD-WAN. Распределенные сети
description: В работе description: В работе
icon: network icon: network
- title: Резервное копирование и восстановление - title: Резервное копирование
articles: articles:
- title: Резервное копирование - title: Резервное копирование
description: В работе description: Создание, хранение и восстановление копии виртуальных машин
icon: refresh
- title: Аварийное восстановление данных
description: В работе
icon: refresh icon: refresh
link: /backups/index
- title: Базы данных - title: Базы данных
articles: articles:
- title: ClickHouse - title: ClickHouse
@@ -139,6 +136,7 @@ services:
- title: Виртуальные рабочие столы (VDI) - title: Виртуальные рабочие столы (VDI)
description: В работе description: В работе
icon: magic icon: magic
link: /vdi/index
- title: Платформа офисного пространства - title: Платформа офисного пространства
description: В работе description: В работе
icon: magic icon: magic
+20
View File
@@ -0,0 +1,20 @@
# Мониторинг
Мониторинг позволяет отслеживать использование ресурсов в Beeline Cloud. С помощью мониторинга можно своевременно выявлять превышение лимитов, оптимизировать распределение ресурсов и предотвращать возможные проблемы в работе инфраструктуры.
::: tip Информация
Новые виртуальные машины появляются в мониторинге через 30 минут после создания.
:::
## Обзор
В этом разделе вы можете контролировать следующие метрики:
- Включенные CPU в VDC, `шт.`.
- Включенная оперативная память, `ГБ`.
- CPU Ready, `%`.
- Использование CPU, `%`.
- Использование оперативной памяти, `%`.
- RAM Swap + Balloon, `%`.
Выбрать интервал времени, за который будут показаны данные, можно в поле **Период**. Вы также можете включить автоматическое обновление графиков с заданной периодичностью в поле **Автообновление**.
+27
View File
@@ -0,0 +1,27 @@
# Обзор
## Сервисы
Каждый сервис Beeline Cloud предоставляет определенный набор облачных ресурсов и инструменты для управления этими ресурсами. Все сервисы Beeline Cloud объединены в каталог и размещены в личном кабинете в разделе **Сервисы**.
Список сервисов можно посмотреть в разделе **Сервисы** в личном кабинете.
Сервисы с отметкой `По заявке` подключаются по запросу специалистами Beeline Cloud. Сервисы без отметки `По заявке` — цифровые, и подключаются самостоятельно.
Доступ к сервисам Beeline Cloud предоставляется [зарегистрированным пользователям](../start/getting-started.md#1-регистрация-в-beeline-cloud).
## Центры обработки данных
Инфраструктура Beeline Cloud размещена в надежных дата-центрах уровней Tier II и III.
| Город | Дата-центр | Адрес дата-центра | Tier |
|---|---|---|---|
|Москва|[Останкино](https://dc.ostankino.ru/)|РФ, г. Москва, 1-я Останкинская ул., д. 1, стр. 1|III|
|Москва|[Oxygen](https://o2dc.ru/)|РФ, г. Москва, Волгоградский пр., д. 42, к. 9|III|
|Москва|[Филанко](https://datahouse.ru/datacenter/nagornaya/)|РФ, г. Москва, Электролитный пр-д, д. 3, стр. 47|II|
|Ярославль|ЯТЦ Модуль 3|РФ, г. Ярославль, ул. Технопарковая, д. 5|III|
|Ярославль|ЯТЦ Модуль 5|РФ, г. Ярославль, ул. Технопарковая, д. 5|III|
|Ярославль|ЯТЦ Модуль 6|РФ, г. Ярославль, ул. Технопарковая, д. 5|III|
|Новосибирск|РТК-ЦОД|РФ, г. Новосибирск, ул. Менделеева, д. 1|III|
- **ЯТЦ** — Ярославский технический центр.
-1
View File
@@ -1 +0,0 @@
# Архитектура
-1
View File
@@ -1 +0,0 @@
# Терминология
+4 -4
View File
@@ -1,8 +1,8 @@
--- ---
section_links: section_links:
- title: Сервисы - title: Обзор
link: /platform/services/services.md link: /platform/about.md
description: Сервисы Beeline Cloud description: Информация о сервисах Beeline Cloud, ЦОД
- title: Техническая поддержка - title: Техническая поддержка
link: /platform/support/support-overview.md link: /platform/support/support-overview.md
description: Условия оказания и способы обращения в техническую поддержку description: Условия оказания и способы обращения в техническую поддержку
@@ -17,7 +17,7 @@ Beeline Cloud — облачная платформа, основанная на
- быстрое развертывание сервисов; - быстрое развертывание сервисов;
- безопасное хранение данных — наши системы хранения данных соответствуют строгим стандартам; - безопасное хранение данных — наши системы хранения данных соответствуют строгим стандартам;
- защита данных от утечек и несанкционированного доступа; - защита данных от утечек и несанкционированного доступа;
- гибкое масштабирование — увеличение или уменьшение ресурсы по мере необходимости. - гибкое масштабирование — увеличение или уменьшение ресурсов по мере необходимости.
- прогнозируемые расходы. - прогнозируемые расходы.
Облачная платформа полностью соответствует требованиям по защите ПДн для первого уровня защищенности (УЗ-1), что позволяет безопасно размещать и обрабатывать персональные данные. Облачная платформа полностью соответствует требованиям по защите ПДн для первого уровня защищенности (УЗ-1), что позволяет безопасно размещать и обрабатывать персональные данные.
-1
View File
@@ -1 +0,0 @@
# Принципы безопасности
-1
View File
@@ -1 +0,0 @@
# Сертификаты и лицензии
-1
View File
@@ -1 +0,0 @@
# Соглашение об уровне обслуживания
-9
View File
@@ -1,9 +0,0 @@
# Сервисы
Каждый сервис Beeline Cloud предоставляет определенный набор облачных ресурсов и инструменты для управления этими ресурсами. Все сервисы Beeline Cloud объединены в каталог и размещены в личном кабинете в разделе **Сервисы**.
Список сервисов можно посмотреть в разделе «Сервисы» в личном кабинете.
Сервисы с отметкой `По заявке` подключаются по запросу специалистами Beeline Cloud. Сервисы без отметки `По заявке` — цифровые, и подключаются самостоятельно.
Доступ к сервисам Beeline Cloud предоставляется [зарегистрированным пользователям](./../../start/getting-started.md#шаг-1-регистрация-в-beeline-cloud).
+5 -9
View File
@@ -1,17 +1,13 @@
# Техническая поддержка # Техническая поддержка
Вы всегда можете обратиться в нашу техническую поддержку по вопросам сопровождения сервисов Beeline Cloud. По вопросам сопровождения сервисов Beeline Cloud обращайтесь в техническую поддержку.
:::warning Важно
Обратиться в техническую поддержку могут пользователи, [зарегистрированные в Beeline Cloud](./../../start/getting-started.md#шаг-1-регистрация-в-beeline-cloud).
:::
## Способы обращения ## Способы обращения
| Способ связи | Описание | Время работы | | Способ связи | Канал обращения | Время работы | Описание |
|--------|----------|---------------------| |----------|----------|---------------------|----------|
|Портал технической поддержки| /скоро появится | круглосуточно | |Центр поддержки| [lk.cloud.beeline.ru/support-center](https://lk.cloud.beeline.ru/support-center) | круглосуточно | Для подачи обращений через центр поддержки [зарегистрируйтесь в Beeline Cloud](./../../start/getting-started.md#шаг-1-регистрация-в-beeline-cloud) |
|Почта | [servicedesk@datafort.ru](mailto:servicedesk@datafort.ru) | круглосуточно| |Почта | [servicedesk@datafort.ru](mailto:servicedesk@datafort.ru) | круглосуточно| |
## Сроки обработки запросов ## Сроки обработки запросов
+1
View File
@@ -0,0 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M11.164 1.280 C 8.407 1.511,5.917 2.733,4.056 4.768 C 0.808 8.319,0.331 13.626,2.894 17.705 C 4.604 20.429,7.414 22.228,10.640 22.665 C 11.247 22.747,12.633 22.758,13.220 22.685 C 15.814 22.362,18.039 21.238,19.844 19.338 C 22.249 16.807,23.262 13.117,22.495 9.684 C 21.506 5.258,17.875 1.930,13.391 1.342 C 12.804 1.265,11.708 1.235,11.164 1.280 M12.992 2.802 C 14.034 2.915,15.102 3.227,16.060 3.699 C 18.938 5.114,20.862 7.872,21.202 11.070 C 21.262 11.631,21.231 12.869,21.143 13.417 C 20.834 15.352,19.950 17.095,18.569 18.494 C 17.813 19.259,17.035 19.820,16.060 20.300 C 12.202 22.200,7.549 21.173,4.821 17.820 C 3.712 16.458,2.991 14.732,2.802 12.992 C 2.748 12.493,2.748 11.507,2.802 11.008 C 2.988 9.301,3.702 7.571,4.779 6.220 C 5.100 5.818,5.759 5.161,6.200 4.805 C 7.555 3.710,9.254 2.996,10.960 2.804 C 11.400 2.755,12.544 2.754,12.992 2.802 M11.740 5.300 C 11.540 5.371,11.339 5.585,11.283 5.786 C 11.223 6.004,11.224 12.001,11.285 12.219 C 11.341 12.423,11.577 12.659,11.781 12.715 C 12.004 12.777,17.996 12.777,18.219 12.715 C 18.432 12.656,18.660 12.422,18.719 12.202 C 18.827 11.802,18.599 11.390,18.209 11.282 C 18.113 11.255,17.109 11.240,15.410 11.240 L 12.760 11.240 12.760 8.590 C 12.760 6.780,12.746 5.890,12.715 5.781 C 12.635 5.493,12.285 5.236,11.980 5.242 C 11.936 5.243,11.828 5.269,11.740 5.300 " stroke="none" fill-rule="evenodd" fill="black"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.277 3.294 C 3.867 3.406,3.553 3.676,3.364 4.078 L 3.260 4.300 3.260 9.500 L 3.260 14.700 3.365 14.925 C 3.514 15.241,3.725 15.458,4.033 15.610 L 4.298 15.740 6.267 15.752 L 8.236 15.764 8.248 17.732 L 8.260 19.700 8.365 19.925 C 8.514 20.241,8.725 20.458,9.033 20.610 L 9.298 20.740 14.500 20.740 L 19.702 20.740 19.967 20.610 C 20.275 20.458,20.486 20.241,20.635 19.925 L 20.740 19.700 20.740 14.500 L 20.740 9.300 20.634 9.073 C 20.484 8.754,20.247 8.513,19.950 8.375 L 19.700 8.260 17.732 8.248 L 15.764 8.236 15.752 6.268 L 15.740 4.300 15.634 4.073 C 15.484 3.754,15.247 3.513,14.950 3.375 L 14.700 3.260 9.580 3.252 C 5.607 3.246,4.419 3.256,4.277 3.294 M14.240 6.499 L 14.240 8.237 11.770 8.249 L 9.300 8.260 9.075 8.365 C 8.759 8.514,8.542 8.725,8.390 9.033 L 8.260 9.298 8.249 11.769 L 8.237 14.240 6.499 14.240 L 4.760 14.240 4.760 9.500 L 4.760 4.760 9.500 4.760 L 14.240 4.760 14.240 6.499 M19.240 14.500 L 19.240 19.240 14.500 19.240 L 9.760 19.240 9.760 14.500 L 9.760 9.760 14.500 9.760 L 19.240 9.760 19.240 14.500 " stroke="none" fill-rule="evenodd" fill="rgba(25, 28, 52, 0.7)"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="rgb(26, 115, 232)" xmlns="http://www.w3.org/2000/svg"><path d="M11.360 1.265 C 9.727 1.403,8.426 1.757,7.127 2.418 C 2.743 4.648,0.464 9.535,1.524 14.429 C 2.035 16.786,3.511 19.075,5.472 20.551 C 6.984 21.689,8.581 22.352,10.560 22.665 C 11.147 22.757,12.886 22.757,13.480 22.663 C 16.062 22.258,18.197 21.125,19.948 19.231 C 21.260 17.812,22.172 15.993,22.539 14.060 C 22.802 12.680,22.794 11.152,22.518 9.811 C 21.989 7.240,20.388 4.798,18.216 3.251 C 16.755 2.210,14.862 1.480,13.217 1.323 C 12.753 1.278,11.620 1.243,11.360 1.265 M13.142 2.822 C 14.244 2.966,15.085 3.223,16.090 3.725 C 17.514 4.435,18.595 5.362,19.536 6.678 C 19.884 7.166,20.076 7.496,20.383 8.139 C 20.760 8.929,20.969 9.584,21.146 10.540 C 21.259 11.149,21.249 12.831,21.130 13.500 C 20.766 15.526,19.952 17.089,18.501 18.542 C 17.652 19.392,16.850 19.952,15.806 20.423 C 13.274 21.564,10.578 21.550,8.063 20.382 C 6.267 19.549,4.652 17.975,3.751 16.182 C 3.108 14.902,2.809 13.689,2.772 12.220 C 2.750 11.334,2.801 10.786,2.985 9.960 C 3.284 8.616,3.959 7.212,4.808 6.168 C 6.036 4.660,7.867 3.498,9.765 3.023 C 10.791 2.766,12.108 2.688,13.142 2.822 M11.767 6.829 C 11.612 6.858,11.333 7.159,11.281 7.353 C 11.194 7.679,11.360 8.055,11.652 8.196 C 12.159 8.442,12.723 8.112,12.726 7.568 C 12.728 7.039,12.319 6.723,11.767 6.829 M11.720 10.864 C 11.550 10.938,11.414 11.060,11.326 11.220 C 11.267 11.327,11.259 11.604,11.248 13.840 C 11.241 15.215,11.246 16.434,11.260 16.548 C 11.289 16.786,11.404 16.979,11.592 17.106 C 12.018 17.393,12.607 17.149,12.716 16.640 C 12.775 16.368,12.775 11.654,12.717 11.401 C 12.610 10.938,12.137 10.683,11.720 10.864 " stroke="none" fill-rule="evenodd"></path></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.740 8.300 C 5.326 8.447,5.131 8.963,5.341 9.359 C 5.370 9.414,6.795 10.858,8.507 12.567 C 11.334 15.389,11.636 15.678,11.796 15.720 C 11.985 15.770,12.194 15.747,12.359 15.659 C 12.414 15.630,13.858 14.205,15.567 12.493 C 18.375 9.679,18.678 9.363,18.720 9.205 C 18.870 8.634,18.366 8.130,17.795 8.280 C 17.637 8.322,17.346 8.600,14.810 11.133 L 12.000 13.939 9.190 11.133 C 6.772 8.718,6.358 8.320,6.220 8.283 C 6.014 8.228,5.936 8.231,5.740 8.300 " stroke="none" fill-rule="evenodd" fill="black"></path></svg>

After

Width:  |  Height:  |  Size: 618 B

Some files were not shown because too many files have changed in this diff Show More