Пытаюсь написать роли как полностью инкапсулированные, повторно используемые действия, но для того, чтобы сделать это правильно, мне действительно нужно иметь возможность запрашивать некоторую информацию. Однако каждая моя попытка использовать vars_prompt внутри роли либо приводила к полному игнорированию роли, либо к ошибке, говорящей о том, что vars_prompt нельзя использовать там.
Можно ли использовать vars_prompt внутри роли? Если да, то есть ли документация, показывающая, как это сделать?
vars_prompt на самом деле не рекомендуется для большинства продвинутых вариантов использования, потому что он интерактивен.
Честно говоря, я не знаю, как будет выглядеть синтаксис для этого.
Вам лучше не использовать подсказку, потому что новичкам будет слишком легко писать разумные сценарии. И кроме того, почему Ansible должен быть последовательным в отношении того, где и когда вам разрешено использовать определенные ключевые слова?
Я думаю, что ваша главная проблема в том, что вы пытаетесь написать компонуемые сборники игр. Это не очень хорошая идея, если вы хотите обеспечить безопасность своей работы. Лучше копировать и вставлять повсюду, потому что к тому времени, когда ваши плейбуки и роли начнут страдать от дрейфа конфигурации, вашей компании, вероятно, потребуется, чтобы вы сделали несколько серьезных обновлений сценариев, а БИНГО — еще 6 месяцев работы. .
Я рад, что mpdehaan разумно закрыл этот вопрос. Он очень благоразумен, не позволяя Ansible стать слишком простым в использовании. С содроганием помните PHP?
Я поддерживаю это. Это было бы хорошей функцией для повторного использования. Или, по крайней мере, мы должны иметь возможность include
подсказок.
@dejayc выразился не очень красиво, но он правильно понял основную проблему.
Ansible должен предварительно анализировать все роли (в этом нет необходимости, если есть механизм включения), а затем заранее запрашивать все переменные, чтобы результирующий запуск был неинтерактивным.
Самый полезный комментарий
Вам лучше не использовать подсказку, потому что новичкам будет слишком легко писать разумные сценарии. И кроме того, почему Ansible должен быть последовательным в отношении того, где и когда вам разрешено использовать определенные ключевые слова?
Я думаю, что ваша главная проблема в том, что вы пытаетесь написать компонуемые сборники игр. Это не очень хорошая идея, если вы хотите обеспечить безопасность своей работы. Лучше копировать и вставлять повсюду, потому что к тому времени, когда ваши плейбуки и роли начнут страдать от дрейфа конфигурации, вашей компании, вероятно, потребуется, чтобы вы сделали несколько серьезных обновлений сценариев, а БИНГО — еще 6 месяцев работы. .
Я рад, что mpdehaan разумно закрыл этот вопрос. Он очень благоразумен, не позволяя Ansible стать слишком простым в использовании. С содроганием помните PHP?