---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/devops/deployment-options/ansible/initial-deployment/deployment-preparation.md
  - https://ydb.tech/docs/ru/devops/deployment-options/ansible/initial-deployment/deployment-preparation.md
  - href: ru/devops/deployment-options/ansible/initial-deployment/deployment-preparation.md
    type: text/markdown
    title: Markdown version
  - href: ../../../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/devops/deployment-options/ansible/initial-deployment/deployment-preparation.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Подготовка к развертыванию

## Предварительные требования {#prerequisites}

### Выберите топологию для установки {#topology-select}

Перед установкой выберите подходящую топологию кластера YDB — от неё зависит количество необходимых серверов и дисков:

**Для начала работы с YDB**, рекомендуется выбрать топологию `mirror-3dc-3-nodes`. Для этого потребуется всего 3 сервера и 9 дисков для пользовательских данных — это самый простой и быстрый способ создать пилотный кластер.

**Для масштабных развёртываний** выберите одну из следующих опций:

- `mirror-3-dc` — для кластеров, размещённых в нескольких дата-центрах. Потребуется не менее 9 серверов и 9 дисков для пользовательских данных.
- `block-4-2` — для размещения кластера в одном дата-центре. Потребуется не менее 8 серверов и 8 дисков для пользовательских данных.

В каждом сервере должен быть хотя бы один отдельный диск для пользовательских данных. Рекомендуется также добавить отдельный небольшой диск под операционную систему. Подробнее о различных вариантах топологии и избыточности читайте в [этой статье](https://ydb.tech/docs/ru/concepts/topology.md).

В дальнейшем можно при необходимости [расширять кластер](https://ydb.tech/docs/ru/devops/configuration-management/configuration-v1/cluster-expansion.md) без остановки его работы и прерывания доступа пользователей к данным.

### Настройка серверов {#server-configuration}

{% note info %}

Рекомендуемые требования к серверам:

- 16 CPU (рассчитывается исходя из утилизации 8 CPU узлом хранения и 8 CPU динамическим узлом).
- 16 GB RAM (рекомендуемый минимальный объем RAM).
- Дополнительные SSD-диски для данных, не менее 120 GB каждый.
- Доступ по SSH.
- Сетевая связность между машинами в кластере.
- ОС: Ubuntu 18+, Debian 9+.
- Доступ в интернет для обновления репозиториев и скачивания необходимых пакетов.

Подробнее см. [Системные требования и рекомендации для YDB](https://ydb.tech/docs/ru/devops/concepts/system-requirements.md).

{% endnote %}

При использовании виртуальных машин у публичного облачного провайдера рекомендуется следовать [Развёртывание инфраструктуры для кластера YDB с помощью Terraform](https://ydb.tech/docs/ru/devops/deployment-options/ansible/preparing-vms-with-terraform.md).

### Настройка программного обеспечения

Для работы с проектом на локальной (промежуточной или установочной) машине потребуется:

- Python 3 версии 3.10+
- Поддерживаются версии Ansible core начиная с 2.11 и до 2.18
- Рабочая директория на сервере с SSH-доступом ко всем серверам кластера

{% note tip %}

Рекомендуется хранить рабочую директорию и все файлы, созданные в ходе этого руководства, в репозитории [системы управления версиями](https://ru.wikipedia.org/wiki/Система_управления_версиями), например [Git](https://git-scm.com/). Если несколько DevOps-инженеров будут работать с развёртываемым кластером, они должны взаимодействовать в общем репозитории.

{% endnote %}

Если Ansible уже установлен, можно перейти к разделу [«Настройка проекта Ansible»](#ansible-project-setup). Если Ansible ещё не установлен, установите его одним из следующих способов:

{% cut "Установка Ansible глобально" %}

На примере Ubuntu 22.04 LTS:

- Обновите список пакетов apt командой `sudo apt-get update`.
- Обновите пакеты командой `sudo apt-get upgrade`.
- Установите пакет `software-properties-common` для управления источниками программного обеспечения вашего дистрибутива — `sudo apt install software-properties-common`.
- Добавьте новый PPA в apt — `sudo add-apt-repository --yes --update ppa:ansible/ansible`.
- Установите Ansible — `sudo apt-get install ansible-core` (убедитесь, что устанавливаемая версия не выше 2.18 и не меньше 2.11; установка пакета просто `ansible` приведёт к устаревшей и неподходящей версии).
- Проверьте версию Ansible core — `ansible --version`.

{% endcut %}

{% cut "Установка Ansible в виртуальное окружение Python" %}

На примере Ubuntu 22.04 LTS:

- Обновите список доступных deb пакетов — `sudo apt-get update`.
- Установите пакет `python3-venv` для управления Python виртуальными окружениями — `sudo apt-get install venv`.
- Создайте директорию, где будет создано виртуальное окружение. Например, `mkdir venv-ansible`.
- Создайте виртуальное окружение Python — `python3 -m venv venv-ansible`, где `venv-ansible` - путь к директории созданной на предыдущем шаге.
- Активируйте виртуальное окружение — `source venv-ansible/bin/activate`. Все дальнейшие действия с Ansible выполняются внутри виртуального окружения. Выйти из него можно командой `deactivate`.
- Установите рекомендуемую версию Ansible с помощью команды `pip3 install "ansible-core>=2.11,<2.19"` (убедитесь, что устанавливаемая версия не выше 2.18 и не меньше 2.11). Проверьте установленную версию Ansible — `ansible --version`.

{% endcut %}

 Для получения дополнительной информации и других вариантов установки ознакомьтесь с [руководством по установке Ansible](https://docs.ansible.com/ansible/latest/installation_guide/index.html).

## Настройка проекта Ansible {#ansible-project-setup}

### Установка YDB Ansible плейбуков

{% list tabs %}

- Через requirements.yaml

  ```bash
  cat <<EOF > requirements.yaml
  roles: []
  collections:
    - name: git+https://github.com/ydb-platform/ydb-ansible
      type: git
      version: latest
  EOF
  ansible-galaxy install -r requirements.yaml
  ```

- Однократно

  ```bash
  ansible-galaxy collection install git+https://github.com/ydb-platform/ydb-ansible.git,latest
  ```

{% endlist %}

После выполнения подготовительных мероприятий можно переходить к развёртыванию системы. Выберите инструкцию в соответствии с вашей конфигурацией:

- [Развёртывание кластера с использованием конфигурации V1](https://ydb.tech/docs/ru/devops/deployment-options/ansible/initial-deployment/deployment-configuration-v1.md)
- [Развёртывание кластера с использованием конфигурации V2](https://ydb.tech/docs/ru/devops/deployment-options/ansible/initial-deployment/deployment-configuration-v2.md)
