Я работал над модулем, который устанавливал пакет. Я хотел взять файл модуля systemd, который был установлен через этот процесс, и передать параметр в класс марионетки, чтобы указать число, представляющее количество дополнительных услуг, которые я хотел запустить.
Вот оригинальный модуль:
После небольшого исследования я обнаружил, что в Puppet нет собственного цикла for, но есть функция range. Интересно, что диапазон не поддерживает целые числа, поэтому вам нужно передавать строки.
Итак, сначала я добавил параметр для передачи количества агентов, по умолчанию установив его на 1:
Затем добавьте некоторую условную логику, чтобы проверить, ›равно ли agent_count 1, если да, мы используем функцию диапазона для итерации от 2 до x. , x - значение $ agent_count:
Все идет хорошо, вы должны увидеть что-то вроде этого в выходных данных марионетки, когда примените его:
Урок, извлеченный здесь для меня, заключается в том, чтобы всегда проверять stdlib любого языка, с которым вы работаете, документация Puppet stdlib находится здесь https://forge.puppet.com/puppetlabs/stdlib.
Я надеюсь, что это было полезно. :)
Оригинальный пост здесь, написанный Джастином Хеннесси