Мы используем сервер сборки, который делегирует_to и развертывает сборку на серверах приложений. Я не уверен, как мы собираемся «сериализовать», поскольку все делается на сервере сборки (1 хост) и существует множество серверов приложений. Сервер сборки - единственный сервер, который может взаимодействовать с серверами приложений. Это не будет проблемой, но мы должны убедиться, что выполняем развертывание на серверах приложений один за другим (выбрасывая / повторно вводя их в пул, когда все в порядке). Какие-либо предложения?
Количество хостов, на которых запускается Ansible play, можно определить с помощью параметра serial
параметр.
- name: test play
hosts: webservers
serial: 3
По умолчанию Ansible будет пытаться управлять всеми машинами, на которые есть ссылка в игре, параллельно. Для варианта использования непрерывных обновлений вы можете определить, сколько хостов должен управлять Ansible одновременно, используя ключевое слово '' serial ''. В приведенном выше примере, если бы у нас было 100 хостов, 3 хоста в группе 'webservers' завершили бы играть полностью, прежде чем перейти к следующим 3 хозяевам.
Если вы хотите развернуть сервер приложений один за другим, вам нужно определить что-то вроде этого в своей игре:
- name: Deploy app servers one by one
hosts: appservers
serial: 1