Как запустить команду ansible на одном сервере при развертывании на многих серверах?

Я использую Ansistrano для развертывания моего приложения Symfony2. Приложение использует Doctrine, поэтому я также использую DoctrineMigrationsBundle. Теперь моя проблема заключается в том, что я хотел бы запустить миграцию базы данных в конце процесса развертывания, но я хочу, чтобы эта операция вызывалась только один раз, и я знаю, что по умолчанию ansible запускает все команды из playbook на всех заданных серверах. Можно ли как-то сказать ansible запустить определенную команду на одном сервере из набора всех серверов, на которых я развернул свой код?

1 ответ

Решение

Для этого есть run_once.

Пример из документов:

---
# ...

  tasks:

    # ...

    - command: /opt/application/upgrade_db.py
      run_once: true

    # ...
Другие вопросы по тегам