У меня есть playbook, который отлично работает, когда я ограничиваюсь одним хостом.
ansible-playbook -k playbook.yml group1
Мне нужно иметь возможность запускать его на нескольких хостах одновременно. Синтаксис будет таким:
ansible-playbook -k playbook.yml 'группа1 группа2'
группа 1 — это группа, в которой есть несколько серверов с разными установленными приложениями
server1 (это прокси-сервер)
сервер2
сервер3
сервер4
группа 2 — это группа, в которой есть несколько серверов с разными установленными приложениями
server5 (это прокси-сервер)
сервер6
сервер7
сервер8
proxy — это группа всех моих прокси-серверов
сервер1
сервер5
Я опрашиваю каталог для получения списка файлов для распаковки и спрашиваю пользователя, для какого файла они хотят использовать.
Задача возвращает это:
ЗАДАНИЕ пауза:
Выберите НОМЕР файла для выбора:
1--------файлы/jtt_test/file1.tgz
2--------файлы/jtt_test/file2.gz
3--------файлы/jtt_test/file3.tgz
4--------файлы/jtt_test/file4.jar
5--------файлы/jtt_test/file5.jar
Пользователь выбирает номер, и это файл, который нужно разархивировать.
Я запускаю группу 1 сам по себе, и она отлично работает.
Я запускаю группу1 и группу2 одновременно, и это приводит к ошибкам. Я предполагаю, потому что он не может передать переменную выбранного файла.
Плейбук такой:
-name: Обновить файлы пользовательского интерфейса
хосты: прокси
задачи:
- найти:
путь: "файлы/{{ instance_dir }}"
регистрация: результат
делегат_к: локальный
- set_fact:
my_files: "{{ result.files|карта(атрибут='путь')|список|сортировка }}"
- Пауза:
подсказка: |
Выберите НОМЕР файла для выбора:
{% для файла в my_files %}
{{ loop.index }}----------{{ файл }}
{% конец для %}
регистрация: результат
- отладка:
msg: "выбранный файл: {{my_files[result.user_input|int - 1] }}"
фатальный: [proxy.local.test]: FAILED! => {"msg": "Задача включает опцию с неопределенной переменной. Ошибка: "объект dict" не имеет атрибута "user_input"\n\nОшибка, по-видимому, находится в "playbook.yml": строка 30, столбец 7, но может быть\nв другом месте файла в зависимости от конкретной проблемы с синтаксисом.\n\nОшибочная строка выглядит следующим образом:\n\n\n - debug:\n ^ здесь\n"}
Я не уверен, как решить эту проблему.