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

Вот оригинальный модуль:

После небольшого исследования я обнаружил, что в Puppet нет собственного цикла for, но есть функция range. Интересно, что диапазон не поддерживает целые числа, поэтому вам нужно передавать строки.

Итак, сначала я добавил параметр для передачи количества агентов, по умолчанию установив его на 1:

Затем добавьте некоторую условную логику, чтобы проверить, ›равно ли agent_count 1, если да, мы используем функцию диапазона для итерации от 2 до x. , x - значение $ agent_count:

Все идет хорошо, вы должны увидеть что-то вроде этого в выходных данных марионетки, когда примените его:

Урок, извлеченный здесь для меня, заключается в том, чтобы всегда проверять stdlib любого языка, с которым вы работаете, документация Puppet stdlib находится здесь https://forge.puppet.com/puppetlabs/stdlib.

Я надеюсь, что это было полезно. :)

Оригинальный пост здесь, написанный Джастином Хеннесси