Как запустить команду ansible на одном сервере при развертывании на многих серверах?
Я использую Ansistrano для развертывания моего приложения Symfony2. Приложение использует Doctrine, поэтому я также использую DoctrineMigrationsBundle. Теперь моя проблема заключается в том, что я хотел бы запустить миграцию базы данных в конце процесса развертывания, но я хочу, чтобы эта операция вызывалась только один раз, и я знаю, что по умолчанию ansible запускает все команды из playbook на всех заданных серверах. Можно ли как-то сказать ansible запустить определенную команду на одном сервере из набора всех серверов, на которых я развернул свой код?
1 ответ
Решение
Для этого есть run_once.
Пример из документов:
---
# ...
tasks:
# ...
- command: /opt/application/upgrade_db.py
run_once: true
# ...