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

# Обновление версии YDB на кластерах, развёрнутых с помощью Ansible

Во время [начального развёртывания](https://ydb.tech/docs/ru/devops/deployment-options/ansible/initial-deployment/index.md?version=v26.1) Ansible playbook предоставляет на выбор несколько вариантов, какой именно серверный исполняемый файл YDB (`ydbd`) использовать. В этой статье объясняются доступные варианты изменения [версии](https://ydb.tech/docs/ru/downloads/index.md?version=v26.1) кластера после начального развёртывания.

<!-- source: ru/devops/deployment-options/_includes/versioning-warning.md -->
{% note warning %}

У YDB существуют специфические правила относительно совместимости версий. Важно ознакомиться с [руководством по именованию версий YDB и их совместимости](https://ydb.tech/docs/ru/devops/concepts/versioning.md?version=v26.1) и [списком изменений](https://ydb.tech/docs/ru/changelog-server.md?version=v26.1), чтобы правильно выбрать новую версию для обновления и подготовиться к возможным нюансам.

{% endnote %}
<!-- endsource: ru/devops/deployment-options/_includes/versioning-warning.md -->

## Обновление исполняемых файлов через Ansible playbook

Репозиторий [ydb-ansible](https://github.com/ydb-platform/ydb-ansible) содержит playbook под названием `ydb_platform.ydb.update_executable`, который можно использовать для обновления или понижения версии кластера YDB. Перейдите в ту же директорию, которая использовалась для [начального развёртывания](https://ydb.tech/docs/ru/devops/deployment-options/ansible/initial-deployment/index.md?version=v26.1), отредактируйте файл `inventory/50-inventory.yaml`, чтобы указать целевую версию YDB для установки (обычно через переменные `ydb_version` или `ydb_git_version`), а затем выполните этот playbook:

```bash
ansible-playbook ydb_platform.ydb.update_executable
```

Playbook получает новый бинарный файл и затем разворачивает его на кластере с помощью кросс-серверного копирования Ansible. После этого он выполняет [постепенную перезагрузку](https://ydb.tech/docs/ru/devops/deployment-options/ansible/restart.md?version=v26.1) кластера.

### Фильтрация по типу узла

Задачи в playbook `ydb_platform.ydb.update_executable` помечены типами узлов, поэтому можно использовать функциональность тегов Ansible для фильтрации узлов по их типу.

Эти две команды эквивалентны и изменят конфигурацию всех [узлов хранения](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#storage-node):

```bash
ansible-playbook ydb_platform.ydb.update_executable --tags storage
ansible-playbook ydb_platform.ydb.update_executable --tags static
```

Эти две команды эквивалентны и изменят конфигурацию всех [узлов баз данных](https://ydb.tech/docs/ru/concepts/glossary.md?version=v26.1#database-node):

```bash
ansible-playbook ydb_platform.ydb.update_executable --tags database
ansible-playbook ydb_platform.ydb.update_executable --tags dynamic
```

### Пропуск перезагрузки

Существует тег `no_restart`, чтобы только развернуть исполняемые файлы, а перезагрузку кластера пропустить. Это может быть полезно, если кластер будет [перезагружен](https://ydb.tech/docs/ru/devops/deployment-options/ansible/restart.md?version=v26.1) позже вручную или в рамках других задач по обслуживанию. Пример запуска:

```bash
ansible-playbook ydb_platform.ydb.update_executable --tags no_restart
```