Разница между hiera_array()
и обычным hiera()
связана с тем, что происходит, когда запрашиваемый ключ (network::interfaces
в вашем случае) присутствует на нескольких уровнях иерархии. Это очень мало связано с тем, в какой форме вы хотите получить данные, и не имеет ничего общего с выбором битов и кусков структур данных. hiera_array()
запрашивает поиск «слияние массивов». Более современная lookup()
функция именует это как «уникальную» стратегию слияния.
Кажется маловероятным, что поиск слияния массивов на самом деле то, что вы хотите. В этом случае проще всего прочитать весь хеш и извлечь ключи:
$network_interfaces = keys(hiera('network::interfaces'))
В Puppet 4 вам нужно будет использовать функцию keys()
, предоставляемую модулем puppetlabs / stdlib. Начиная с Puppet 5 эта функция появляется в ядре Puppet.
Если Вы означаете просто устанавливать НОМЕР ПОРТА программно, можно использовать инструмент командной строки метабазы (по умолчанию в C:\Inetpub\AdminScripts):
cscript adsutil.vbs set w3svc/1/securebindings ":nnn:"
где nnn является номером порта (например, ":443":). (Если у Вас будет больше чем один сайт на сервере, то необходимо будет заменить w3svc/x/securebindings, где x является идентификатором веб-сайта.)
Если на самом деле необходимо установить СЕРТИФИКАТ программно, от того, что я заключаю, что существует сценарий в Resource Kit IIS 6.0, чтобы сделать это (IISCertDeploy.vbs), но я не попробовал его.