Понимание путей поиска и каталогов Ansible функций - PullRequest
0 голосов
/ 11 июля 2019

В настоящее время я изучаю способы, которыми Ansible использует пути поиска различными способами. Я прошу прощения, если эти идеи отключены, но я постараюсь написать это наиболее логичным способом, разбивая их на разделы.

AnsiballZ: я знаю, что когда Ansible запускает книгу воспроизведения, она ищет все необходимые модули и упаковывает все необходимые модули и файлы в zip-файл, прежде чем разархивировать его на компьютере, не являющемся хостом. Меняет ли этот zip-формат и zip-каталог каталог формат каталога? Я очень много искал для исследования, но не нашел способа взглянуть на формат файла zip, кроме как обернутый в сценарий python.

Инвентарь: при вызове Ansible-Playbook вы можете использовать «-I» с путем к файлу. Теперь я знаю, что это может быть абсолютный или относительный путь от CWD терминала. Т.е. если вы собираетесь вызывать файл инвентаризации на один каталог вниз, вы будете называть «-I / DirecName / file» Таким образом, путь к инвентарю должен быть задан каким-либо маршрутом, абсолютным или относительным от того места, где вы находитесь. Есть ли способ просто дать имя файла и Ansible поиск по всем подпапкам cwd?

Playbooks: Playbooks, кажется, в основном отражают пути инвентаризации. I.E. Для того, чтобы вызвать сборник пьес, вы должны указать абсолютный или относительный путь от того места, где вы находитесь. Однако любые файлы, используемые в книге воспроизведения, относятся к местоположению этой книги воспроизведения. I.E Если бы вы ссылались на файл в playbook, а playbook находился в подпапке root, вам пришлось бы вызывать его с "../filename". Это боль и делает небрежный и тонкий код. Есть ли способ сделать эталонные файлы playbooks начиная с корня? Я знаю, что Ansible рекомендует вставлять пьесы на корневой уровень папки, однако это также приводит к появлению грязных каталогов при увеличении количества плейбуков. Кроме того, если бы книги воспроизведения находились на корневом уровне файла, могли бы вы дать файлам, на которые есть ссылки в книге воспроизведения, только имена, и иметь ли Ansible поиск файлов в подпапках диска cwd, в котором находятся книги воспроизведения? Вместо того, чтобы называть каждый файл "/ file / file / filename"? Я написал пьесу «найди», чтобы сделать это, однако это не удивительно для времени выполнения. Что делает это важным, так это то, что если я не знаю имен подкаталогов, но знаю имя файла, я могу назвать файл только по имени?

Задачи: здесь, как указано на веб-сайте Ansible, есть две разные области действия. Оценка задачи и выполнение задачи. Оценка заданий называется локальной. Значит, эти задачи ищутся только в каталоге playbook? И выполнение задач, которое, как говорят, большую часть времени выполняется удаленно, если это не требуется для поиска действий. Нужен ли точный путь к файлу для данного места назначения?

Config: Говорят, что они относятся к файлу конфигурации. Поэтому большинство конфигов нужно будет поместить в корень проекта, поскольку именно там Ansible рекомендует поместить файл конфигурации. Есть ли лучший способ установить каталоги файлов конфигурации?

Модули: я знаю, что если в корневом каталоге проекта или в каталоге playbook есть файл с именем library /, то модуль ищется там. Если его нет, его ищут в / usr / share / ansible / modules. Есть ли какое-либо другое место, где модули ищутся в любой точке?

Я знаю, что не все из них могут иметь прямые ответы, так как некоторые действия Ansible, кажется, не очень хорошо документированы по этим мелким предметам. Однако я открыт для любых обсуждений по этим вопросам или любых точек зрения!

Пожалуйста, обратите внимание: я провел довольно обширное исследование по этим темам, но, возможно, я что-то пропустил. Если я пропустил что-то супер очевидное, я прошу прощения.

...