Я думаю о следующих вариантах. 1. Добавьте в hiera новую запись от jenkins и зафиксируйте файл (мы поддерживаем файлы в git), чтобы этот файл использовался агентом puppet. Это связано с небольшим риском сбоя из-за нескольких коммитов.
Оставляя в стороне путаницу в отношении того, какой компонент использует Hiera для доступа к данным, да, это жизнеспособный вариант. Вероятно, также самый простой, поскольку он представляет собой простую автоматизацию вашего текущего процесса.
Если в агентской системе есть какой-то файл, агент марионеток обращается к этому файлу для создания новых docker экземпляров.
Мне кажется возможным, но откуда этот файл? и как он получает правильное содержимое? Если ответ «Кукольный управляет этим», значит, вы ничего не решили с этим. Однако, если ответом будет что-то еще, то комбинация представляет собой крайне плохой стиль, и в какой-то момент она, скорее всего, укусит вас.
Есть ли другой способ добиться этого?
Лоты. Но среди тех, которые кажутся наиболее привлекательными, есть возможность добавить Hiera back-end , который получает данные из базы данных вместо простого файла. Затем Jenkins может хранить данные в базе данных, а Puppet может читать их оттуда через Hiera с любым уровнем изоляции транзакций и ссылочной целостности, который вам нравится. Имейте в виду, что вам не нужно переключать на это, потому что одна и та же конфигурация Hiera может извлекать данные из нескольких внутренних блоков. Существуют бэкэнды Hiera для некоторых СУБД, или, если вы предпочитаете, написать свою собственную не составит труда.