Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d453dafa98 | |||
| 2f52c8f24b | |||
| 55ff178299 | |||
| 07cae0943d | |||
| 20f7ee60e9 | |||
| 476d5768bd | |||
| 6d650b35c6 | |||
| 8ff199b4ab | |||
| b6065c2fa4 | |||
| 3e14bf2b54 | |||
| 2e923d3abb | |||
| ea041a1a24 | |||
| 0471aaaa04 | |||
| b21b1fb831 | |||
| 71aeec09df | |||
| d595575c1f | |||
| dcf4f06125 | |||
| 255f2ffe9d |
@@ -14,7 +14,3 @@ src/.vuepress/.cache
|
||||
src/.vuepress/.temp
|
||||
src/.vitepress/cache
|
||||
packages-list.json
|
||||
/.vale
|
||||
/.vscode
|
||||
/.vale.ini
|
||||
/VimpelcomCAG2.pem
|
||||
@@ -1,6 +1,6 @@
|
||||
deploy-test-stand:
|
||||
stage: deploy
|
||||
image: harbor.vimpelcom.ru/dockerhub/library/alpine:3.21.2
|
||||
image: harbor.vimpelcom.ru/dockerhub/library/alpine
|
||||
variables:
|
||||
stand: cloud-stand.vega-dev.cloud.vimpelcom.ru
|
||||
rules:
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
# - git push origin HEAD:$CI_COMMIT_REF_NAME -o ci.skip
|
||||
|
||||
.deploy-template:
|
||||
image: harbor.vimpelcom.ru/dockerhub/library/alpine:3.21.2
|
||||
image: harbor.vimpelcom.ru/dockerhub/library/alpine
|
||||
before_script:
|
||||
- |
|
||||
sed -i s%https://dl-cdn.alpinelinux.org/%http://rhrepo.vimpelcom.ru/ext/ya/mirrors/% /etc/apk/repositories && \
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "docs",
|
||||
"version": "0.6.2",
|
||||
"version": "0.6.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "docs",
|
||||
"version": "0.6.2",
|
||||
"version": "0.6.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@beeline/design-tokens": "^1.31.0",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "docs",
|
||||
"version": "0.6.4",
|
||||
"description": "Beeline Cloud docs",
|
||||
"version": "0.6.1",
|
||||
"description": "Vega docs portal",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"dev": "vitepress dev src",
|
||||
|
||||
@@ -42,8 +42,7 @@ console.log({ base: typeof new_version !== 'undefined' ? '/' : '/docs/' })
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
srcDir: ".",
|
||||
title: "cloud",
|
||||
title: "Beeline Cloud",
|
||||
description: "Документация Beeline Cloud",
|
||||
head: [['link', { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/bee-favicon.png' }]],
|
||||
base: typeof new_version !== 'undefined' ? '/' : '/docs/',
|
||||
@@ -64,11 +63,7 @@ export default defineConfig({
|
||||
}
|
||||
},
|
||||
themeConfig: {
|
||||
logo: {
|
||||
light: '/logo-light-theme.svg',
|
||||
dark: '/logo-dark-theme.svg',
|
||||
alt: 'cloud',
|
||||
},
|
||||
logo: '/favicon.svg',
|
||||
search: {
|
||||
provider: 'local',
|
||||
options: {
|
||||
@@ -80,7 +75,7 @@ export default defineConfig({
|
||||
buttonAriaLabel: 'Поиск'
|
||||
},
|
||||
modal: {
|
||||
noResultsText: 'Не удалось загрузить данные',
|
||||
noResultsText: 'Нет результатов для',
|
||||
resetButtonTitle: 'Сбросить',
|
||||
displayDetails: 'Показать расширенный список',
|
||||
footer: {
|
||||
@@ -96,26 +91,29 @@ export default defineConfig({
|
||||
},
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
// nav: [
|
||||
// {
|
||||
// text: 'Документация',
|
||||
// link: '/guide/',
|
||||
// },
|
||||
// {
|
||||
// text: 'API',
|
||||
// link: '',
|
||||
// },
|
||||
// {
|
||||
// text: 'Terraform',
|
||||
// // link: '/terraform/',
|
||||
// link: '',
|
||||
// },
|
||||
// ],
|
||||
|
||||
// socialLinks: [
|
||||
// { 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'
|
||||
// },
|
||||
|
||||
docFooter: {
|
||||
next: 'Вперед',
|
||||
prev: 'Назад'
|
||||
},
|
||||
|
||||
// lastUpdated: {
|
||||
// text: 'Обновлена',
|
||||
// formatOptions: {
|
||||
// dateStyle: 'long',
|
||||
// }
|
||||
// },
|
||||
|
||||
outline: {
|
||||
label: 'Содержание'
|
||||
},
|
||||
@@ -125,7 +123,7 @@ export default defineConfig({
|
||||
text: 'Платформа Beeline Cloud', link: '/platform/index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Обзор', link: '/platform/about.md'},
|
||||
{text: 'Сервисы', link: '/platform/services/services.md'},
|
||||
{text: 'Техническая поддержка', link: '/platform/support/support-overview.md'},
|
||||
],
|
||||
},
|
||||
@@ -133,74 +131,30 @@ export default defineConfig({
|
||||
'/start/': [
|
||||
{
|
||||
text: 'Начало работы в Beeline Cloud', link: '/start/index.md',
|
||||
},
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Начать работу', link: '/start/getting-started.md'},
|
||||
{text: 'Бесплатный период', link: '/start/trial.md'},
|
||||
{text: 'Платное использование', link: '/start/organization.md'},
|
||||
],
|
||||
'/ai/': [
|
||||
{ text: 'AI платформа', link: '/ai/index.md' },
|
||||
{ text: 'Обзор сервиса', link: '/ai/ai-overview-platform.md' },
|
||||
{ text: 'Быстрый старт', link: '/ai/ai-getting-started.md' },
|
||||
{ text: 'Управление сервисом', link: '/ai/ai-setting.md' },
|
||||
{ text: 'Чат с LLM', link: '/ai/ai-chat-llm.md' },
|
||||
{ text: 'Концепции', link: '/ai/ai-glossary.md' },
|
||||
},
|
||||
],
|
||||
// '/billing/': [
|
||||
|
||||
// ],
|
||||
'/vdc/': [
|
||||
{
|
||||
text: 'Виртуальные дата-центры на VMware', link: '/vdc/index.md',
|
||||
},
|
||||
{
|
||||
text: 'Обзор сервиса', link: '/vdc/vdc-overview.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Техническое описание', link: '/vdc/vdc-tech.md' },
|
||||
{ text: 'Квоты и лимиты', link: '/vdc/vdc-quatos.md' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Быстрый старт', link: '/vdc/vdc-getting-started.md'
|
||||
},
|
||||
|
||||
{text: 'Обзор сервиса', link: '/vdc/vdc-overview.md'},
|
||||
{text: 'Быстрый старт', link: '/vdc/vdc-getting-started.md'},
|
||||
{text: 'Виртуальные дата-центры', link: '/vdc/vdc-how-to/vdc-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ 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-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/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: 'Сети', link: '/vdc/vdc-how-to/networks/networks-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{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/isolated-to-routed.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',
|
||||
collapsed: true,
|
||||
items: [
|
||||
@@ -209,67 +163,42 @@ export default defineConfig({
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
},
|
||||
// { text: 'Тарификация', link: '/vdc/vdc-tarif.md' },
|
||||
],
|
||||
},
|
||||
],
|
||||
'/compute/': [
|
||||
{
|
||||
text: 'Виртуальные машины', link: '/compute/index.md',
|
||||
},
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Обзор сервиса', link: '/compute/compute-overview.md'},
|
||||
{text: 'Быстрый старт', link: '/compute/compute-getting-started.md'},
|
||||
// {text: 'Быстрый старт', link: '/compute/compute-getting-started.md'},
|
||||
{text: 'Виртуальные машины', link: '/compute/compute-how-to/compute-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Создание ВМ', link: '/compute/compute-how-to/compute-servers-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: 'Подключение к ВМ', link: '/compute/compute-how-to/compute-connect.md' },
|
||||
{ text: 'Управление ВМ', link: '/compute/compute-how-to/compute-servers-manage.md' },
|
||||
],
|
||||
},
|
||||
{ text: 'Диски', link: '/compute/compute-how-to/compute-disks.md' },
|
||||
{ text: 'IP-адреса', link: '/compute/compute-how-to/compute-ip.md' },
|
||||
{ text: 'Группы размещения', link: '/compute/compute-how-to/compute-affinity.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/': [
|
||||
{
|
||||
text: 'Администрирование', link: '/admin/index.md',
|
||||
},
|
||||
{text: 'Управление ключевыми парами', link: '/admin/ssh.md'},
|
||||
],
|
||||
'/billing/': [
|
||||
{ text: 'Биллинг', link: '/billing/about.md',
|
||||
text: 'Аккаунт Beeline Cloud', link: '/admin/acc-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Аналитика потребления', link: '/billing/usage-analytics.md' },
|
||||
{text: 'Управление ключевыми парами', link: '/admin/ssh.md'},
|
||||
],
|
||||
},
|
||||
],
|
||||
'/concepts/': [
|
||||
{text: 'Виртуальные дата-центры', link: '/concepts/datacenters.md'},
|
||||
{text: 'DNS', link: '/concepts/dns.md'},
|
||||
{text: 'Edge Gateway', link: '/concepts/edge-gateway.md'},
|
||||
{text: 'NAT', link: '/concepts/nat.md'},
|
||||
{text: 'Типы сетей в vDC', link: '/concepts/network-types.md'},
|
||||
{text: 'Ролевая модель', link: '/concepts/roles.md'},
|
||||
{text: 'vApp', link: '/concepts/vApp.md'},
|
||||
],
|
||||
'/monitoring/': [
|
||||
{
|
||||
text: 'Мониторинг', link: '/monitoring/about.md',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ export default function(parameters: IParameters) {
|
||||
// window._paq elsewhere when needed, including closure scopes.
|
||||
const _paq = window._paq;
|
||||
// If user requests consent checking, do this before we actually track.
|
||||
// tip: this doesn't work at the moment because the user has no way to set
|
||||
// Note: this doesn't work at the moment because the user has no way to set
|
||||
// whether consent was given. Oops.
|
||||
if (requireConsent) {
|
||||
_paq.push(['requireConsent']);
|
||||
|
||||
@@ -5,7 +5,7 @@ import { EXTERNAL_URL_RE } from 'vitepress/dist/client/shared'
|
||||
|
||||
interface Props {
|
||||
tag?: string
|
||||
size?: 'medium' | 'big' | 'small'
|
||||
size?: 'medium' | 'big'
|
||||
theme?: 'brand' | 'alt' | 'sponsor'
|
||||
text: string
|
||||
href?: string
|
||||
@@ -51,15 +51,6 @@ const component = computed(() => {
|
||||
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 {
|
||||
border-radius: 12px;
|
||||
padding: 0 20px;
|
||||
|
||||
@@ -115,7 +115,7 @@ const { hasSidebar } = useSidebar()
|
||||
|
||||
.VPContent.has-sidebar {
|
||||
margin: var(--vp-layout-top-height, 0px) 0 0;
|
||||
padding-left: 320px;
|
||||
padding-left: var(--vp-sidebar-width);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,8 @@ type ItemFeature = {
|
||||
const style = useCssModule()
|
||||
const classes = computed(() => ({
|
||||
[style.CustomFeature]: true,
|
||||
[style.CustomFeatureDisabled]: disabled || !link && !scrollTo,
|
||||
[style.CustomFeatureDisabled]: disabled || !link,
|
||||
[style.CustomFeatureWithScroll]: scrollTo && !disabled
|
||||
}))
|
||||
|
||||
const handleClick = (event: Event) => {
|
||||
@@ -50,11 +51,7 @@ const handleClick = (event: Event) => {
|
||||
</Component>
|
||||
<div :class="$style.CustomFeatureContainer">
|
||||
<div v-for="(item, i) in items" :key="i">
|
||||
<Component
|
||||
:is="!disabled && item.link ? VPLink : 'article'"
|
||||
v-bind="{ ...(!disabled && item.link && { href: item.link }) }"
|
||||
:class="{ [style.CustomFeatureDisabled]: disabled || !item.link }"
|
||||
>
|
||||
<Component :is="!disabled && item.link ? VPLink : 'article'" v-bind="{ ...(!disabled && item.link && { href: item.link }) }">
|
||||
<p :class="$style.CustomFeatureSubtitle">{{ item.title }}</p>
|
||||
</Component>
|
||||
</div>
|
||||
@@ -97,12 +94,16 @@ const handleClick = (event: Event) => {
|
||||
color: themes.$color-text-active;
|
||||
|
||||
&:hover {
|
||||
color: themes.$color-text-link;
|
||||
color: themes.$color-text-link !important;
|
||||
}
|
||||
|
||||
#{$el}Disabled & {
|
||||
color: themes.$color-text-disabled;
|
||||
}
|
||||
|
||||
#{$el}WithScroll & {
|
||||
color: themes.$color-text-active;
|
||||
}
|
||||
}
|
||||
|
||||
&Subtitle {
|
||||
|
||||
@@ -20,7 +20,6 @@ import {
|
||||
nextTick,
|
||||
onBeforeUnmount,
|
||||
onMounted,
|
||||
Raw,
|
||||
ref,
|
||||
shallowRef,
|
||||
watch,
|
||||
@@ -133,7 +132,6 @@ watchEffect(() => {
|
||||
const results: Ref<(SearchResult & Result)[]> = shallowRef([])
|
||||
|
||||
const enableNoResults = ref(false)
|
||||
const loadig = ref(true)
|
||||
|
||||
watch(filterText, () => {
|
||||
enableNoResults.value = false
|
||||
@@ -162,7 +160,11 @@ debouncedWatch(
|
||||
if (!index) return
|
||||
|
||||
// Search
|
||||
retrySearch(index, filterTextValue)
|
||||
results.value = index
|
||||
.search(filterTextValue)
|
||||
.slice(0, 16) as (SearchResult & Result)[]
|
||||
enableNoResults.value = true
|
||||
|
||||
// Highlighting
|
||||
const mods = showDetailedListValue
|
||||
? await Promise.all(results.value.map((r) => fetchExcerpt(r.id)))
|
||||
@@ -266,16 +268,6 @@ function focusSearchInput(select = true) {
|
||||
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(() => {
|
||||
focusSearchInput()
|
||||
})
|
||||
@@ -489,6 +481,33 @@ function formMarkRegex(terms: Set<string>) {
|
||||
class="search-input"
|
||||
/>
|
||||
<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
|
||||
class="clear-button"
|
||||
type="reset"
|
||||
@@ -516,7 +535,6 @@ function formMarkRegex(terms: Set<string>) {
|
||||
</form>
|
||||
|
||||
<ul
|
||||
v-if="!!results.length"
|
||||
ref="resultsEl"
|
||||
:id="results?.length ? 'localsearch-list' : undefined"
|
||||
:role="results?.length ? 'listbox' : undefined"
|
||||
@@ -543,21 +561,29 @@ function formMarkRegex(terms: Set<string>) {
|
||||
>
|
||||
<div>
|
||||
<div class="titles">
|
||||
<span class="title-icon">#</span>
|
||||
<span
|
||||
v-for="(t, index) in p.titles"
|
||||
:key="index"
|
||||
class="title"
|
||||
>
|
||||
<span class="text" v-html="t" />
|
||||
<span class="text"> > </span>
|
||||
<svg width="18" height="18" viewBox="0 0 24 24">
|
||||
<path
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m9 18l6-6l-6-6"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="title main">
|
||||
<span class="text" v-html="p.title" />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<span v-html="p.title" />
|
||||
|
||||
<div v-if="showDetailedList" class="excerpt-wrapper">
|
||||
<div v-if="p.text" class="excerpt" inert>
|
||||
<div class="vp-doc" v-html="p.text" />
|
||||
@@ -568,21 +594,65 @@ function formMarkRegex(terms: Set<string>) {
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul
|
||||
v-else-if="filterText && !results.length && enableNoResults"
|
||||
<li
|
||||
v-if="filterText && !results.length && enableNoResults"
|
||||
class="no-results"
|
||||
>
|
||||
<p class="no-results-text">
|
||||
{{ $t('modal.noResultsText') }}
|
||||
</p>
|
||||
<button
|
||||
class="no-results-button"
|
||||
@click="retrySearch(searchIndex, filterText)"
|
||||
>
|
||||
Попробовать еще раз
|
||||
</button>
|
||||
{{ $t('modal.noResultsText') }} "<strong>{{ filterText }}</strong
|
||||
>"
|
||||
</li>
|
||||
</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>
|
||||
</Teleport>
|
||||
@@ -605,13 +675,16 @@ function formMarkRegex(terms: Set<string>) {
|
||||
|
||||
.shell {
|
||||
position: relative;
|
||||
padding: 24px;
|
||||
padding: 12px;
|
||||
margin: 64px auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
background: var(--vp-local-search-bg);
|
||||
width: min(100vw - 60px, 900px);
|
||||
height: min-content;
|
||||
max-height: min(100vh - 128px, 900px);
|
||||
border-radius: 12px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
@@ -625,7 +698,7 @@ function formMarkRegex(terms: Set<string>) {
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
border: 1px solid rgb(32, 33, 35);
|
||||
border: 1px solid var(--vp-c-divider);
|
||||
border-radius: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -639,6 +712,10 @@ function formMarkRegex(terms: Set<string>) {
|
||||
}
|
||||
}
|
||||
|
||||
.search-bar:focus-within {
|
||||
border-color: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
.search-icon {
|
||||
margin: 8px;
|
||||
}
|
||||
@@ -725,31 +802,27 @@ function formMarkRegex(terms: Set<string>) {
|
||||
}
|
||||
|
||||
.results {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
overscroll-behavior: contain;
|
||||
box-shadow: var(--vp-c-shadow-3);
|
||||
border-radius: 12px;
|
||||
border: 1px solid rgba(25, 28, 52, 0.18);
|
||||
padding: 8px 0;
|
||||
max-height: min(100vh - 214px, 900px);
|
||||
|
||||
li:hover {
|
||||
background-color: rgba(25, 28, 52, 0.08);
|
||||
}
|
||||
}
|
||||
|
||||
.result {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
border-radius: 12px;
|
||||
transition: none;
|
||||
line-height: 1rem;
|
||||
border: solid 2px var(--vp-local-search-result-border);
|
||||
outline: none;
|
||||
height: 66px;
|
||||
}
|
||||
|
||||
.result > div {
|
||||
margin: 12px 16px;
|
||||
margin: 12px;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -767,13 +840,6 @@ function formMarkRegex(terms: Set<string>) {
|
||||
position: relative;
|
||||
z-index: 1001;
|
||||
padding: 2px 0;
|
||||
font-size: 13px !important;
|
||||
line-height: 16px !important;
|
||||
}
|
||||
|
||||
:deep(mark) {
|
||||
background-color: transparent;
|
||||
color: none;
|
||||
}
|
||||
|
||||
.title {
|
||||
@@ -786,10 +852,21 @@ function formMarkRegex(terms: Set<string>) {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.title-icon {
|
||||
opacity: 0.5;
|
||||
font-weight: 500;
|
||||
color: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
.title svg {
|
||||
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 {
|
||||
position: relative;
|
||||
}
|
||||
@@ -815,7 +892,10 @@ function formMarkRegex(terms: Set<string>) {
|
||||
|
||||
.titles :deep(mark),
|
||||
.excerpt :deep(mark) {
|
||||
background-color: transparent;
|
||||
background-color: var(--vp-local-search-highlight-bg);
|
||||
color: var(--vp-local-search-highlight-text);
|
||||
border-radius: 2px;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.excerpt :deep(.vp-code-group) .tabs {
|
||||
@@ -852,42 +932,12 @@ function formMarkRegex(terms: Set<string>) {
|
||||
}
|
||||
|
||||
.no-results {
|
||||
padding: 28px 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 24px;
|
||||
align-items: center;
|
||||
z-index: 100;
|
||||
box-shadow: 0 0 10 0 rgba(0, 0, 0, 0.16);
|
||||
border-radius: 12px;
|
||||
border: 1px solid rgba(25, 28, 52, 0.18);
|
||||
background-color: rgb(255, 255, 255);
|
||||
}
|
||||
|
||||
.no-results-text {
|
||||
font-weight: 700;
|
||||
font-size: 17px;
|
||||
line-height: 22px;
|
||||
letter-spacing: 0.2px;
|
||||
}
|
||||
|
||||
.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;
|
||||
font-size: 0.9rem;
|
||||
text-align: center;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
svg {
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.text {
|
||||
font-size: 13px !important;
|
||||
line-height: 16px !important;
|
||||
color: rgba(25, 28, 52, 0.48);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -12,7 +12,6 @@ import VPNavBarSearch from 'vitepress/dist/client/theme-default/components/VPNav
|
||||
import VPNavBarSocialLinks from 'vitepress/dist/client/theme-default/components/VPNavBarSocialLinks.vue'
|
||||
import CustomNavBarTitle from './CustomNavBarTitle.vue'
|
||||
import VPNavBarTranslations from 'vitepress/dist/client/theme-default/components/VPNavBarTranslations.vue'
|
||||
import CustomButton from './CustomButton.vue'
|
||||
|
||||
defineProps<{
|
||||
isScreenOpen: boolean
|
||||
@@ -28,7 +27,6 @@ const { hasLocalNav } = useLocalNav()
|
||||
const { frontmatter } = useData()
|
||||
|
||||
const classes = ref<Record<string, boolean>>({})
|
||||
const loginUrl = import.meta.env.VITE_LOGIN_URL
|
||||
|
||||
watchPostEffect(() => {
|
||||
classes.value = {
|
||||
@@ -57,9 +55,14 @@ watchPostEffect(() => {
|
||||
<div class="content">
|
||||
<div class="content-body">
|
||||
<slot name="nav-bar-content-before" />
|
||||
<VPNavBarMenu class="menu" />
|
||||
<VPNavBarSearch class="search" />
|
||||
<!-- <CustomButton text="Войти" size="small" :href="loginUrl" /> -->
|
||||
<VPNavBarMenu class="menu" />
|
||||
<VPNavBarTranslations class="translations" />
|
||||
<VPNavBarAppearance class="appearance" />
|
||||
<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>
|
||||
@@ -106,7 +109,7 @@ watchPostEffect(() => {
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.wrapper {
|
||||
padding: 0 24px;
|
||||
padding: 0 32px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,7 +178,7 @@ watchPostEffect(() => {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding-right: 32px;
|
||||
padding-left: 0px;
|
||||
padding-left: var(--vp-sidebar-width);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,7 +191,7 @@ watchPostEffect(() => {
|
||||
|
||||
.content-body {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
height: var(--vp-nav-height);
|
||||
transition: background-color 0.5s;
|
||||
@@ -222,10 +225,6 @@ watchPostEffect(() => {
|
||||
height: 24px;
|
||||
background-color: var(--vp-c-divider);
|
||||
content: "";
|
||||
font-weight: 500;
|
||||
font-size: 15px;
|
||||
line-height: 20px;
|
||||
letter-spacing: 0.2px;
|
||||
}
|
||||
|
||||
.menu + .appearance::before,
|
||||
@@ -256,9 +255,4 @@ watchPostEffect(() => {
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
.search {
|
||||
justify-content: flex-end;
|
||||
margin-right: 24px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -3,16 +3,12 @@ import type { DefaultTheme } from 'vitepress/theme'
|
||||
import { useData } from 'vitepress/dist/client/theme-default/composables/data'
|
||||
import { isActive } from 'vitepress/dist/client/shared'
|
||||
import VPLink from 'vitepress/dist/client/theme-default/components/VPLink.vue'
|
||||
import { computed, ref } from 'vue'
|
||||
|
||||
defineProps<{
|
||||
item: DefaultTheme.NavItemWithLink
|
||||
}>()
|
||||
|
||||
const { page } = useData()
|
||||
const textRef = ref<HTMLElement | null>(null)
|
||||
|
||||
const wrapperWidth = computed(() => textRef.value?.offsetWidth)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -24,32 +20,22 @@ const wrapperWidth = computed(() => textRef.value?.offsetWidth)
|
||||
page.relativePath,
|
||||
item.activeMatch || item.link,
|
||||
!!item.activeMatch
|
||||
),
|
||||
disabled: !isActive(
|
||||
page.relativePath,
|
||||
item.activeMatch || item.link,
|
||||
!!item.activeMatch
|
||||
) && !item.link ? 'disabled' : '',
|
||||
)
|
||||
}"
|
||||
:href="item.link"
|
||||
:target="item.target"
|
||||
:rel="item.rel"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
ref="textRef"
|
||||
v-html="item.text"
|
||||
/>
|
||||
<span v-html="item.text"></span>
|
||||
</VPLink>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@use '@beeline/design-tokens/scss/tokens/globals/colors';
|
||||
|
||||
<style scoped>
|
||||
.VPNavBarMenuLink {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 24px;
|
||||
padding: 0 12px;
|
||||
line-height: var(--vp-nav-height);
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
@@ -59,32 +45,9 @@ const wrapperWidth = computed(() => textRef.value?.offsetWidth)
|
||||
|
||||
.VPNavBarMenuLink.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.disabled {
|
||||
opacity: 0.45;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.VPNavBarMenuLink:hover:not(.disabled) {
|
||||
.VPNavBarMenuLink:hover {
|
||||
color: var(--color-text-active);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -14,6 +14,8 @@ const $t = createSearchTranslate(defaultTranslations)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<button type="button" class="DocSearch DocSearch-Button CustomDocSearch-Button" :aria-label="$t('button.buttonAriaLabel')">
|
||||
<span class="DocSearch-Button-Container">
|
||||
<svg
|
||||
class="DocSearch-Search-Icon"
|
||||
width="20"
|
||||
@@ -30,6 +32,13 @@ const $t = createSearchTranslate(defaultTranslations)
|
||||
stroke-linejoin="round"
|
||||
/>
|
||||
</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>
|
||||
|
||||
<style>
|
||||
@@ -56,13 +65,156 @@ const $t = createSearchTranslate(defaultTranslations)
|
||||
--docsearch-hit-shadow: none;
|
||||
}
|
||||
|
||||
.DocSearch-Search-Icon {
|
||||
.DocSearch-Button {
|
||||
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;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
color: var(--vp-c-text-1);
|
||||
fill: currentColor;
|
||||
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>
|
||||
|
||||
@@ -38,10 +38,10 @@ const target = computed(() =>
|
||||
:target="target"
|
||||
>
|
||||
<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-else-if="theme.siteTitle === undefined">{{ site.title }}</template>
|
||||
<slot name="nav-bar-title-after" />
|
||||
<VPImage v-if="theme.logo" class="logo" :image="theme.logo" />
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
@@ -53,13 +53,10 @@ const target = computed(() =>
|
||||
border-bottom: 1px solid transparent;
|
||||
width: 100%;
|
||||
height: var(--vp-nav-height);
|
||||
font-size: 25px;
|
||||
font-weight: 500;
|
||||
line-height: 28px;
|
||||
color: var(--color-text-inactive);
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: var(--vp-c-text-1);
|
||||
transition: opacity 0.25s;
|
||||
gap: 20px;
|
||||
margin-right: 24px;
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
@@ -75,6 +72,7 @@ const target = computed(() =>
|
||||
}
|
||||
|
||||
:deep(.logo) {
|
||||
margin-right: 8px;
|
||||
height: var(--vp-nav-logo-height);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -60,8 +60,9 @@ watch(
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: var(--vp-z-index-sidebar);
|
||||
padding: 0px 0px 96px 0px;
|
||||
width: 320px;
|
||||
padding: 32px 32px 96px 32px;
|
||||
width: 256px;
|
||||
max-width: 320px;
|
||||
background-color: var(--vp-sidebar-bg-color);
|
||||
opacity: 0;
|
||||
box-shadow: var(--vp-c-shadow-3);
|
||||
@@ -87,6 +88,8 @@ watch(
|
||||
@media (min-width: 960px) {
|
||||
.VPSidebar {
|
||||
padding-top: var(--vp-nav-height);
|
||||
// width: var(--vp-sidebar-width);
|
||||
// max-width: 100%;
|
||||
background-color: var(--vp-sidebar-bg-color);
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
@@ -95,6 +98,13 @@ 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) {
|
||||
.curtain {
|
||||
position: sticky;
|
||||
@@ -111,14 +121,17 @@ watch(
|
||||
|
||||
.nav {
|
||||
outline: 0;
|
||||
padding-top: 24px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.group + .group {
|
||||
border-top: 1px solid var(--vp-c-divider);
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.group {
|
||||
width: 100%;
|
||||
padding-top: 10px;
|
||||
width: calc(var(--vp-sidebar-width) - 64px);
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -1,52 +1,10 @@
|
||||
@use '@beeline/design-tokens/scss/tokens/components/navigationDrawer';
|
||||
@use "@beeline/design-tokens/scss/tokens/globals/colors";
|
||||
|
||||
.VPDocAside {
|
||||
.outline-link {
|
||||
font-weight: 400;
|
||||
font-size: 17px;
|
||||
line-height: 22px;
|
||||
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;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.outline-title {
|
||||
font-size: 17px;
|
||||
font-weight: 500;
|
||||
line-height: 22px;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
|
||||
.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;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,3 @@
|
||||
@use "@beeline/design-tokens/scss/tokens/globals/colors";
|
||||
@use "@beeline/design-tokens/scss/tokens/themes";
|
||||
|
||||
@mixin font_style($fontSize, $fontWeight, $lineHeight, $letterSpacing) {
|
||||
font-size: $fontSize;
|
||||
font-weight: $fontWeight;
|
||||
@@ -69,7 +66,7 @@
|
||||
}
|
||||
|
||||
li + li {
|
||||
margin-top: 34px;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
ul li {
|
||||
@@ -78,6 +75,16 @@
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
ol li:nth-last-of-type(n+2)::after {
|
||||
content: '';
|
||||
border-left: 1px solid rgb(201, 197, 197);
|
||||
position: absolute;
|
||||
line-height: 100%;
|
||||
left: -30px;
|
||||
top: 43px;
|
||||
bottom: -30px;
|
||||
}
|
||||
|
||||
ol li::before {
|
||||
content: counter(list);
|
||||
counter-increment: list;
|
||||
@@ -87,8 +94,8 @@
|
||||
left: -48px;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
background-color: colors.$color-background-brand;
|
||||
color: themes.$color-text-active;
|
||||
background-color: #7e00ed;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
line-height: 25px;
|
||||
font-size: 16px;
|
||||
@@ -108,10 +115,6 @@
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ol li:last-child, ul li:last-child {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
ol li p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@@ -1,116 +1,7 @@
|
||||
@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 {
|
||||
--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;
|
||||
}
|
||||
|
||||
&Item {
|
||||
.text {
|
||||
color: theme.$color-text-active !important;
|
||||
font-weight: 500 !important;
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
}
|
||||
@@ -203,6 +203,3 @@
|
||||
--docsearch-primary-color: var(--vp-c-brand-1) !important;
|
||||
}
|
||||
|
||||
:root {
|
||||
--vp-sidebar-width: 320px;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Управление ключевыми парами
|
||||
link: /admin/ssh.md
|
||||
description: Добавление SSH-ключей для подключения к виртуальным машинам
|
||||
---
|
||||
|
||||
# Аккаунт Beeline Cloud
|
||||
|
||||
Аккаунт Beeline Cloud создается при [регистрации пользователя](../start/getting-started.md#1-регистрация-в-beeline-cloud) в Beeline Cloud. С помощью аккаунта можно управлять профилем пользователя.
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Управление ключевыми парами
|
||||
link: /admin/ssh.md
|
||||
description: Добавление SSH-ключей для подключения к виртуальным машинам
|
||||
---
|
||||
|
||||
# Администрирование
|
||||
|
||||
При [регистрации пользователя](../start/getting-started.md#1-регистрация-в-beeline-cloud) в Beeline Cloud создается аккаунт и проект в Beeline Cloud.
|
||||
|
||||
С помощью аккаунта можно управлять профилем пользователя - добавлять SSH-ключи, чтобы подключаться к виртуальным машинам без ввода пароля.
|
||||
|
||||
В проекте можно создавать ресурсы, добавлять пользователей в проект и управлять доступом к ресурсам.
|
||||
@@ -1,178 +0,0 @@
|
||||
# Чат с LLM
|
||||
|
||||
**Чат с LLM** - это интерфейс для общения с LLM-моделями. Подходит для знакомства и тестирования моделей.
|
||||
|
||||
Исходя из возможностей сервиса Чат с LLM пользовательский путь от авторизации к диалогу выглядит следующим образом:
|
||||
|
||||
1. Переход в чат с LLM.
|
||||
2. Выбор LLM.
|
||||
3. Выбор базы знаний.
|
||||
4. Настройка системного промпта.
|
||||
5. Диалог с LLM.
|
||||
|
||||
## Доступные модели
|
||||
|
||||
Чат с LLM поддерживает модели:.
|
||||
|
||||
| Модель | Контекст | Параметры | Reasoning | Инструменты | Картинки |
|
||||
|:-------|:-------|:-------|:-------|:-------|:-------|
|
||||
| Deepseek-chat | 131k | 671B | ✅ | ✅ | ❌ |
|
||||
| Gemma 3 | 128k | 27B | ❌ | ❌ | ✅ |
|
||||
| Qwen 3 | 131k | 32B | ✅ |✅ | ❌|
|
||||
|
||||
::: details Описание моделей
|
||||
|
||||
- **DeepSeek Chat**
|
||||
|
||||
DeepSeek V3 — это мощная гибридная модель с 671 млрд. параметров, специально оптимизированная для кодогенерации и работы поисковых агентов. Модель поддерживает контекст до 128 тыс. токенов и позволяет гибко управлять режимом рассуждений через параметр "reasoning_enabled". Она демонстрирует производительность уровня DeepSeek-R1, но работает быстрее, идеально подходя для программирования, исследований и агентных workflow.
|
||||
|
||||
- **Gemma 3**
|
||||
|
||||
Основная особенность этой модели в том, что она поддерживает картинки. Вы можете использовать ее как OCR: модель распознает рукописный текст на русском языке. Кроме этого, модель распознает и классифицирует объекты на фотографиях; может распознавать и переводить надписи.
|
||||
|
||||
- **Qwen 3 32B**
|
||||
|
||||
Основная модель, с которой рекомендуется начинать эксперименты. Поддерживает нативный вызов инструментов.
|
||||
|
||||
Режимы работы:
|
||||
|
||||
- с рассуждениями (включен по умолчанию).
|
||||
- без рассуждений (нужно передать в запросе /no_think).
|
||||
|
||||
:::
|
||||
|
||||
## Авторизация в чате с LLM
|
||||
|
||||
Доступ к чату с LLM-моделями предоставляется по уникальной ссылке, которая формируется после [создания тенанта](ai-setting.md#создать-тенант).
|
||||
|
||||
1. В левом меню откройте раздел **Тенанты**.
|
||||
2. Нажмите на имя тенанта.
|
||||
3. Из поля **Url приложения** скопируйте ссылку на чат с LLM.
|
||||
4. Вставьте ссылку в браузер. Откроется чат с LLM.
|
||||
|
||||

|
||||
|
||||
::: details Интерфейс чата с LLM
|
||||
|
||||
- **Чат**
|
||||
|
||||
Раздел включает функции:
|
||||
|
||||
- диалог с моделью в режиме вопрос-ответ;
|
||||
- выбор LLM;
|
||||
- выбор базы знаний.
|
||||
|
||||
- **Базы знаний**
|
||||
|
||||
Раздел предназначен для подготовки базы знаний, на основе которой модель будет генерировать ответы.
|
||||
|
||||
- **Системные промпты**
|
||||
|
||||
Раздел предназначен для создания системных промптов. Системный промпт представляет из себя набор инструкций, на которые опирается модель при подготовке ответа на запрос пользователя.
|
||||
|
||||
:::
|
||||
|
||||
## Начать диалог с моделью
|
||||
|
||||
1. [Авторизоваться в чате с LLM](#авторизация-в-чате-с-llm).
|
||||
2. В левом меню выберите раздел **Чаты**.
|
||||
3. Выберите из списка модель. Если в списке отсутствует нужная [модель](#доступные-модели), то [добавьте модель](ai-setting.md#добавить-модель) в тенант.
|
||||
|
||||
::: tip Информация
|
||||
|
||||
Эксперименты рекомендуется с модели **Qwen 3 32B**, которая имеет больший контекст и поддерживает нативный вызов инструментов.
|
||||
|
||||
Модель **Qwen 3 32B** может работать:
|
||||
- [с рассуждениями](ai-glossary.md#рассуждения) - этот режим включен по умолчанию;
|
||||
- без рассуждений - в этом случае нужно передать в запросе `/no_think`.
|
||||
|
||||
:::
|
||||
4. (опционально) Выберите базу знаний, на основе которой модель составит ответ. Если список баз данных пуст, то [создайте](#создать-базу-знаний) базу знаний.
|
||||
5. (опциоанльно) Выберите системный промпт. По умолчанию в чате задан системный промпт. Если необходим промпт под определенную задачу, то [измените](#редактировать-системный-промпт) системный промпт.
|
||||
6. Введите запрос к модели. Дождитесь ответа.
|
||||
|
||||
## Использовать базу знаний
|
||||
|
||||
Если необходимо, чтобы модель генерировала ответы не на базе своего раннего обучения, а обращалась, например, к актуальной нормативной базе или актуальным тарифам, то необходимо указать [базу знаний](ai-glossary.md#база-знаний-rag), с которой чат должен расширить свой контекст.
|
||||
|
||||
Для этого необходимо выбрать базу знаний и продолжить диалог.
|
||||
|
||||

|
||||
|
||||
Если база знаний отсутствует в списке, то [создайте](#создать-базу-знаний) базу знаний и добавьте документы.
|
||||
|
||||
### Создать базу знаний
|
||||
|
||||
1. [Авторизоваться в чате с LLM](#авторизация-в-чате-с-llm).
|
||||
2. В левом меню выберите раздел **Базы знаний**.
|
||||
3. Нажмите кнопку **Создать базу знаний**.
|
||||
4. Заполните параметры базы знаний:
|
||||
- **Имя**: введите имя базы знаний, имя будет отображаться при выборе базы знаний в чате.
|
||||
- **Описание**: введите описание базы знаний.
|
||||
5. Нажмите кнопку **Создать**.
|
||||
|
||||
База знаний будет создана, но в ней пока нет информации для генерации ответов модели. Добавьте документы в базу знаний.
|
||||
|
||||
### Добавить документ в базу знаний
|
||||
|
||||
1. [Авторизоваться в чате с LLM](#авторизация-в-чате-с-llm).
|
||||
2. В левом меню выберите раздел **Базы знаний**.
|
||||
3. В списке нажмите на нужную базу знаний.
|
||||
4. Нажмите кнопку **Добавить документ**.
|
||||
5. Загрузите файлы в базу знаний.
|
||||
6. Нажмите **Добавить**.
|
||||
|
||||
## Редактировать системный промпт
|
||||
|
||||
По умолчанию задан простой "размытый" [промпт](ai-glossary.md#промпт), который указывает, что ответы модели должны быть полезными. Но такой чат не всегда сможет предоставить пользователю ответ, который его устроит.
|
||||
|
||||
В чате с LLM доступен редактор системных промптов. Возможны способы редактирования системных промптов:
|
||||
|
||||
- редактирование системного промпта в текущей сессии диалога с моделью;
|
||||
- создание системного промпта в библиотеке системных промптов для дальнейшего использования.
|
||||
|
||||
### Редактирование системного промпта в текущей сессии
|
||||
|
||||
1. [Начните](#начать-диалог-с-моделью) диалог с моделью.
|
||||
2. Системный промпт отображается над строкой для ввода текста в чате.
|
||||
3. Нажмите на значок карандаша справа от системного промпта.
|
||||
4. В появившемся окне справа введите содержимое промпта.
|
||||
5. Нажмите кнопку **Сохранить**.
|
||||
6. Содержимое системного промпта обновится.
|
||||
|
||||
Редактируемый системный промпт доступен для всех моделей и сохраняется только в рамках текущей сессии.
|
||||
|
||||
### Создать системный промпт
|
||||
|
||||
1. [Авторизоваться в чате с LLM](#авторизация-в-чате-с-llm).
|
||||
2. В левом меню выберите раздел **Системные промпты**.
|
||||
3. Нажмите кнопку **Создать системный промпт**.
|
||||
4. Заполните параметры промпта:
|
||||
- **Название**: введите название системного промпта.
|
||||
- **Содержание**: введите содержание промпта.
|
||||
5. Нажмите **Создать**.
|
||||
|
||||
Системный промпт добавлен в библиотеку системных промптов. Посмотреть список промптов можно в левом меню в разделе **Системные промпты**.
|
||||
|
||||
## Сменить тенант
|
||||
|
||||
В чате с LLM-моделями есть возможность работать сразу с несколькими [тенантами](ai-setting.md#создать-тенант).
|
||||
|
||||
Для смены текущего тенанта необходимо:
|
||||
|
||||
1. В верхнем меню нажмите на вкладку **Тенант**.
|
||||
2. Выберите из списка тенант.
|
||||
|
||||
К тенанта привязаны сущности:
|
||||
|
||||
- модели;
|
||||
- базы знаний;
|
||||
- системные промпты.
|
||||
|
||||
Для каждого тенанта эти сущности будут отличаться.
|
||||
|
||||
## Очистить контекст диалога
|
||||
|
||||
При длительном диалоге модель накапливает [контекст](ai-glossary.md#контекст) и может начать генерировать неточные ответы ("галлюцинации"). Для предотвращения "галлюцинации" рекомендуется периодически очищать контекст диалога.
|
||||
|
||||
Для очистки контекста диалога нажмите на значок корзины в правом верхнем углу окна чата.
|
||||
@@ -1,51 +0,0 @@
|
||||
# Быстрый старт с AI платформа
|
||||
|
||||
Данная инструкция рассматривает начальную настройку сервиса **AI платформа** и отправку первого запроса к LLM-модели.
|
||||
|
||||
## Перед началом работы
|
||||
|
||||
- [Зарегистрируйтесь](../start/getting-started.md#1-регистрация-в-beeline-cloud) в личном кабинете Beeline Cloud.
|
||||
|
||||
## 1. Создать тенант
|
||||
|
||||
1. В верхнем меню нажмите на пункт **Сервисы**.
|
||||
2. Выберите **Сервис AI платфома**.
|
||||
3. В левом меню откройте раздел **Тенанты**.
|
||||
4. Нажмите кнопку **Создать тенант**.
|
||||
5. Введите имя тенанта.
|
||||
6. Нажмите **Создать тенант**.
|
||||
|
||||
## 2. Добавить модель
|
||||
|
||||
1. В левом меню откройте раздел **Модель**.
|
||||
2. Нажмите кнопку **Добавить модель**.
|
||||
3. В поле **Тенант** выберите созданный тенант.
|
||||
4. В поле **Модель** выберите из списка подходящую **LLM-модель**.
|
||||
5. Установите лимит использования токенов в час.
|
||||
6. Нажмите **Добавить модель**.
|
||||
|
||||
## 3. Перейти в чат с LLM
|
||||
|
||||
Протестировать модели в интерфейсе можно в чате с LLM. Доступ к чату с LLM-моделями предоставляется по уникальной ссылке, которая формируется после создания тенанта.
|
||||
|
||||
1. В левом меню откройте раздел **Тенанты**.
|
||||
2. Нажмите на имя тенанта.
|
||||
3. Из поля **Url приложения** скопируйте ссылку на чат с LLM.
|
||||
4. Вставьте ссылку в браузер.
|
||||
|
||||
## 4. Создать системный промпт
|
||||
|
||||
1. В чате с LLM в левом меню откройте раздел **Системные промпты**.
|
||||
2. Нажмите кнопку **Создать системный промпт**.
|
||||
3. Заполните параметры промпта:
|
||||
- **Название**: введите название систменого промпта;
|
||||
- **Содержание**: введите содержание промпта.
|
||||
4. Нажмите **Создать**.
|
||||
|
||||
## 5. Начать диалог с моделью
|
||||
|
||||
1. В чате с LLM-моделями в левом меню перейдите в раздел **Чат**.
|
||||
2. Выберите из списка модель.
|
||||
3. Выберите из списка системный промпт.
|
||||
4. Откроется чат. В текстовом поле внизу введите запрос к LLM-модели.
|
||||
5. Дождитесь ответа модели.
|
||||
@@ -1,26 +0,0 @@
|
||||
# Концепции
|
||||
|
||||
## База знаний (RAG)
|
||||
|
||||
RAG — это подход, при котором ответ LLM формируется с использованием дополнительного источника актуальных данных.
|
||||
|
||||
## Контекст
|
||||
|
||||
Контекст — это ограниченное по размеру окно, в которое должен уместиться запрос к LLM. У каждой модели контекст строго ограничен и указан в документации к ней.
|
||||
|
||||
## Рассуждения
|
||||
|
||||
Reasoning (рассуждение или логическое мышление) у LLM — это способность модели не просто воспроизводить выученные паттерны текста, а последовательно и логически выводить новую информацию из уже известных ей данных.
|
||||
|
||||
|
||||
## Промпт
|
||||
|
||||
Промпт — это текстовый запрос, который вы отправляете модели, и который задает контекст и направление для ответа. LLM анализирует промпт и генерирует ответ, который является логическим продолжением текста. Чем понятнее и конкретнее сформулирован промпт, тем качественнее будет ответ.
|
||||
|
||||
Системные промпты — специальные инструкции, которые задают общие рамки поведения модели на протяжении всего диалога. Системный промпт устанавливается в начале общения и сообщает модели, какую роль она должна играть, какие ограничения соблюдать и какой стиль общения использовать.
|
||||
|
||||
В сервисе **AI-платформа** системный промпт доступен для редактирования, чтобы пользователи могли максимально настраивать поведение моделей.
|
||||
|
||||
## Токен
|
||||
|
||||
LLM представляет текст не в виде слов или букв, а в виде токенов. Токен — это несколько букв (часть слова), которые часто встречаются рядом в обучающей выборке. Текст запроса, который вы отправляете в LLM, сначала нарезается на токены, и только потом обрабатывается моделью.
|
||||
@@ -1,11 +0,0 @@
|
||||
# Обзор сервиса
|
||||
|
||||
Сервис **AI платфома** предоставляет доступ к большим языковым моделям (Large Language Models, LLM). LLM-модели готовы к использованию и избавляют пользователя от необходимости самостоятельного развертывания и изучения связанных технологий.
|
||||
|
||||
## Возможности сервиса
|
||||
|
||||
- Интерфейс для взаимодействия с моделями в формате чат-бота.
|
||||
- Предоставляет различные [модели](ai-chat-llm.md#доступные-модели).
|
||||
- Использование баз знаний (RAG).
|
||||
- Редактирование системного промпта.
|
||||
- Диалог с моделью.
|
||||
@@ -1,56 +0,0 @@
|
||||
# Управление сервисом
|
||||
|
||||
В разделе рассмотрены компоненты сервиса **AI платформа** и приведены пошаговые инструкции по их созданию и управлению компонентами.
|
||||
|
||||
## Создать тенант
|
||||
|
||||
**Тенант** представляет собой изолированный логический контейнер ресурсов сервиса (модели, базы знаний) для работы в рамках проекта. Создается в личном кабинете Beeline Cloud.
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. В верхнем меню нажмите на раздел **Сервисы**.
|
||||
3. Выберите **Сервис AI платформа**.
|
||||
4. В левом меню откройте раздел **Тенанты**.
|
||||
5. Нажмите кнопку **Создать тенант**.
|
||||
6. Введите имя тенанта.
|
||||
7. Нажмите **Создать тенант**.
|
||||
|
||||
## Добавить модель
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. В верхнем меню нажмите на раздел **Сервисы**.
|
||||
3. Выберите **Сервис AI платформа**.
|
||||
4. В левом меню откройте раздел **Модели**.
|
||||
5. Нажмите кнопку **Добавить модель**.
|
||||
6. Заполните параметры модели:
|
||||
- **Тенант**: выберите тенант, в котором будет использоваться модель.
|
||||
- **Модель**: выберите из списка подходящую LLM-модель.
|
||||
- **Токены**: введите лимит использования токенов в час.
|
||||
7. Нажмите кнопку **Добавить модель**.
|
||||
|
||||
## Добавить базу знаний
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. В верхнем меню нажмите на раздел **Сервисы**.
|
||||
3. Выберите **Сервис AI платформа**.
|
||||
4. В левом меню откройте раздел **База знаний**.
|
||||
5. Нажмите кнопку **Создать базу знаний**.
|
||||
6. Заполните параметры базы знаний:
|
||||
- **Тенант**: выберите из списка тенант.
|
||||
- **Имя**: введите имя базы знаний.
|
||||
- **Описание**: введите описание базы знаний.
|
||||
7. Нажмите **Создать базу знаний**.
|
||||
|
||||
[Наполнение базы знаний](ai-chat-llm.md#добавить-документ-в-базу-знаний) документами, на основании которых будет генерироваться ответ модели, выполняется в чате с LLM.
|
||||
|
||||
## Удалить тенант, модель, базу знаний
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. В верхнем меню нажмите на раздел **Сервисы**.
|
||||
3. Выберите **Сервис AI платформа**.
|
||||
4. Откройте раздел c нужным компонентом сервиса:
|
||||
- **Тенанты**,
|
||||
- **Модели**,
|
||||
- **Базы знаний**.
|
||||
5. В таблице найдите строку с нужным компонентом сервиса.
|
||||
6. Нажмите … и выберите **Удалить**.
|
||||
7. В открывшемся окне подтвердите операцию, нажав **Удалить**.
|
||||
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 141 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 238 KiB |
|
Before Width: | Height: | Size: 58 KiB |
@@ -1,21 +0,0 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Обзор сервиса
|
||||
link: /ai/ai-overview-platform.md
|
||||
description: Обзор сервиса, решаемые задачи
|
||||
- title: Быстрый старт
|
||||
link: /ai/ai-getting-started.md
|
||||
description: Создание виртуальной машины в дата-центре
|
||||
- title: Настройка сервиса
|
||||
link: /ai/ai-setting.md
|
||||
description: Создание тенанта, добавление моделей и базы знаний
|
||||
- title: Чат с LLM
|
||||
link: /ai/ai-chat-llm.md
|
||||
description: Интерфейс для взаимодействия с LLM-моделями в формате чат-бота
|
||||
- title: Концепции
|
||||
link: /ai/ai-glossary.md
|
||||
description: Основные понятия, используемые в сервисе
|
||||
|
||||
---
|
||||
|
||||
# AI платформа
|
||||
|
Before Width: | Height: | Size: 347 KiB After Width: | Height: | Size: 347 KiB |
|
Before Width: | Height: | Size: 325 KiB After Width: | Height: | Size: 325 KiB |
|
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 199 KiB |
@@ -1,21 +0,0 @@
|
||||
# Биллинг
|
||||
|
||||
Биллинг предназначен для управления финансовыми операциями в Beeline Cloud. В биллинге вы можете:
|
||||
|
||||
- контролировать счета;
|
||||
- отслеживать платежи;
|
||||
- анализировать потребление ресурсов.
|
||||
|
||||
## Разделы биллинга
|
||||
|
||||
### Счета
|
||||
|
||||
В этом разделе отображаются все выставленные счета, их статусы и суммы. Вы можете посмотреть детали каждого счета и скачать документы для бухгалтерии.
|
||||
|
||||
### Финансовый мониторинг
|
||||
|
||||
В этом разделе вы можете отслеживать движение средств, контролировать платежи и задолженности.
|
||||
|
||||
### Аналитика потребления
|
||||
|
||||
В этом разделе вы можете создавать отчеты и строить графики, чтобы отследить использование ресурсов за выбранный период.
|
||||
@@ -0,0 +1 @@
|
||||
# Биллинг
|
||||
@@ -1,17 +0,0 @@
|
||||
# Аналитика потребления
|
||||
|
||||
В этом разделе вы можете отследить использование ресурсов в проектах. Это может помочь вам контролировать расходы на сервисы.
|
||||
|
||||
Вы можете:
|
||||
|
||||
- Узнать какие проекты потребляют больше всего ресурсов.
|
||||
- Сравнить использование за разные периоды.
|
||||
|
||||
## Как пользоваться
|
||||
|
||||
1. В поле **Проект** выберите один или `все проекты`.
|
||||
2. В поле **Сервис** укажите нужный сервис, например, **Виртуальные дата-центры на VMware**.
|
||||
3. В поле Ресурсы выберите «Все ресурсы» или конкретный тип.
|
||||
4. Установите период с помощью календаря.
|
||||
|
||||
После этого появится отчет. Если данных нет, попробуйте изменить период, выбрать другой проект или ресурс.
|
||||
@@ -1,129 +1,38 @@
|
||||
# Быстрый старт
|
||||
|
||||
В этой инструкции рассмотрен процесс создания ресурсов, настройки связанности ,.
|
||||
В этой инструкции рассмотрен процесс создания виртуального ВМа UNIX и подключение к нему по протоколу SSH.
|
||||
|
||||
## Перед началом работы
|
||||
## Создать виртуальный ВМ
|
||||
|
||||
- [Зарегистрируйтесь](../start/getting-started.md#1-регистрация-в-beeline-cloud) в личном кабинете Beeline Cloud.
|
||||
1. Отк
|
||||
2. Выбрать проект.
|
||||
3. На странице **Обзор** убедитесь в наличии свободных ресурсов.
|
||||
4. Нажмите **Создать ВМ**.
|
||||
5. Выберите образ ОС UNIX.
|
||||
6.
|
||||
7. Нажмите **Cоздать ВМ**.
|
||||
|
||||
## 1. Создать ВМ-шлюз
|
||||
Виртуальный ВМ отобразится на странице **Облачные вычисления → ВМы**. Выполняется сборка виртуального ВМа. После окончания сборки ВМ перейдет в статус `Включен`.
|
||||
|
||||
На первом шаге создайте виртуальную машину-шлюз, которая будет являться точкой управления. Чтобы ВМ была доступна из сети Интернет и имела выход в Интернет, ВМ создается:
|
||||
## Подключиться к ВМу по SSH
|
||||
|
||||
- в [зоне доступности](compute-overview.md#зоны-доступности) `DMZ`;
|
||||
- с внешним IP-адресом, который сопоставлен с внутренним IP-адресом `10.0.0.10`;
|
||||
- с образом операционной системы:
|
||||
- Linux для реализации базовой сетевой функциональности;
|
||||
- VyOS для реализации расширенной сетевой функциональности.
|
||||
Для подключения к виртуальному ВМу по SSH выполните команду в терминале:
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.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:
|
||||
- по IP-адресу ВМа:
|
||||
|
||||
```
|
||||
ssh <логин>@<внешний_IP>
|
||||
ssh -l <логин пользователя> -i <путь до приватного ключа> <IP-адрес ВМа>
|
||||
```
|
||||
- по полному доменному имени ВМа (FQDN):
|
||||
|
||||
```
|
||||
ssh -l <логин пользователя> -i <путь до приватного ключа> <FQDN ВМа>
|
||||
```
|
||||
|
||||
где:
|
||||
Пример команды подключения к ВМу по IP-адресу:
|
||||
|
||||
- `логин`: имя пользователя для входа на ВМ, указанное при создании ВМ;
|
||||
- `внешний_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
|
||||
```
|
||||
$ ssh -l ivanov -i /home/user/.ssh/id_rsa 10.0.0.1
|
||||
```
|
||||
|
||||
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,13 +0,0 @@
|
||||
---
|
||||
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-адресу через джамп-хост
|
||||
---
|
||||
|
||||
# Подключение к ВМ
|
||||
|
||||
Рассмотрено подключение по SSH к виртуальной машине по внешнему IP-адресу и к виртуальной машине по внутреннему IP-адресу.
|
||||
@@ -1,103 +0,0 @@
|
||||
# Подключение по SSH к виртуальной машине по внутреннему IP-адресу
|
||||
|
||||
Виртуальные машины, созданные в [зоне доступности `Inside` или `DMZ`](../compute-overview.md#зоны-доступности), с внутренним IP-адресом недоступны из интернета. Чтобы подключиться по SSH к ВМ по внутреннему IP-адресу, используйте промежуточную виртуальную машину (джамп-хост) с [внешним IP-адресом (FIP)](compute-ip.md#внешние-ip-адреса).
|
||||
|
||||
## Перед началом работы
|
||||
|
||||
Перед подключением проверьте выполнение условий и наличие данных:
|
||||
|
||||
- Статус виртуальной машины — `Включена`.
|
||||
- Виртуальной машине [назначен](../compute-how-to/compute-ip.md#внутренние-ip-адреса) внутренний IP-адрес.
|
||||
- Имя пользователя для входа на ВМ.
|
||||
- Подготовлена ключевая пара для подключения к ВМ по SSH:
|
||||
- приватный ключ сохранен на компьютере, с которого выполняется подключение;
|
||||
- публичный ключ [добавлен](../../admin/ssh.md#добавить-ssh-ключ) в профиль пользователя в личном кабинете Beeline Cloud.
|
||||
- На компьютере, с которого выполняется подключение к ВМ:
|
||||
- разрешен удаленный доступ по протоколу SSH (TCP-порт 22);
|
||||
- есть доступ в сеть интернет, протокол ICMP не заблокирован на Firewall-ах;
|
||||
- VPN сети организации позволяет осуществлять соединение в сеть Интернет.
|
||||
|
||||
Если вы используете разные SSH-ключи для подключения к ВМ по внутреннему IP-адресу и к промежуточной ВМ с внешним IP-адресом, то добавьте оба публичных ключа в профиль пользователя в личном кабинете Beeline Cloud.
|
||||
|
||||
## 1. Посмотреть внешний IP-адрес и его статус
|
||||
|
||||
Перед созданием промежуточной ВМ с FIP убедитесь, что внешний IP-адрес доступен для назначения.
|
||||
|
||||
Значение внешнего IP-адреса и его статус можно [посмотреть](compute-ip.md#посмотреть-внешний-ip-адрес) в разделе **Виртуальные машины → IP-адреса**.
|
||||
|
||||
Внешний IP-адрес может быть занят другой виртуальной машиной. Если вы не планируете использовать эту ВМ в качестве джамп-хоста, то [отвяжите внешний IP-адрес](compute-ip.md#назначить-вм-внешний-ip-адрес) от этой ВМ и [создайте новую промежуточную ВМ с FIP](#2-создать-промежуточную-вм).
|
||||
|
||||
## 2. Создать промежуточную ВМ
|
||||
|
||||
Промежуточная ВМ (джамп-хост) — это виртуальная машина с внешним IP-адресом, созданная в специальной приграничной зоне `DMZ` и имеющая доступ к внутренней сети. Джамп-хост является шлюзом между интернетом и внутренней сетью.
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.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. Нажмите **Создать виртуальную машину**.
|
||||
|
||||
## 3. Конфигурация 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
|
||||
```
|
||||
|
||||
## 4. Подключиться к ВМ по внутреннему IP-адресу
|
||||
|
||||
1. Откройте терминал.
|
||||
2. Выполните команду:
|
||||
|
||||
```
|
||||
ssh myhost
|
||||
```
|
||||
@@ -1,49 +0,0 @@
|
||||
# Подключение по SSH к виртуальной машине по внешнему IP-адресу
|
||||
|
||||
Подключение к ВМ выполняется по протоколу SSH с [помощью ключевой пары](../../admin/ssh.md).
|
||||
|
||||
:::tip Информация
|
||||
Чтобы подключаться к виртуальной машине по SSH, [добавьте](../../admin/ssh.md#добавить-ssh-ключ) публичную часть ключа в профиль пользователя перед созданием виртуальной машины. Для существующих виртуальных машин добавление SSH-ключа невозможно.
|
||||
:::
|
||||
|
||||
## Перед началом работы
|
||||
|
||||
Перед подключением проверьте выполнение условий и наличие данных:
|
||||
|
||||
- Статус виртуальной машины — `Включена`.
|
||||
- Виртуальной машине [назначен](../compute-how-to/compute-ip.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,36 @@
|
||||
# Подключение к ВМ
|
||||
|
||||
Подключение к ВМ выполняется по протоколу 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. Подтвердите подключение.
|
||||
@@ -1,24 +1,28 @@
|
||||
# IP-адрес
|
||||
|
||||
Каждая виртуальная машина при создании получает IP-адрес. В сервисе поддерживаются только IPv4-адреса.
|
||||
IP-адрес — это вычислительный ресурс облака. В облачных сервисах используются внутренние IPv4-адреса.
|
||||
|
||||
## Внутренние IP-адреса
|
||||
Внутренние IP-адреса назначаются автоматически или выбираются из списка зарезервированных адресов при создании ВМ.
|
||||
|
||||
Внутренний IP-адрес используется для взаимодействия между ВМ внутри одной сети. Внутренний IP-адрес не виден из интернета.
|
||||
Список зарезервированных адресов формируется из:
|
||||
- IP-адресов, [созданных вручную](#создать-ip-адрес);
|
||||
- IP-адресов, [сохраненных в проекте](#сохранить-ip-адрес-в-проекте).
|
||||
|
||||
Внутренний IP-адрес назначается виртуальной машине автоматически или выбираются из списка зарезервированных адресов при ее создании.
|
||||
|
||||
:::tip Информация
|
||||
Виртуальная машина доступна из интернета только через внешний IP-адрес. Для доступа из интернета к виртуальной машине по внутреннему IP-адресу используйте виртуальную машину с внешним IP-адресом как джамп-хост.
|
||||
::: warning Важно
|
||||
Привязка и отвязка IP-адресов возможна внутри одной [зоны доступности](../compute-overview.md#зоны-доступности).
|
||||
:::
|
||||
|
||||
## Внешние IP-адреса
|
||||
## Типы IP-адресов
|
||||
|
||||
Внешний IP-адрес — это IP-адрес, который доступен из интернета. Внешний IP-адрес выдается организации при регистрации аккаунта Beeline Cloud.
|
||||
`Публичный` — IP-адрес, по которому ВМ доступна из интернета.
|
||||
|
||||
В сервисе **Виртуальные машины** предусмотрен один внешний IP-адрес (Floating IP или FIP), сопоставленный с внутренним IP-адрес `10.0.0.10`. Значение внешнего IP-адреса можно [посмотреть](#посмотреть-внешний-ip-адрес) в разделе **Виртуальные машины → IP-адреса**.
|
||||
`Приватный` — IP-адрес, по которому ВМ доступна в [зоне `Inside`](../compute-overview.md#зоны-доступности).
|
||||
|
||||
Чтобы ВМ без ограничений была доступна из интернета и получала доступ к ресурсам интернета, ей должен быть присвоен внешний IP-адрес. Внешний IP-адрес [назначается](#назначить-вм-внешний-ip-адрес) виртуальной машине при ее создании. Существующей ВМ назначить внешний IP-адрес нельзя.
|
||||
::: warning Важно
|
||||
Один публичный IP-адрес предоставляется одной организации. Не удаляйте публичный IP-адрес из списка IP-адресов. В случае удаления IP-адреса пропадет возможность создания ВМ с доступом в интернет.
|
||||
|
||||
Публичный IP-адрес можно отвязать от ВМ и назначить другой ВМ.
|
||||
:::
|
||||
|
||||
## Статусы IP-адресов
|
||||
|
||||
@@ -49,36 +53,11 @@
|
||||
- добавьте тег адресу при необходимости.
|
||||
7. Нажмите **Создать**.
|
||||
|
||||
На странице **Виртуальные машины → IP-адреса** появится новый IP-адрес со статусом `Зарезервирован`.
|
||||
|
||||
## Посмотреть внешний IP-адрес
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. Выберите нужный проект в верхнем меню **Проекты**.
|
||||
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные машины**.
|
||||
4. В левом меню откройте раздел **IP-адреса**.
|
||||
5. Отобразится список всех IP-адресов проекта.
|
||||
6. Внешний IP-адрес сопоставлен с внутренним IP-адресом `10.0.0.10` и отмечен тегом `Внешний IP`. Значение внешнего IP-адреса указано в поле `Имя`.
|
||||
7. Если для внешнего IP-адреса отображается статус `Зарезервирован`, то внешний 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-адрес удаляется и не может быть повторно использован в проекте. Если вам требуется сохранить IP-адрес и использовать его для другой ВМ, то отключите автоудаление адреса. IP-адрес сохранится в вашем проекте и может быть назначен новой ВМ.
|
||||
При удалении ВМ его IP-адрес освобождается и не может быть повторно использован в проекте. Если вам требуется сохранить IP-адрес ВМ и привязать этот адрес новой ВМ, то отключите автоудаление адреса. IP-адрес сохранится в вашем проекте и может быть назначен новой ВМ.
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. Выберите нужный проект в верхнем меню **Проекты**.
|
||||
@@ -91,7 +70,7 @@
|
||||
|
||||
## Присвоить имя IP-адресу
|
||||
|
||||
Имя IP-адреса отображается только на странице **Виртуальные машины → IP-адреса**. На параметрах виртуальной машины отображается значение IP-адреса.
|
||||
Имя IP-адреса отображается только на странице **Облачные вычисления → IP-адреса**. На странице ВМ отображается значение IP-адреса.
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. Выберите нужный проект в верхнем меню **Проекты**.
|
||||
@@ -104,10 +83,6 @@
|
||||
|
||||
## Удалить IP-адрес
|
||||
|
||||
:::warning Важно
|
||||
Не удаляйте внешний IP-адрес из списка IP-адресов. В случае удаления IP-адреса пропадет возможность создания ВМ с доступом в интернет.
|
||||
:::
|
||||
|
||||
Если для IP-адреса установлено автоудаление, то адрес удалится во время удаления ВМ.
|
||||
|
||||
Если для IP-адреса не установлено автоудаление, то адрес удаляется вручную:
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
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, и установка ПО на ВМ
|
||||
---
|
||||
|
||||
# Сети
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
# Подключение ВМ закрытого контура к интернету
|
||||
|
||||
В зависимости от доступов ВМ в Интернет или VPN настройте DNS, NTP и другие службы (пакетный менеджер) для начала установки ПО.
|
||||
|
||||
## Пример конфигурации для службы обновления пакетов
|
||||
|
||||
1. Настройте сервис веб-прокси один из способов:
|
||||
|
||||
:::: tabs
|
||||
= VyOS
|
||||
|
||||
1. Перейдите в режим конфигурирования:
|
||||
|
||||
```sh
|
||||
configure
|
||||
```
|
||||
2. Включите слушание запросов (по умолчанию используется порт 3128):
|
||||
|
||||
```sh
|
||||
set service webproxy listen-address 10.0.0.10 disable-transparent
|
||||
```
|
||||
3. Проверьте корректность конфигурации:
|
||||
|
||||
```sh
|
||||
show service webproxy
|
||||
```
|
||||
4. Сохраните конфигурацию:
|
||||
|
||||
```sh
|
||||
save
|
||||
```
|
||||
5. Примените конфигурацию:
|
||||
|
||||
```sh
|
||||
commit
|
||||
```
|
||||
= Ubuntu
|
||||
|
||||
1. Обновление списка пакетов:
|
||||
|
||||
```sh
|
||||
sudo apt update
|
||||
```
|
||||
2. Установка Tinyproxy:
|
||||
|
||||
```sh
|
||||
sudo apt install tinyproxy
|
||||
```
|
||||
3. По умолчанию Tinyproxy может разрешать доступ только с локальной машины (127.0.0.1). Необходимо разрешить доступ устройствам из вашей локальной сети.
|
||||
|
||||
- откройте конфигурационный файл:
|
||||
|
||||
```sh
|
||||
sudo nano /etc/tinyproxy/tinyproxy.conf
|
||||
```
|
||||
- настройте разрешение доступа с необходимых вам сетей, закомментировав (#) все остальные строки:
|
||||
|
||||
```sh
|
||||
Allow 10.0.0.5/24
|
||||
Allow 0.0.0.0/0 - разрешает доступ из любой сети
|
||||
```
|
||||
- установите порт (по умолчанию 8888):
|
||||
|
||||
```sh
|
||||
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
|
||||
```
|
||||
@@ -1,290 +0,0 @@
|
||||
# Настройка 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-connect-inside.md#2-создать-промежуточную-вм);
|
||||
- одна виртуальная машина с ОС VyOS версии 1.4.0, созданная в **customer site** с доступом в интернет с постоянным публичным IP-адресом `client real ip`.
|
||||
- если в сети **customer site** используется ISO-образ VyOS, то установите OC VyOS на виртуальную машину согласно официальной документации.
|
||||
|
||||

|
||||
|
||||
## 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-адреса:
|
||||
|
||||
```sh
|
||||
curl ifconfig.me
|
||||
```
|
||||
|
||||
- для внутреннего IP-адреса:
|
||||
|
||||
```sh
|
||||
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-адресу:
|
||||
```bash
|
||||
ssh vyos@77.41.188.88
|
||||
```
|
||||
- Перейдите в режим конфигурирования:
|
||||
```bash
|
||||
configure
|
||||
```
|
||||
- Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав `Enter`:
|
||||
```bash
|
||||
run generate pki key-pair install 'beeline-cloud'
|
||||
show pki key-pair 'beeline-cloud' public
|
||||
```
|
||||
Результатом команды будет публичный ключ.
|
||||
|
||||
= customer site
|
||||
|
||||
- Откройте еще один терминал и подключитесь к ВМ с VyOS **customer site** по внутреннему IP-адресу:
|
||||
```bash
|
||||
ssh vyos@172.16.0.10
|
||||
```
|
||||
- Перейдите в режим конфигурирования:
|
||||
```bash
|
||||
configure
|
||||
```
|
||||
- Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав `Enter`:
|
||||
```bash
|
||||
run generate pki key-pair install 'customer-site'
|
||||
show pki key-pair 'customer-site' public
|
||||
```
|
||||
Результатом команды будет публичный ключ.
|
||||
|
||||
::::
|
||||
|
||||
2. Публичные ключи, полученные на шаге 1, необходимо перекрестно добавить на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||
:::: tabs
|
||||
|
||||
= beeline cloud
|
||||
|
||||
```bash
|
||||
set pki key-pair 'customer-site' public key 'FAAOCAQ8AMII...' # - ключ из customer site
|
||||
```
|
||||
|
||||
= customer site
|
||||
|
||||
```bash
|
||||
set pki key-pair 'beeline-cloud' public key 'MIIBIjANBgkqh...' # - ключ из beeline cloud
|
||||
```
|
||||
|
||||
::::
|
||||
|
||||
## 3. Настроить IPSEC
|
||||
|
||||
1. Выберите сетевой интерфейс, на котором будет настраиваться IPSEC-туннель, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||
|
||||
:::: tabs
|
||||
|
||||
= beeline cloud
|
||||
|
||||
```bash
|
||||
set vpn ipsec interface eth1
|
||||
```
|
||||
|
||||
= customer site
|
||||
|
||||
- Узнайте имя сетевого интерфейса на маршрутизаторе, на котором будет настраиваться IPSEC:
|
||||
|
||||
```bash
|
||||
show interfaces
|
||||
```
|
||||
|
||||
- Настройте интерфейс IPSEC:
|
||||
|
||||
```bash
|
||||
set vpn ipsec interface <имя_сетевого_интерфейса>
|
||||
```
|
||||
|
||||
::::
|
||||
|
||||
2. Для настройки IPSEC-туннеля используется протокол IKE набора протоколов IPSEC, который имеет две фазы.
|
||||
- для настройки первой фазы выполните команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||
|
||||
```bash
|
||||
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**:
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
set vpn ipsec site-to-site peer CUSTOMER-SITE connection-type respond
|
||||
```
|
||||
|
||||
= customer site
|
||||
|
||||
```bash
|
||||
set vpn ipsec site-to-site peer BEELINE-CLOUD connection-type initiate
|
||||
```
|
||||
|
||||
::::
|
||||
7. Сохраните конфигурации, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||
|
||||
```bash
|
||||
save
|
||||
```
|
||||
|
||||
8. Примените конфигурации, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||
|
||||
```bash
|
||||
commit
|
||||
```
|
||||
|
||||
## 4. Проверить соединение
|
||||
|
||||
Выполните команду на любом из маршрутизаторов в сети **beeline cloud** или в сети **customer site**:
|
||||
|
||||
```bash
|
||||
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`
|
||||
|
Before Width: | Height: | Size: 46 KiB |
@@ -1,4 +1,4 @@
|
||||
# Создание виртуальной машины
|
||||
# Создание виртуальные машины
|
||||
|
||||
## Создать виртуальную машину
|
||||
|
||||
@@ -9,35 +9,37 @@
|
||||
5. Нажмите **Создать виртуальную машину**.
|
||||
6. В блоке **Имя и расположение** укажите имя и расположение ВМ:
|
||||
- **Имя машины**: введите название ВМ:
|
||||
- длина от 3 до 63 символов;
|
||||
- используйте только строчные латинские буквы, цифры и дефис;
|
||||
- не используйте дефис в начале или в конце имени.
|
||||
- допустимая длина 63 символа с учетом зоны DNS проекта;
|
||||
- **Зона доступности**: выберите подходящую [зону доступности](../compute-overview.md#зоны-доступности).
|
||||
7. В блоке **Образ загрузочного диска** выберите [тип и версию операционной системы](./../compute-overview.md#операционная-система).
|
||||
8. В блоке **Конфигурация** выберите количество vCPU и RAM. Наборы ресурсов заранее скомпонованы по оптимальным параметрам.
|
||||
- Укажите количество создаваемых ВМ.
|
||||
7. В блоке **Выбор образа** выберите [тип и версию операционной системы](./../compute-overview.md#операционная-система).
|
||||
8. В блоке **Конфигурация** выберите количество ОЗУ и ЦПУ. Наборы ресурсов заранее скомпонованы по оптимальным параметрам.
|
||||
::: tip Информация
|
||||
При выборе ресурсов рекомендуется в первую очередь ориентироваться на требуемое количество RAM.
|
||||
При выборе ресурсов рекомендуется в первую очередь ориентироваться на требуемое количество ОЗУ.
|
||||
:::
|
||||
9. В блоке **Диски** настройте загрузочный диск и, при необходимости, добавьте дополнительные диски:
|
||||
- **Загрузочный диск**: выберите [тип диска](../compute-overview.md#диски) и укажите размер загрузочного диска.
|
||||
- Рекомендуется создать дополнительный диск для размещения ваших данных: нажмите **Добавить диск** и настройте дополнительный диск. [Дополнительный диск можно создать](#добавить-диск) позже.
|
||||
- **Загрузочный диск**: выберите тип хранения и укажите размер загрузочного диска.
|
||||
- Рекомендуется создать дополнительный диск для размещения ваших данных: нажмите **Добавьте диск** и настройте дополнительный диск. [Дополнительный диск можно создать](#добавить-диск) позже.
|
||||
::: warning Важно
|
||||
К ВМ можно подключить не более 28 дисков, включая загрузочный.
|
||||
:::
|
||||
10. Выберите SSH-ключи, с помощью которых вы можете подключаться к ВМ по SSH. Если подходящий SSH-ключ отсутствует, то нажмите [**Создать ключ**](../../admin/ssh.md#создать-ssh-ключ).
|
||||
11. В блоке **Доступ** укажите логин пользователя для подключения к ВМ:
|
||||
- **Логин**: введите логин пользователя латинскими символами в нижнем регистре.
|
||||
12. В блоке **Настройка сети** выберите:
|
||||
- **IPv4-адрес**: выберите способ получения IP-адреса для ВМ:
|
||||
- выберите **Внутренний (назначится автоматически)**, чтобы получить IP-адрес автоматически, автоматически назначаются [внутренние IP-адреса](compute-ip.md#внутренние-ip-адреса);
|
||||
- выберите адрес из списка. В списке адресов отображается [зарезервированные IP-адреса](compute-ip.md#статусы-ip-адресов).
|
||||
13. В блоке **Размещения** выберите:
|
||||
11. В блоке **Настройки сети** выберите:
|
||||
- **IPv4-адрес**: выберите способ получения внутреннего IP-адреса для ВМ:
|
||||
- выберите **Автоматически**, чтобы получить IP-адрес автоматически;
|
||||
- выберите адрес из списка. В списке адресов отображаются [созданные вручную IP-адреса](compute-ip.md#создать-ip-адрес) и [сохраненные IP-адреса](compute-ip.md#сохранить-ip-адрес-в-проекте), которые доступны для переиспользования.
|
||||
::: warning Важно
|
||||
Вашей организации предоставлен один [публичный IP-адрес](compute-ip.md#типы-адресов). Назначьте публичный IP-адрес ВМ, создаваемой в DMZ-зоне, и получите доступ из интернета к виртуальным машинам.
|
||||
:::
|
||||
12. В блоке **Размещения** выберите:
|
||||
- **Группа размещения**: выберите правило размещения ВМ на физическом хосте. [Группу размещения](compute-affinity.md) создайте заранее.
|
||||
14. Отметьте **Расширенные параметры**, чтобы использовать [cloud-init](https://cloudinit.readthedocs.io/en/latest/) для настройки ВМ.
|
||||
15. Нажмите **Создать виртуальную машину**.
|
||||
13. Установите флажок **Расширенные параметры**, чтобы использовать [cloud-init](https://cloudinit.readthedocs.io/en/latest/) для настройки ВМ.
|
||||
14. Нажмите **Создать виртуальную машину**.
|
||||
|
||||
ВМ появится на странице сервиса **Виртуальные машины** в разделе **Виртуальные машины** в статусе `Cоздается`. Выполняется сборка виртуального ВМ, назначается [IP-адрес](compute-ip.md) и полное доменное имя (FQDN). После окончания сборки ВМ перейдет в статус `Включена`.
|
||||
|
||||
Виртуальная машина будет создана с `root`-правами.
|
||||
|
||||
## Добавить диск
|
||||
|
||||
Добавление дополнительного диска к ВМ состоит из двух шагов:
|
||||
|
||||
@@ -10,67 +10,24 @@
|
||||
- количество CPU;
|
||||
- объем RAM;
|
||||
- тип и размер диска;
|
||||
- зона доступности.
|
||||
- регион доступности.
|
||||
|
||||
## Зоны доступности
|
||||
|
||||
Зона доступности — это один или несколько центров обработки данных (ЦОД), в которых могут быть размещены компоненты облачной инфраструктуры.
|
||||
Виртуальную машину можно создать в одной из зон доступности:
|
||||
|
||||
| Зона доступности |Дата-центр |
|
||||
|---|---|
|
||||
|`msk-dc-1`|[Останкино](https://dc.ostankino.ru/)|
|
||||
<!--|`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#доступные-центры-обработки-данных)|-->
|
||||
- `Inside` — внутренняя зона не подразумевает доступ из интернета к виртуальным машинам.
|
||||
- `DMZ` — демилитаризованная зона подразумевает доступ из интернета к виртуальным машинам.
|
||||
|
||||
Доступны сетевые периметры:
|
||||
К виртуальной машине, созданной в зоне `DMZ`, можно подключиться из интернета по SSH.
|
||||
|
||||
- `Inside` — закрытый контур, не подразумевает доступ в/из интернета к виртуальным машинам. По умолчанию все ВМ в зоне `Inside` имеют маршруты до сетей `Inside` и `DMZ`.
|
||||
- `DMZ` — демилитаризованная зона, подразумевает доступ из интернета к виртуальным машинам. По умолчанию все ВМ в зоне `DMZ` с внутренним IP-адресом имеют доступ в интернет через служебный внешний IP-организации организации, недоступный пользователям для управления
|
||||
Доступ из интернета к виртуальным машинам, созданным в зоне `Inside` осуществляется:
|
||||
|
||||
## Шаблоны конфигурации ВМ
|
||||
- создайте ВМ в зоне `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`.
|
||||
|
||||
## Операционная система
|
||||
|
||||
Для виртуальных машин подготовлены образы операционных систем UNIX.
|
||||
|
||||
В операционных системах доступен `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 Гб |
|
||||
|
||||
## Группы виртуальных машин
|
||||
## Размещение виртуальных машин
|
||||
|
||||
Группу виртуальных машин внутри одной зоны доступности можно объединить в соответствии с определенной политикой размещения. Доступны политики:
|
||||
|
||||
@@ -81,3 +38,56 @@
|
||||
- Правило `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 |-->
|
||||
@@ -4,7 +4,7 @@ section_links:
|
||||
link: /compute/compute-overview.md
|
||||
description: Обзор сервиса, решаемые задачи, характеристики оборудования
|
||||
- title: Виртуальные машины
|
||||
link: /compute/compute-how-to/compute-index.md
|
||||
link: /compute/compute-how-to/compute-Index.md
|
||||
description: Создание виртуальной машины и подключение к ней, управление виртуальной машиной
|
||||
- title: Диски
|
||||
link: /compute/compute-how-to/compute-disks.md
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
# 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.
|
||||
@@ -12,14 +12,14 @@ features:
|
||||
- title: Начало работы
|
||||
icon: coffee
|
||||
link: /start/index
|
||||
- title: Облачная платформа
|
||||
- title: Обзор платформы
|
||||
icon: tv_modern
|
||||
link: /platform/index
|
||||
- title: Сервисы
|
||||
scroll_to: "#home-services-section-title"
|
||||
icon: cloud
|
||||
- title: Администрирование
|
||||
link: /admin/index
|
||||
link: ''
|
||||
icon: profile_circled
|
||||
items: [
|
||||
{ title: Пользователи },
|
||||
@@ -34,11 +34,12 @@ features:
|
||||
{ title: API }
|
||||
]
|
||||
- title: Мониторинг
|
||||
scroll_to: ""
|
||||
icon: graph_up
|
||||
link:
|
||||
- title: Биллинг
|
||||
icon: wallet
|
||||
link:
|
||||
link: /billing/index
|
||||
disabled: true
|
||||
- title: Безопасность и стандарты
|
||||
icon: security
|
||||
link: ''
|
||||
@@ -148,10 +149,9 @@ services:
|
||||
icon: palette
|
||||
- title: AI инструменты
|
||||
articles:
|
||||
- title: AI платформа
|
||||
- title: AI песочница
|
||||
description: В работе
|
||||
icon: robot
|
||||
link: /ai/index
|
||||
- title: Мультимодельная AI фабрика
|
||||
description: В работе
|
||||
icon: robot
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
# Мониторинг
|
||||
|
||||
Мониторинг позволяет отслеживать использование ресурсов в Beeline Cloud. С помощью мониторинга можно своевременно выявлять превышение лимитов, оптимизировать распределение ресурсов и предотвращать возможные проблемы в работе инфраструктуры.
|
||||
|
||||
::: info Примечание
|
||||
Новые виртуальные машины появляются в мониторинге через 30 минут после создания.
|
||||
:::
|
||||
|
||||
## Обзор
|
||||
|
||||
В этом разделе вы можете контролировать следующие метрики:
|
||||
|
||||
- Включенные CPU в VDC, `шт.`.
|
||||
- Включенная оперативная память, `ГБ`.
|
||||
- CPU Ready, `%`.
|
||||
- Использование CPU, `%`.
|
||||
- Использование оперативной памяти, `%`.
|
||||
- RAM Swap + Balloon, `%`.
|
||||
|
||||
Выбрать интервал времени, за который будут показаны данные, можно в поле **Период**. Вы также можете включить автоматическое обновление графиков с заданной периодичностью в поле **Автообновление**.
|
||||
@@ -1,27 +0,0 @@
|
||||
# Обзор
|
||||
|
||||
## Сервисы
|
||||
|
||||
Каждый сервис Beeline Cloud предоставляет определенный набор облачных ресурсов и инструменты для управления этими ресурсами. Все сервисы Beeline Cloud объединены в каталог и размещены в личном кабинете в разделе **Сервисы**.
|
||||
|
||||
Список сервисов можно посмотреть в разделе «Сервисы» в личном кабинете.
|
||||
|
||||
Сервисы с отметкой `По заявке` подключаются по запросу специалистами Beeline Cloud. Сервисы без отметки `По заявке` — цифровые, и подключаются самостоятельно.
|
||||
|
||||
Доступ к сервисам Beeline Cloud предоставляется [зарегистрированным пользователям](../start/getting-started.md#1-регистрация-в-beeline-cloud).
|
||||
|
||||
## Центры обработки данных
|
||||
|
||||
Инфраструктура Beeline Cloud размещена в надежных дата-центра уровня Tier 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|
|
||||
|Новосибирск|РТК-ЦОД|РФ, г. Новосибирск, ул. Демакова, д. 42|III|
|
||||
|
||||
- **ЯТЦ** — Ярославский технический центр.
|
||||
@@ -0,0 +1 @@
|
||||
# Архитектура
|
||||
@@ -0,0 +1 @@
|
||||
# Терминология
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Обзор
|
||||
link: /platform/about.md
|
||||
description: Информация о сервисах Beeline Cloud, ЦОД
|
||||
- title: Сервисы
|
||||
link: /platform/services/services.md
|
||||
description: Сервисы Beeline Cloud
|
||||
- title: Техническая поддержка
|
||||
link: /platform/support/support-overview.md
|
||||
description: Условия оказания и способы обращения в техническую поддержку
|
||||
@@ -17,7 +17,7 @@ Beeline Cloud — облачная платформа, основанная на
|
||||
- быстрое развертывание сервисов;
|
||||
- безопасное хранение данных — наши системы хранения данных соответствуют строгим стандартам;
|
||||
- защита данных от утечек и несанкционированного доступа;
|
||||
- гибкое масштабирование — увеличение или уменьшение ресурсов по мере необходимости.
|
||||
- гибкое масштабирование — увеличение или уменьшение ресурсы по мере необходимости.
|
||||
- прогнозируемые расходы.
|
||||
|
||||
Облачная платформа полностью соответствует требованиям по защите ПДн для первого уровня защищенности (УЗ-1), что позволяет безопасно размещать и обрабатывать персональные данные.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
# Соглашение об уровне обслуживания
|
||||
@@ -0,0 +1,9 @@
|
||||
# Сервисы
|
||||
|
||||
Каждый сервис Beeline Cloud предоставляет определенный набор облачных ресурсов и инструменты для управления этими ресурсами. Все сервисы Beeline Cloud объединены в каталог и размещены в личном кабинете в разделе **Сервисы**.
|
||||
|
||||
Список сервисов можно посмотреть в разделе «Сервисы» в личном кабинете.
|
||||
|
||||
Сервисы с отметкой `По заявке` подключаются по запросу специалистами Beeline Cloud. Сервисы без отметки `По заявке` — цифровые, и подключаются самостоятельно.
|
||||
|
||||
Доступ к сервисам Beeline Cloud предоставляется [зарегистрированным пользователям](./../../start/getting-started.md#шаг-1-регистрация-в-beeline-cloud).
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
| Способ связи | Описание | Время работы |
|
||||
|--------|----------|---------------------|
|
||||
|Центр поддержки| [lk.cloud.beeline.ru/support-center](https://lk.cloud.beeline.ru/support-center) | круглосуточно |
|
||||
|Портал технической поддержки| /скоро появится | круглосуточно |
|
||||
|Почта | [servicedesk@datafort.ru](mailto:servicedesk@datafort.ru) | круглосуточно|
|
||||
|
||||
## Сроки обработки запросов
|
||||
|
||||
|
Before Width: | Height: | Size: 259 KiB After Width: | Height: | Size: 259 KiB |
@@ -1,24 +0,0 @@
|
||||
<svg width="104" height="25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M84.04 7.02c2.024 0 3.464-1.063 3.74-3.395h-1.99c-.205.823-.686 1.234-1.747 1.234-1.063 0-1.612-.411-1.783-1.234h-1.99c.272 2.332 1.746 3.395 3.77 3.395zm-40.827 9.485V8.084h-2.502V20.36h2.607l5.04-8.563v8.563h2.503V8.084h-2.606l-5.042 8.421zM32.832 8.186c-1.983 0-3.674.924-4.55 2.639.125-2.782.678-4.437 3.898-4.868l5.008-.687-.206-2.743-5.213.72c-4.493.617-5.762 4.082-5.762 9.533 0 4.767 2.161 7.819 6.173 7.819 3.91 0 6.036-3.02 6.036-6.55s-2.365-5.863-5.384-5.863zm-.652 9.704c-2.264 0-3.6-1.645-3.6-4.115v-1.268c.479-.96 1.75-1.715 3.6-1.715 1.956 0 3.463.925 3.463 3.257s-1.199 3.841-3.463 3.841zm67.488-9.806v4.594h-4.87V8.082h-2.502V20.36h2.502v-5.145h4.87v5.145h2.504V8.084h-2.504zm-18.165 8.421V8.084H79V20.36h2.607l5.04-8.563v8.563h2.503V8.084h-2.606l-5.04 8.421zm-26.139-.912c-.274 1.372-.652 1.956-1.407 1.956-.411 0-.72-.035-.925-.103v2.846c.308.138.584.24 1.233.24 1.304 0 2.23-.754 2.676-1.92.273-.72.446-1.715.584-2.984.137-1.269.24-2.949.24-4.937h3.327v9.67h2.503V8.085h-7.921c0 3.703-.103 6.138-.31 7.51zm20.044 1.44.035-4.87c.035-3.086-1.853-4.355-4.596-4.355-2.264 0-4.32 1.234-4.629 4.115h2.4c.138-1.131 1.028-1.51 2.229-1.51 1.23 0 2.054.379 2.178 1.642l-3.069 1.24c-2.091.857-3.668 1.817-3.668 3.84 0 2.092 1.166 3.43 3.498 3.43 1.61 0 2.628-.756 3.443-2.234.122 1.478 1.102 2.132 2.798 2.132h.686v-2.367h-.205c-.792 0-1.1-.309-1.1-1.063zm-4.699.96c-1.166 0-2.023-.308-2.023-1.371 0-.926.72-1.337 1.955-1.853l2.39-.994-.025 3.326c-.411.516-1.234.892-2.297.892z"
|
||||
fill="#fff"/>
|
||||
<path
|
||||
d="M10.005 22.498c5.524 0 10.002-4.477 10.002-10 0-5.521-4.478-9.998-10.002-9.998C4.48 2.5.002 6.977.002 12.499s4.478 9.999 10.003 9.999z"
|
||||
fill="#FFC800"/>
|
||||
<path
|
||||
d="M14.309 19.948c-3.397 1.96-7.081 2.311-9.434 1.137A10.007 10.007 0 0 0 20.01 12.35c-.16 2.625-2.305 5.64-5.702 7.6zM11.273 3.233c.688 1.191-.976 3.442-3.72 5.023-2.743 1.581-5.523 1.9-6.211.706a1.092 1.092 0 0 1-.076-.182c-.179-.555.035-1.273.549-2.03a9.942 9.942 0 0 1 3.187-2.912 9.958 9.958 0 0 1 4.118-1.3c.912-.068 1.64.107 2.031.537.047.053.088.105.123.16z"
|
||||
fill="#000"/>
|
||||
<path
|
||||
d="M15.525 4.523c1.203 2.082-1.224 5.731-5.418 8.152-4.195 2.421-8.571 2.697-9.772.615a2.535 2.535 0 0 1-.328-1.148 9.895 9.895 0 0 0 1.02 4.77l.014.026c.363.626.898 1.119 1.566 1.476 2.353 1.259 6.332.826 10.053-1.321 3.719-2.148 6.084-5.374 6.171-8.04.025-.752-.132-1.46-.49-2.087a9.936 9.936 0 0 0-3.628-3.29 2.514 2.514 0 0 1 .814.851l-.002-.004z"
|
||||
fill="#000"/>
|
||||
<path
|
||||
d="M10.007 22.498c5.524 0 10.002-4.477 10.002-10 0-5.521-4.478-9.998-10.002-9.998C4.482 2.5.004 6.977.004 12.499s4.478 9.999 10.003 9.999z"
|
||||
fill="url(#a)"/>
|
||||
<defs>
|
||||
<radialGradient id="a" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(10.006 12.5) scale(10.0025)">
|
||||
<stop offset=".5" stop-color="#fff" stop-opacity="0"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity=".35"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.9 KiB |
@@ -1,24 +0,0 @@
|
||||
<svg width="104" height="25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M84.04 7.02c2.024 0 3.464-1.063 3.74-3.395h-1.99c-.205.823-.686 1.234-1.747 1.234-1.063 0-1.612-.411-1.783-1.234h-1.99c.272 2.332 1.746 3.395 3.77 3.395zm-40.827 9.485V8.084h-2.502V20.36h2.607l5.04-8.563v8.563h2.503V8.084h-2.606l-5.042 8.421zM32.832 8.186c-1.983 0-3.674.924-4.55 2.639.125-2.782.678-4.437 3.898-4.868l5.008-.687-.206-2.743-5.213.72c-4.493.617-5.762 4.082-5.762 9.533 0 4.767 2.161 7.819 6.173 7.819 3.91 0 6.036-3.02 6.036-6.55s-2.365-5.863-5.384-5.863zm-.652 9.704c-2.264 0-3.6-1.645-3.6-4.115v-1.268c.479-.96 1.75-1.715 3.6-1.715 1.956 0 3.463.925 3.463 3.257s-1.199 3.841-3.463 3.841zm67.488-9.806v4.594h-4.87V8.082h-2.502V20.36h2.502v-5.145h4.87v5.145h2.504V8.084h-2.504zm-18.165 8.421V8.084H79V20.36h2.607l5.04-8.563v8.563h2.503V8.084h-2.606l-5.04 8.421zm-26.139-.912c-.274 1.372-.652 1.956-1.407 1.956-.411 0-.72-.035-.925-.103v2.846c.308.138.584.24 1.233.24 1.304 0 2.23-.754 2.676-1.92.273-.72.446-1.715.584-2.984.137-1.269.24-2.949.24-4.937h3.327v9.67h2.503V8.085h-7.921c0 3.703-.103 6.138-.31 7.51zm20.044 1.44.035-4.87c.035-3.086-1.853-4.355-4.596-4.355-2.264 0-4.32 1.234-4.629 4.115h2.4c.138-1.131 1.028-1.51 2.229-1.51 1.23 0 2.054.379 2.178 1.642l-3.069 1.24c-2.091.857-3.668 1.817-3.668 3.84 0 2.092 1.166 3.43 3.498 3.43 1.61 0 2.628-.756 3.443-2.234.122 1.478 1.102 2.132 2.798 2.132h.686v-2.367h-.205c-.792 0-1.1-.309-1.1-1.063zm-4.699.96c-1.166 0-2.023-.308-2.023-1.371 0-.926.72-1.337 1.955-1.853l2.39-.994-.025 3.326c-.411.516-1.234.892-2.297.892z"
|
||||
fill="#000"/>
|
||||
<path
|
||||
d="M10.005 22.498c5.524 0 10.002-4.477 10.002-10 0-5.521-4.478-9.998-10.002-9.998C4.48 2.5.002 6.977.002 12.499s4.478 9.999 10.003 9.999z"
|
||||
fill="#FFC800"/>
|
||||
<path
|
||||
d="M14.309 19.948c-3.397 1.96-7.081 2.311-9.434 1.137A10.007 10.007 0 0 0 20.01 12.35c-.16 2.625-2.305 5.64-5.702 7.6zM11.273 3.233c.688 1.191-.976 3.442-3.72 5.023-2.743 1.581-5.523 1.9-6.211.706a1.092 1.092 0 0 1-.076-.182c-.179-.555.035-1.273.549-2.03a9.942 9.942 0 0 1 3.187-2.912 9.958 9.958 0 0 1 4.118-1.3c.912-.068 1.64.107 2.031.537.047.053.088.105.123.16z"
|
||||
fill="#000"/>
|
||||
<path
|
||||
d="M15.525 4.523c1.203 2.082-1.224 5.731-5.418 8.152-4.195 2.421-8.571 2.697-9.772.615a2.535 2.535 0 0 1-.328-1.148 9.895 9.895 0 0 0 1.02 4.77l.014.026c.363.626.898 1.119 1.566 1.476 2.353 1.259 6.332.826 10.053-1.321 3.719-2.148 6.084-5.374 6.171-8.04.025-.752-.132-1.46-.49-2.087a9.936 9.936 0 0 0-3.628-3.29 2.514 2.514 0 0 1 .814.851l-.002-.004z"
|
||||
fill="#000"/>
|
||||
<path
|
||||
d="M10.007 22.498c5.524 0 10.002-4.477 10.002-10 0-5.521-4.478-9.998-10.002-9.998C4.482 2.5.004 6.977.004 12.499s4.478 9.999 10.003 9.999z"
|
||||
fill="url(#a)"/>
|
||||
<defs>
|
||||
<radialGradient id="a" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(10.006 12.5) scale(10.0025)">
|
||||
<stop offset=".5" stop-color="#fff" stop-opacity="0"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity=".35"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.9 KiB |
@@ -23,41 +23,19 @@
|
||||
- создание других пользователей в проекте недоступно;
|
||||
- установлены [квоты](#квоты-сервисов) на ресурсы сервисов.
|
||||
|
||||
## Квоты сервисов
|
||||
### Квоты сервисов
|
||||
|
||||
- [Виртуальные дата-центры на VMware](../vdc/vdc-quatos.md)
|
||||
|
||||
- Виртуальные машины:
|
||||
::: details Виртуальные дата-центры на VMware
|
||||
|
||||
| Вид ограничения | Значение |
|
||||
|---|---|
|
||||
|Количество публичных IP-адресов | 1 |
|
||||
|Суммарное количество vCPU для всех виртуальных машин |32|
|
||||
|Суммарный объем RAM для всех виртуальных машин | 256 ГБ|
|
||||
|Суммарный объем дисков, включая [образы загрузочных дисков](../compute/compute-overview.md#операционная-система) | 200 ГБ |
|
||||
| Количество виртуальных дата-центров в проекте | 1 |
|
||||
| Количество vCPU в одном дата-центре | 4 |
|
||||
| Объем RAM в одном дата-центре | 8 Гб |
|
||||
| Объем дискового пространства в одном дата-центре | 80 Гб |
|
||||
|Количество публичных IP-адресов в одном дата-центре| 1 |
|
||||
|
||||
Доступные шаблоны конфигураций 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 |
|
||||
:::
|
||||
|
||||
## Переход на платное использование
|
||||
|
||||
|
||||
@@ -1,30 +1,18 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Обзор сервиса
|
||||
link: /vdc/vdc-overview.md
|
||||
link: /vdc/vdc-overview.md.md
|
||||
description: Обзор сервиса, решаемые задачи, характеристики оборудования
|
||||
- title: Быстрый старт
|
||||
link: /vdc/vdc-getting-started.md
|
||||
description: Создание виртуальной машины в дата-центре
|
||||
description: Создание виртуальной машины в дата-центре и подключение к ней
|
||||
- title: Виртуальные дата-центры
|
||||
link: /vdc/vdc-how-to/vdc-index.md
|
||||
description: Создание виртуального дата-цента, вход с двухфакторной аутентификацией
|
||||
- title: Виртуальные машины
|
||||
link: /vdc/vdc-how-to/vm/vm-index.md
|
||||
description: Управление виртуальными машинами в дата-центре с помощью Cloud Director
|
||||
- title: Сети
|
||||
link: /vdc/vdc-how-to/networks/networks-index.md
|
||||
description: Настройка доступа дата-центра в интернет, доступа ВМ в/из интернета
|
||||
- title: Пользователи и роли
|
||||
link: /vdc/vdc-how-to/users/users-index.md
|
||||
description: Создание пользователей в дата-центре, ролевая модель
|
||||
- title: Двухфакторная аутентификация
|
||||
link: /vdc/vdc-how-to/vdc-2fa.md
|
||||
description: Подключение двухфакторной аутентификацией
|
||||
---
|
||||
|
||||
# Виртуальные дата-центры на VMware
|
||||
|
||||
Сервис **Виртуальные дата-центры на VMware** предоставляет платформу для создания виртуальных дата-центров на базе физической инфраструктуры Beeline Cloud.
|
||||
|
||||
В [личном кабинете](https://lk.cloud.beeline.ru/) вы можете заказать виртуальный дата-центр с выделенным внешним IP-адресом. Управление ресурсами дата-центра выполняется в панели управления Cloud Director. Для усиления безопасности подключается [двухфакторная аутентификация (2FA)](./vdc-how-to/vdc-2fa.md) при входе в дата-центр.
|
||||
В [личном кабинете](https://lk.cloud.beeline.ru/) вы можете заказать виртуальный дата-центр с выделенным публичным IP-адресом. Управлять ресурсами дата-центра — в панели управления Cloud Director. Для усиления безопасности подключается [двухфакторная аутентификация (2FA)](./vdc-how-to/vdc-2fa.md) при входе в дата-центр.
|
||||
|
||||
@@ -1,62 +1,40 @@
|
||||
# Быстрый старт
|
||||
|
||||
В этой инструкции рассмотрен процесс создания виртуального дата-центра и создание в нем виртуальной машины из шаблона.
|
||||
Раздел в разработке.
|
||||
<!--В этой инструкции рассмотрен процесс создания виртуального ВМа UNIX и подключение к нему по протоколу SSH.
|
||||
|
||||
## Перед началом работы
|
||||
## Создать виртуальный ВМ
|
||||
|
||||
- [Зарегистрируйтесь](../start/getting-started.md#1-регистрация-в-beeline-cloud) в личном кабинете Beeline Cloud.
|
||||
1. Отк
|
||||
2. Выбрать проект.
|
||||
3. На странице **Обзор** убедитесь в наличии свободных ресурсов.
|
||||
4. Нажмите **Создать ВМ**.
|
||||
5. Выберите образ ОС UNIX.
|
||||
6.
|
||||
7. Нажмите **Cоздать ВМ**.
|
||||
|
||||
## 1. Создать виртуальный дата-центр
|
||||
Виртуальный ВМ отобразится на странице **Облачные вычисления → ВМы**. Выполняется сборка виртуального ВМа. После окончания сборки ВМ перейдет в статус `Включен`.
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. На странице **Мой проект** нажмите кнопку **Создать ресурс → Виртуальный дата-центр**.
|
||||
3. [Заполните](./vdc-how-to/vdc-create.md#создать-дата-центр) параметры виртуального дата-центра.
|
||||
:::warning Важно
|
||||
Общее количество ресурсов в виртуальном дата-центре указывайте в пределах [квот сервиса](vdc-quatos.md#бесплатный-период) для периода [бесплатного тестирования](../start/trial.md).
|
||||
:::
|
||||
4. Нажмите **Создать дата-центр**.
|
||||
## Подключиться к ВМу по SSH
|
||||
|
||||
Далее подключите двухфакторную для входа в панель управления виртуальным дата-центром.
|
||||
Для подключения к виртуальному ВМу по SSH выполните команду в терминале:
|
||||
|
||||
## 2. Подключить двухфакторную аутентификацию
|
||||
- по IP-адресу ВМа:
|
||||
|
||||
1. [Войдите](https://msk1.mfa.dfcloud.ru/) на портал двухфакторной аутентификации:
|
||||
- введите логин и пароль, учетные данные можно посмотреть в личном кабинете:
|
||||
- вернитесь в личный кабинет на страницу **Виртуальные дата-центры**;
|
||||
- нажмите на имя дата-центра;
|
||||
- на вкладке **Параметры подключения** указаны логин и пароль для входа на портал 2FA.
|
||||
2. Следуйте инструкциям для [установки](./vdc-how-to/vdc-2fa-start.md#2-установить-multifactor) и [активации](./vdc-how-to/vdc-2fa-start.md#3-активировать-второй-фактор) приложения Multifactor.
|
||||
3. Установите пароль для входа в виртуальный дата-центр:
|
||||
- [войдите](https://msk1.mfa.dfcloud.ru/) на портал двухфакторной аутентификации;
|
||||
- введите логин и пароль, которые вы вводили на шаге 1;
|
||||
- в приложении Multifactor нажмите кнопку **Подтвердить**;
|
||||
- придумайте новый пароль и подтвердите его;
|
||||
- [войдите](https://msk1.mfa.dfcloud.ru/) на портал двухфакторной аутентификации с новым паролем;
|
||||
- в приложении Multifactor нажмите кнопку **Подтвердить**.
|
||||
```
|
||||
ssh -l <логин пользователя> -i <путь до приватного ключа> <IP-адрес ВМа>
|
||||
```
|
||||
- по полному доменному имени ВМа (FQDN):
|
||||
|
||||
## 3. Войти в виртуальный дата-центр
|
||||
```
|
||||
ssh -l <логин пользователя> -i <путь до приватного ключа> <FQDN ВМа>
|
||||
```
|
||||
|
||||
1. Вернитесь в личный кабинет на страницу **Виртуальные дата-центры**.
|
||||
2. Нажмите на имя дата-центра.
|
||||
3. Скопируйте и вставьте в браузер ссылку, содержащуюся в **Панель управления дата-центром**.
|
||||
4. Введите имя пользователя и пароль:
|
||||
- **User name**: перейдите в личный кабинет и скопируйте имя пользователя из поля **Логин**;
|
||||
- **Password**: введите пароль от дата-центра, установленный на [шаге 3 п. 2. Подключить двухфакторную аутентификацию](#2-подключить-двухфакторную-аутентификацию).
|
||||
5. Подтвердите вход в приложении Multifactor на своем смартфоне.
|
||||
Пример команды подключения к ВМу по IP-адресу:
|
||||
|
||||
## 4. Создать виртуальную машину из шаблона
|
||||
```
|
||||
$ ssh -l ivanov -i /home/user/.ssh/id_rsa 10.0.0.1
|
||||
```
|
||||
|
||||
1. В меню слева выберите **Data Centers → vAPPS**.
|
||||
2. Нажмите **NEW VAPP**.
|
||||
3. Заполните параметры vAPP:
|
||||
- **Name**: введите название vAPP;
|
||||
- **Description**: введите описание vApp;
|
||||
- включите опцию **Power on**.
|
||||
4. Нажмите **ADD VIRTUAL MACHINE**, чтобы добавить в vApp виртуальную машину.
|
||||
5. Заполните параметры ВМ:
|
||||
- **Name**: введите название ВМ;
|
||||
- **Type**: выберите *From Template* и выберите нужный шаблон для создания ВМ;
|
||||
6. Таблицу **NICs** пропустите.
|
||||
7. Нажмите **OK**, затем нажмите **Create**.
|
||||
|
||||
Созданная ВМ доступна в списке **Virtual Machines**.
|
||||
## Далее
|
||||
-->
|
||||
@@ -1,92 +0,0 @@
|
||||
# Настройка доступа к ВМ из интернета
|
||||
|
||||
Чтобы настроить доступ в интернет:
|
||||
|
||||
1. Добавьте правило NAT.
|
||||
2. Создайте набор IP-адресов.
|
||||
3. Настройте брандмауэр.
|
||||
|
||||
## NAT
|
||||
|
||||
NAT (Network Address Translation) используется для преобразования IP-адресов при прохождении трафика через шлюз. В Cloud Director параметр NAT Action определяет, как именно выполняется трансляция адресов.
|
||||
|
||||
### Типы NAT Action
|
||||
|
||||
**DNAT**
|
||||
|
||||
Назначает внешний IP-адрес на внутренний. Используется, когда нужно предоставить доступ из Интернета или внешней сети к виртуальной машине во внутреннем сегменте Например, внешний запрос к 203.0.113.10:80 перенаправляется на внутренний сервер 192.168.10.5:80.
|
||||
|
||||
**SNAT**
|
||||
|
||||
Подменяет внутренний IP на внешний. Используется, когда виртуальные машины выходят в Интернет или внешнюю сеть. Например, запрос от 192.168.10.5 в Интернет будет выглядеть как исходящий с 203.0.113.10.
|
||||
|
||||
**NO DNAT**
|
||||
|
||||
Исключает правило DNAT. Позволяет явно указать, что для выбранного диапазона IP DNAT не применяется. Используется для finer-grained контроля, когда часть трафика должна обходить DNAT.
|
||||
|
||||
**NO SNAT**
|
||||
|
||||
Исключает правило SNAT. Позволяет указать, что для определенного диапазона исходящий трафик не будет преобразовываться во внешний IP. Используется, если нужно сохранить исходные адреса внутри определенных сетей.
|
||||
|
||||
**REFLEXIVE**
|
||||
|
||||
Создает двустороннее правило NAT, которое автоматически применяет трансляцию в обоих направлениях.
|
||||
|
||||
## Добавить правило NAT
|
||||
|
||||
1. На вкладке **Data Centers** перейдите в вашу организацию.
|
||||
2. Перейдите в раздел **Networking** → **Edges**.
|
||||
3. Выберите шлюз, который вы хотите подключить к сети.
|
||||
4. Перейдите в раздел **Services** → **NAT**.
|
||||
5. Нажмите кнопку **New**.
|
||||
6. Укажите имя сети.
|
||||
7. (необязательно) Опишите назначение сети.
|
||||
8. В поле **NAT Action** выберите `DNAT`.
|
||||
9. В поле **External IP** укажите IP-адрес или подсеть в формате CIDR.
|
||||
::: tip Примечание
|
||||
Посмотреть доступный внешний IP-адрес можно нажав на **ℹ**.
|
||||
:::
|
||||
10. В поле **Internal IP** укажите внутренний IP-адрес или подсеть в формате CIDR (например, `192.168.0.3`).
|
||||
11. В поле **Application** нажмите **Редактировать**.
|
||||
12. Включите тумблер **Choose a specific application**.
|
||||
13. Из списка выберите `RDP`.
|
||||
14. Нажмите кнопку **Save**.
|
||||
15. Нажмите кнопку **Save** еще раз.
|
||||
|
||||
## Создать набор IP-адресов
|
||||
|
||||
1. Перейдите в раздел **Security** → **IP Sets**.
|
||||
2. Нажмите кнопку **New**.
|
||||
3. Укажите имя набора IP-адресов.
|
||||
4. (необязательно) Опишите назначение набора IP-адресов.
|
||||
5. Добавьте в набор подсеть в формате CIDR, которую вы использовали как **Internal IP** в NAT.
|
||||
6. Нажмите кнопку **Save**.
|
||||
|
||||
## Настроить брандмауэр
|
||||
|
||||
1. Перейдите в раздел **Services** → **Firewall**.
|
||||
2. Нажмите кнопку **New**.
|
||||
3. Укажите имя правила.
|
||||
4. В поле **Source** нажмите **Редактировать**.
|
||||
5. Включите тумблер **Any Source**.
|
||||
6. Нажмите кнопку **Keep**.
|
||||
7. В поле **Application** нажмите **Редактировать**.
|
||||
8. Включите тумблер **Choose a specific application**.
|
||||
9. Из списка выберите `RDP`.
|
||||
10. Нажмите кнопку **Save**.
|
||||
11. Перейдите в **Destination**.
|
||||
12. Укажите созданный ранее набор IP-адресов.
|
||||
13. Нажмите кнопку **Keep**.
|
||||
14. В поле **Action** выберите действие: `Allow`.
|
||||
15. Нажмите кнопку **Save**.
|
||||
|
||||
## Проверить подключение
|
||||
|
||||
1. Откройте терминал.
|
||||
2. Выполните следующую команду в зависимости от вашей ОС:
|
||||
|
||||
На Windows: `Test-NetConnection -ComputerName <адрес> -Port <порт>`
|
||||
На macOS: `nc -zv <адрес> <порт>`
|
||||
На Linux: `nc -zv <адрес> <порт>`
|
||||
|
||||
Если у вас нет утилиты для проверки подключения, установите ее.
|
||||
@@ -1,74 +0,0 @@
|
||||
# Подключение виртуальной машины в vApp к сети
|
||||
|
||||
Чтобы подключить виртуальную машину в vApp к сети:
|
||||
|
||||
1. Отключите ВМ.
|
||||
2. Разрешите пользовательскую настройку гостевой ОС.
|
||||
3. Подключите vApp к сети.
|
||||
4. Подключите виртуальную машину к сети.
|
||||
5. Включите ВМ.
|
||||
6. Проверьте подключение.
|
||||
|
||||
## Отключить ВМ
|
||||
|
||||
1. В дата-центре перейдите в раздел **Applications** → **Virtual Machines**.
|
||||
2. В карточке ВМ выберите **Actions** → **Power** → **Power Off**.
|
||||
3. Подтвердите действие.
|
||||
|
||||
## Разрешить пользовательскую настройку гостевой ОС
|
||||
|
||||
Перед продолжением убедитесь, что у виртуальной машины включен параметр **Enable guest customization**. Чтобы это проверить:
|
||||
|
||||
1. На вкладке **Data Centers** перейдите в вашу организацию.
|
||||
2. Перейдите в раздел **Compute** → **Virtual Machines**.
|
||||
3. Выберите виртуальную машину, которую вы хотите подключить к сети.
|
||||
4. Перейдите в раздел Guest OS Customization.
|
||||
5. Убедитесь, что параметр **Enable guest customization** имеет значение **Enabled**.
|
||||
|
||||
Если параметр имеет значение **Disabled**:
|
||||
|
||||
1. Нажмите кнопку **Edit**.
|
||||
2. Выберите опцию **Enable guest customization**.
|
||||
3. Нажмите кнопку **Save**.
|
||||
|
||||
## Подключить vApp к сети
|
||||
|
||||
1. Перейдите в раздел **Applications** → **Virtual Applications**.
|
||||
2. Выберите vApp.
|
||||
3. Перейдите в раздел **Networks**.
|
||||
4. Нажмите кнопку **New**.
|
||||
5. Выберите тип подключения **Direct**.
|
||||
6. Выберите сеть из списка.
|
||||
7. Нажмите кнопку **Add**.
|
||||
|
||||
## Подключить виртуальную машину к сети
|
||||
|
||||
1. Перейдите в раздел **Virtual Machines** в vApp.
|
||||
2. Выберите виртуальную машину из списка.
|
||||
3. Перейдите в раздел **Hardware** → **NICs**.
|
||||
4. Нажмите кнопку **Edit**.
|
||||
5. В таблице в столбце **Network** выберите сеть, к которой нужно подключить виртуальную машину.
|
||||
6. Выберите **IP Mode** - **Static - IP Pool**.
|
||||
7. Нажмите кнопку **Save**.
|
||||
|
||||
## Включить ВМ
|
||||
|
||||
1. В дата-центре перейдите в раздел **Applications** → **Virtual Machines**.
|
||||
2. В карточке ВМ выберите **Actions** → **Power** → **Power On**.
|
||||
3. Подтвердите действие.
|
||||
|
||||
## Проверить подключение
|
||||
|
||||
1. Подключитесь к ВМ через `ssh`.
|
||||
2. Выполните следующую команду в зависимости от вашей ОС:
|
||||
|
||||
На Windows: `Test-NetConnection -ComputerName <адрес> -Port <порт>`
|
||||
На macOS: `nc -zv <адрес> <порт>`
|
||||
На Linux: `nc -zv <адрес> <порт>`
|
||||
|
||||
Для проверки вы можете использовать сервер Google:
|
||||
|
||||
- Адрес: `8.8.8.8`.
|
||||
- Порт: `443`.
|
||||
|
||||
Если у вас нет утилиты для проверки подключения, установите ее.
|
||||
@@ -1,64 +0,0 @@
|
||||
# Подключение ВМ к интернету
|
||||
|
||||
Чтобы подключить ВМ к интернету:
|
||||
|
||||
1. Добавьте правило [NAT](allow-external-connections-to-vm.md#nat).
|
||||
2. Создайте набор IP-адресов.
|
||||
3. Настройте брандмауэр.
|
||||
4. Проверьте подключение.
|
||||
|
||||
## Добавить правило NAT
|
||||
|
||||
1. На вкладке **Data Centers** перейдите в вашу организацию.
|
||||
2. Перейдите в раздел **Networking** → **Edges**.
|
||||
3. Выберите шлюз, который вы хотите подключить к сети.
|
||||
4. Перейдите в раздел **Services** → **NAT**.
|
||||
5. Нажмите кнопку **New**.
|
||||
6. Укажите имя сети.
|
||||
7. (необязательно) Опишите назначение сети.
|
||||
8. В поле **NAT Action** выберите `SNAT`.
|
||||
9. В поле **External IP** укажите IP-адрес или подсеть в формате CIDR.
|
||||
::: tip Примечание
|
||||
Посмотреть доступный внешний IP-адрес можно нажав на **ℹ**.
|
||||
:::
|
||||
10. В поле **Internal IP** укажите внутренний IP-адрес или подсеть в формате CIDR (например, `192.168.0.0/24`).
|
||||
11. Нажмите кнопку **Save**.
|
||||
|
||||
## Создать набор IP-адресов
|
||||
|
||||
1. Перейдите в раздел **Security** → **IP Sets**.
|
||||
2. Нажмите кнопку **New**.
|
||||
3. Укажите имя набора IP-адресов.
|
||||
4. (необязательно) Опишите назначение набора IP-адресов.
|
||||
5. Добавьте в набор подсеть в формате CIDR, которую вы использовали как **Internal IP** в NAT.
|
||||
6. Нажмите кнопку **Save**.
|
||||
|
||||
## Настроить брандмауэр
|
||||
|
||||
1. Перейдите в раздел **Services** → **Firewall**.
|
||||
2. Нажмите кнопку **New**.
|
||||
3. Укажите имя правила.
|
||||
4. В поле **Source** нажмите **Редактировать**.
|
||||
5. Укажите созданный ранее набор IP-адресов.
|
||||
6. Нажмите кнопку **Keep**.
|
||||
7. Перейдите в **Destination**.
|
||||
8. Включите тумблер **Any Destination**.
|
||||
9. Нажмите кнопку **Keep**.
|
||||
10. В поле **Action** выберите действие: `Allow`.
|
||||
11. Нажмите кнопку **Save**.
|
||||
|
||||
## Проверить подключение
|
||||
|
||||
1. Подключитесь к ВМ через `ssh`.
|
||||
2. Выполните следующую команду в зависимости от вашей ОС:
|
||||
|
||||
На Windows: `Test-NetConnection -ComputerName <адрес> -Port <порт>`
|
||||
На macOS: `nc -zv <адрес> <порт>`
|
||||
На Linux: `nc -zv <адрес> <порт>`
|
||||
|
||||
Для проверки вы можете использовать сервер Google:
|
||||
|
||||
- Адрес: `8.8.8.8`.
|
||||
- Порт: `443`.
|
||||
|
||||
Если у вас нет утилиты для проверки подключения, установите ее.
|
||||
@@ -1,77 +0,0 @@
|
||||
# Создание сети в организации и подключение Edge Gateway
|
||||
|
||||
## Edge Gateway
|
||||
|
||||
Edge Gateway — это виртуальный маршрутизатор в Cloud Director. Он соединяет внутренние сети организации с внешними. С помощью него можно настроить:
|
||||
|
||||
- выход в интернет.
|
||||
- маршрутизацию между подсетями.
|
||||
- правила фаервола.
|
||||
- VPN.
|
||||
- балансировку нагрузки.
|
||||
|
||||
Другими словами, если подключить сеть к Edge Gateway, виртуальные машины смогут выходить в интернет. Если нет — сеть останется изолированной.
|
||||
|
||||
## Типы сетей в vDC
|
||||
|
||||
Виртуальный дата-центр поддерживает несколько типов сетей. Они различаются по степени изоляции и доступу к внешним ресурсам. Ниже описаны основные варианты.
|
||||
|
||||
### Routed: маршрутизируемая сеть
|
||||
|
||||
Сеть Routed подключается к edge-шлюзу. Она позволяет управлять доступом к внешним ресурсам: машинам и сетям за пределами vDC или группы vDC. Через шлюз администратор может настроить правила маршрутизации и политики безопасности.
|
||||
|
||||
### Isolated: изолированная сеть
|
||||
|
||||
Сеть Isolated не подключена к внешним системам. Она полностью изолирована от других сетей и доступна только внутри организации vDC или группы vDC.
|
||||
Такой вариант используют для тестовых сред или систем, которым не требуется связь с внешними ресурсами.
|
||||
|
||||
## Создать сеть и подключить шлюз
|
||||
|
||||
1. На вкладке **Data Centers** перейдите в вашу организацию.
|
||||
2. Перейдите в раздел **Networking** → **Networks**.
|
||||
3. Нажмите кнопку **New**.
|
||||
4. Выберите **Current Organization Virtual Data Center** и нажмите **Next**.
|
||||
5. Выберите [тип сети](#типы-сетей-в-vdc) **Routed** или **Isolated**.
|
||||
::: tip Примечание
|
||||
Вы сможете изменить тип сети в дальнейшем.
|
||||
:::
|
||||
6. На шаге **Edge Connection** выберите доступный edge-шлюз из списка.
|
||||
7. Нажмите кнопку **Next**.
|
||||
8. Укажите имя сети.
|
||||
9. (необязательно) Опишите назначение сети.
|
||||
10. (необязательно) Включите режим **Dual-Stack Mode**, чтобы сеть поддерживала одновременно подсети IPv4 и IPv6.
|
||||
::: danger Внимание
|
||||
После включения режима Dual-Stack отключить его нельзя.
|
||||
:::
|
||||
11. Укажите значение **Gateway CIDR - IPv4**.
|
||||
::: tip Примечание
|
||||
IP-адрес шлюза указывается вместе с маской подсети в формате CIDR. Например, введите `192.168.100.1/24`. В этом случае диапазон статических адресов должен начинаться с адреса `192.168.100.2`.
|
||||
:::
|
||||
::: danger Внимание
|
||||
IP-адрес шлюза не должен входить в диапазон статических IP-адресов. После создания сети изменить IP-адрес шлюза нельзя.
|
||||
:::
|
||||
12. (обязательно, если включили режим Dual-Stack) Укажите значение **Gateway CIDR - IPv6**.
|
||||
::: tip Примечание
|
||||
Адрес шлюза указывается вместе с маской подсети в формате CIDR. Например, введите `2001:db8::1/64`. В этом случае диапазон статических адресов должен начинаться с адреса `2001:db8::2`.
|
||||
:::
|
||||
::: danger Внимание
|
||||
IP-адрес шлюза не должен входить в диапазон статических IP-адресов. После создания сети изменить IP-адрес шлюза и отключить поддержку IPv6 нельзя.
|
||||
:::
|
||||
13. (необязательно) Включите режим **Strict IP Mode**. Если режим включен, статические IP-адреса и DHCP-привязки будут выдаваться только из заданнее заданных диапазонов IP сети.
|
||||
14. (необязательно) Включите параметр **Distributed Routing**. Если он включен, маршрутизация будет выполнятся напрямую на гипервизорах. Если выключен — весь трафик будет идти через сервисный маршрутизатор edge-шлюза.
|
||||
::: tip Примечание
|
||||
Опция доступна, если все статические IP входят в выделенные диапазоны.
|
||||
:::
|
||||
15. (необязательно) Включите параметр **Shared**, чтобы сделать сеть доступной для использования в группе VDC.
|
||||
16. (необязательно) Включите параметр **Guest VLAN Allowed**, чтобы разрешить использование гостевых VLAN внутри этой сети.
|
||||
17. Укажите диапазоны статических IP-адресов в разделе **Static IP Pools**.
|
||||
Диапазон должен входить в подсеть, указанную в **Gateway CIDR - IPv4** на шаге 11.
|
||||
Например: если адрес шлюза `192.168.100.1/24`, введите `192.168.100.2 - 192.168.100.100`, чтобы выделить пул из 99 адресов.
|
||||
18. Нажмите кнопку **Add**, чтобы добавить диапазон.
|
||||
19. (необязательно) Добавьте дополнительные диапазоны.
|
||||
20. Нажмите кнопку **Next**.
|
||||
21. (необязательно) Укажите адрес основного DNS-сервера в поле **Primary DNS**. [Подробнее о DNS](/concepts/dns.md).
|
||||
22. (необязательно) Укажите адрес дополнительного DNS-сервера в поле **Secondary DNS**.
|
||||
23. (необязательно) Укажите DNS-суффикс в поле **DNS suffix**, если требуется добавлять доменное имя автоматически. Например, введите `corp.local`, чтобы имена узлов разрешались как `host.corp.local`.
|
||||
24. Нажмите кнопку **Next**.
|
||||
25. Проверьте параметры сети и нажмите кнопку **Finish**, чтобы создать сеть.
|
||||
@@ -1,9 +0,0 @@
|
||||
# Подключение сети к Edge Gateway
|
||||
|
||||
1. На вкладке **Data Centers** перейдите в вашу организацию.
|
||||
2. Перейдите в раздел **Networking** → **Networks**.
|
||||
3. Выберите сеть из списка.
|
||||
4. Нажмите кнопку **Edit**.
|
||||
5. Перейдите на вкладку **Connection**.
|
||||
6. Включите параметр **Connect to an edge gateway**.
|
||||
7. Нажмите кнопку **Save**.
|
||||
@@ -1,20 +0,0 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Настройка доступа к ВМ из интернета
|
||||
link: /vdc/vdc-how-to/networks/allow-external-connections-to-vm.md
|
||||
description:
|
||||
- title: Подключение ВМ в vApp к сети
|
||||
link: /vdc/vdc-how-to/networks/connect-vapp-to-network.md
|
||||
description:
|
||||
- title: Подключение ВМ к интернету
|
||||
link: /vdc/vdc-how-to/networks/connect-vm-to-network.md
|
||||
description:
|
||||
- title: Создание сети в организации и подключение к Edge Gateway
|
||||
link: /vdc/vdc-how-to/networks/create-network.md
|
||||
description:
|
||||
- title: Подключение сети к Edge Gateway
|
||||
link: /vdc/vdc-how-to/networks/isolated-to-routed.md
|
||||
description:
|
||||
---
|
||||
|
||||
# Сети
|
||||
@@ -1,20 +0,0 @@
|
||||
# Создание пользователя
|
||||
|
||||
1. Перейдите в раздел **Administration → Access Control → Users**.
|
||||
2. Нажмите кнопку **New**.
|
||||
3. В открывшемся окне введите параметры учетной записи:
|
||||
|
||||
- **User name**: имя пользователя.
|
||||
- **Provider Type**: провайдер каталога учетных записей.
|
||||
- **Local**: учетная запись будет создана в каталоге Cloud Director.
|
||||
- **LDAP**: учетная запись будет создана во внешнем каталоге.
|
||||
- **Password**: пароль для входа.
|
||||
- **Confirm password**: подтверждение пароля.
|
||||
- (необязательно) **State**: состояние учетной записи (по умолчанию активна).
|
||||
- (необязательно) **Configure user's quota**: [настройка](quotas.md#настроить-квоты) квот пользователя.
|
||||
- **Available roles**: [роль](roles.md) пользователя в системе. <!--какой системе?-->
|
||||
- (необязательно) **Full name**: ФИО пользователя.
|
||||
- (необязательно) **Email address**: адрес электронной почты.
|
||||
- (необязательно) ***Phone number**: номер телефона.
|
||||
|
||||
4. Нажмите кнопку **Save**.
|
||||
@@ -1,12 +0,0 @@
|
||||
# Изменение пароля учетной записи
|
||||
|
||||
::: warning Важно
|
||||
Пароль можно изменить только у учетных записей с типом провайдера **Local**.
|
||||
:::
|
||||
|
||||
1. Перейдите в раздел **Administration → Access Control → Users**.
|
||||
2. Выберите из списка учетную запись для которой нужно изменить пароль.
|
||||
3. Нажмите кнопку **Edit**.
|
||||
4. Укажите новый пароль в поле **Password**.
|
||||
5. Подтвердите пароль: введите его еще раз в поле **Confirm password**.
|
||||
6. Нажмите кнопку **Save**.
|
||||
@@ -1,15 +0,0 @@
|
||||
# Настройка квот пользователя
|
||||
|
||||
Квоты позволяют контролировать использование ресурсов. С помощью квот можно ограничить количество создаваемых и запускаемых ВМ, чтобы один пользователь не занял все доступные ресурсы организации.
|
||||
|
||||
## Настроить квоты
|
||||
|
||||
1. Перейдите в раздел **Administration → Access Control → Users**.
|
||||
2. Выберите из списка учетную запись для которой нужно настроить квоту.
|
||||
3. Нажмите кнопку **Set Quota**.
|
||||
4. В открывшемся окне задайте ограничения для пользователя:
|
||||
|
||||
- **All VMs quota**: общее количество виртуальных машин, которые может создать пользователь.
|
||||
- **Running VMs quota**: количество виртуальных машин, которые пользователь может запускать одновременно.
|
||||
|
||||
5. Нажмите кнопку **Save**.
|
||||
@@ -1,10 +0,0 @@
|
||||
# Ролевая модель
|
||||
|
||||
В Cloud Director доступны следующие роли:
|
||||
|
||||
- **Catalog Author** — создает и публикует новые каталоги.
|
||||
- **Console Access Only** — просматривает состояние и свойства виртуальных машин, работает с гостевой ОС. Не управляет ресурсами дата-центра.
|
||||
- **Defer to Identity Provider** — права определяются внешним провайдером идентификации.
|
||||
- **Organization Administrator** — администрирует организацию.
|
||||
- **vApp Author** — использует каталоги и может создавать vApp.
|
||||
- **vApp User** — использует vApp, созданные другими пользователями.
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Ролевая модель
|
||||
link: /vdc/vdc-how-to/users/roles.md
|
||||
description: Перечень ролей в Cloud Director
|
||||
- title: Создание пользователя
|
||||
link: /vdc/vdc-how-to/users/add-user.md
|
||||
description: Создание пользователей в дата-центре
|
||||
- title: Изменение пароля пользователя
|
||||
link: /vdc/vdc-how-to/users/change-users-password.md
|
||||
description: Установка нового пароля учетной записи пользователя
|
||||
- title: Настройка квот
|
||||
link: /vdc/vdc-how-to/users/quotas.md
|
||||
description: Установка ограничений на количество создаваемых и запускаемых ВМ
|
||||
---
|
||||
|
||||
# Пользователи и роли
|
||||
@@ -13,3 +13,4 @@ section_links:
|
||||
Сервис **Виртуальные дата-центры на VMware** поддерживает двухфакторную аутентификацию (2FA) в виртуальном дата-центре.
|
||||
|
||||
Двухфакторная аутентификация реализована на основе системы [Multifactor](https://multifactor.ru/). Подключить 2FA можно на портале двухфакторной аутентификации. При подключении 2FA добавляется дополнительный уровень защиты к логину и паролю. При входе в виртуальный дата-центр вводится логин и пароль, а затем подтверждается вход в приложении аутентификации.
|
||||
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
# Создание дата-центра
|
||||
|
||||
:::tip Информация
|
||||
|
||||
Если вы используете Beeline Cloud в тестовом режиме, то учитывайте [ограничения на ресурсы](../vdc-quatos.md#бесплатный-период) сервиса при создании дата-центра.
|
||||
|
||||
:::
|
||||
## Создать дата-центр
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. Выберите нужный проект в верхнем меню **Проекты**.
|
||||
@@ -13,17 +9,16 @@
|
||||
- На странице **Обзор** в карточке **Виртуальные дата-центры** нажмите **Создать дата-центр**.
|
||||
- В левом меню откройте раздел **Виртуальные дата-центры** и нажмите **Создать дата-центр**.
|
||||
5. В блоке **Общие настройки** укажите:
|
||||
- **Название виртуального дата-центра**: введите название дата-центра длиной до 25 символов, переименовать дата-центр после создания нельзя.
|
||||
- **Адрес дата-центра**: выберите [дата-центр](../../platform/about.md#центры-обработки-данных) для размещения виртуального дата-центра.
|
||||
- **Производительность кластера**: выберите [физическую платформу](../vdc-tech.md#физические-платформы) для дата-центра.
|
||||
- **Название виртуального дата-центра**: введите название дата-центра длиной до 50 символов, переименовать дата-центр после создания нельзя.
|
||||
- **Частота процессора**: выберите частоту ядер процессора.
|
||||
6. В блоке **Общий объем ресурсов дата-центра** укажите:
|
||||
- **vCPU**: введите количество ядер для всего дата-центра;
|
||||
- **RAM**: введите объем оперативной памяти в ГБ для всего дата-центра.
|
||||
- **RAM**: введите объем оперативной памяти в Гб для всего дата-центра.
|
||||
7. В блоке **Общее дисковое пространство** укажите:
|
||||
- **Общий объем SSD-дисков**: введите объем диска в ГБ для всего дата-центра.
|
||||
- **Общий объем Fast SSD дисков**: введите объем диска в Гб для всего дата-центра.
|
||||
8. В блоке **Сеть** укажите:
|
||||
- **Скорость интернета для маршрутизатора NSX-T**: выберите скорость интернета;
|
||||
- **Публичные IP-адреса**: введите количество внешних IP-адресов в дата-центре.
|
||||
- **Публичные IP-адреса**: введите количество публичный IP-адресов в дата-центре. Для дата-центра доступен один публичный IP-адрес.
|
||||
9. Нажмите **Создать дата-центр**.
|
||||
|
||||
Для дата-центра будут сформированы:
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
# Вход в дата-центр
|
||||
|
||||
::: warning Важно
|
||||
[Подключите двухфакторную аутентификацию](./vdc-2fa-start.md) для входа в панель управления дата-центром Cloud Director. Иначе, не получится войти в виртуальный дата-центр.
|
||||
|
||||
[Подключите двухфакторную аутентификацию](./vdc-2fa-start.md) для входа в панель управления дата-центром Cloud Director.
|
||||
|
||||
:::
|
||||
|
||||
## Войти в дата-центр
|
||||
|
||||
1. Перейдите в личный кабинет.
|
||||
2. В списке **Проекты** нажмите на имя проекта, в котором нужно создать ресурс.
|
||||
3. Раскройте список **Сервисы** и нажмите на имя сервиса **Виртуальные дата-центры на VMware**.
|
||||
|
||||
@@ -2,31 +2,16 @@
|
||||
section_links:
|
||||
- title: Создание дата-центра
|
||||
link: /vdc/vdc-how-to/vdc-create.md
|
||||
description: Создание виртуального дата-центра в личном кабинете Beeline Cloud
|
||||
description: Создание виртуального дата-центра в личном кабинете
|
||||
- title: Вход в дата-центр
|
||||
link: /vdc/vdc-how-to/vdc-enter.md
|
||||
description: Вход в виртуальный дата-центр с двухфакторной аутентификацией
|
||||
- title: Управление дата-центром
|
||||
link: /vdc/vdc-how-to/vdc-index.md
|
||||
description: Просмотр информации о виртуальном дата-центе в личном кабинете Beeline Cloud
|
||||
- title: Удаление дата-центра
|
||||
description: Просмотр информации о виртуальном дата-центе и его удаление
|
||||
- title: Двухфакторная аутентификация
|
||||
link: /vdc/vdc-how-to/vdc-index.md
|
||||
description: Удаление виртуального дата-центра в личном кабинете Beeline Cloud
|
||||
description: Настройка двухфакторной аутентификации для входа в дата-центр
|
||||
---
|
||||
|
||||
# Виртуальные дата-центры
|
||||
|
||||
Виртуальный дата-центр — это логический контейнер, в котором собраны следующие ресурсы:
|
||||
|
||||
- вычислительные мощности (например, CPU или память);
|
||||
- хранилище;
|
||||
- сети;
|
||||
- правила безопасности.
|
||||
|
||||
Виртуальный дата-центр объединяет ресурсы в единый пул, доступный через VMware Cloud Director.
|
||||
|
||||
Используйте VDC, если нужно:
|
||||
|
||||
- разделить общие ресурсы между разными командами или клиентами;
|
||||
- управлять политиками безопасности и сетями в изоляции;
|
||||
- создавать виртуальные машины внутри «своего» пространства.
|
||||
|
||||
@@ -21,17 +21,12 @@
|
||||
|
||||
## Удалить дата-центр
|
||||
|
||||
1. Войдите в [личный кабинет](https://lk.cloud.beeline.ru/).
|
||||
2. Выберите нужный проект в верхнем меню **Проекты**.
|
||||
3. В верхнем меню нажмите на пункт **Сервисы** и выберите сервис **Виртуальные дата-центры на VMware**.
|
||||
4. В левом меню откройте раздел **Виртуальные дата-центры**.
|
||||
5. В таблице найдите строку с нужным дата-центром.
|
||||
6. Нажмите на … и выберите **Запросить удаление**.
|
||||
7. Вы будете перенаправлены в центр поддержки пользователей.
|
||||
8. На странице **Создание обращения** заполните заявку на удаление дата-центра:
|
||||
- **Тип обращения**: *Сервисное обслуживание*.
|
||||
- **Сервис**: *Другое*.
|
||||
- **Тема**: укажите о необходимости удалить дата-центр.
|
||||
9. Нажмите кнопку **Создать обращение**.
|
||||
Для удаления виртуального дата-центра обратитесь в техническую поддержку.
|
||||
|
||||
За статусом обращения можно следить в разделе **Помощь → Центр поддержки**.
|
||||
<!--1. Перейдите в личный кабинет.
|
||||
2. В списке **Проекты** нажмите на имя проекта.
|
||||
3. В списке **Сервисы** нажмите на имя сервиса **Виртуальные дата-центры на VMware**.
|
||||
4. Откройте раздел **Виртуальные дата-центры на VMware → Виртуальные дата-центры**.
|
||||
5. В таблице найдите строку с нужным дата-центром.
|
||||
6. Нажмите … и выберите **Удалить**.
|
||||
7. В открывшемся окне подтвердите операцию, нажав **Удалить**.-->
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# Клонирование виртуальной машины
|
||||
|
||||
::: tip Информация
|
||||
ВМ можно клонировать только внутри vApp.
|
||||
:::
|
||||
|
||||
1. В меню слева выберите **Data Centers** и нажмите на карточку дата-центра.
|
||||
2. Перейдите в **Compute → Virtual Machines → New VM**.
|
||||
3. В карточке ВМ нажмите **ACTIONS → Copy**.
|
||||
4. В открывшемся окне выберите vApp, куда будет скопирована ВМ.
|
||||
5. Нажмите **Next**.
|
||||
6. В разделе **Configure Resources** настройте параметры ВМ:
|
||||
|
||||
- **Name**: введите имя ВМ.
|
||||
- **Computer Name**: введите имя ВМ внутри операционной системы (hostname).
|
||||
- **Target VM Storage Policy**: укажите политику хранения для ВМ.
|
||||
- **Disk Storage Policies**: выберите политику хранения и задайте IOPS для диска.
|
||||
- **NICs**: настройте сетевые адаптеры. Укажите тип адаптера, сеть и параметры IP-адреса.
|
||||
|
||||
7. Нажмите **Next**.
|
||||
8. Подтвердите действие.
|
||||
@@ -1,27 +0,0 @@
|
||||
# Группы размещения виртуальных машин
|
||||
|
||||
Правила привязки (Affinity Rules) управляют тем, как виртуальные машины распределяются по физическим хостам.
|
||||
|
||||
## Типы правил
|
||||
|
||||
- Affinity rules — правила совместного размещения. Обязывают систему запускать выбранные ВМ на одном физическом хосте. Такой подход применяют, когда нужно, чтобы машины работали вместе. Например, для оптимизации производительности. При отказе узла ВМ можно перенести на другой хост.
|
||||
|
||||
- Anti-affinity rules — правила раздельного размещения. Требуют запускать выбранные ВМ на разных физических хостах. Такой подход обеспечивает избыточность и высокую доступность. Если доступных хостов нет, то правило не выполняется. Информация об этом фиксируется в журнале событий.
|
||||
|
||||
<!--заменить примечание на действие. Нужно проверить статус ВМ, если ВМ отключена, то включить, а потом создавать правило?-->
|
||||
|
||||
::: warning Внимание
|
||||
Оба типа правил применяются только к включенным ВМ.
|
||||
:::
|
||||
|
||||
## Создать группу размещения
|
||||
|
||||
1. В меню слева выберите **Data Centers** и нажмите на карточку дата-центра.
|
||||
2. Перейдите в **Compute → Affinity Rules**.
|
||||
3. Нажмите кнопку **New** около типа правила, которое хотите создать.
|
||||
4. В открывшемся окне укажите параметры:
|
||||
- **Name**: имя правила.
|
||||
- **Enabled**: включает или выключает правило.
|
||||
- **Required**: делает правило обязательным. Если параметр выключен, Cloud Director может разместить ВМ на других хостах, даже если правило нарушается. <!--переформулировать-->
|
||||
- **VMs in Rule**: список виртуальных машин, к которым применяется правило.
|
||||
5. Нажмите кнопку **Save**.
|
||||